$git clone https://github.com/saadshahd/moo.mdStay present with AI. A Claude Code plugin that keeps you understanding what you sign to own.
| 1 | Why introduce friction? Because **YOU** the human end up being the world model. The agent is just your hands. |
| 2 | |
| 3 | **moo/hope** doesn't build, and doesn't author your code, rules, or taste. It works alongside build tooling like [superpowers](https://github.com/obra/superpowers). |
| 4 | |
| 5 | One idea runs through all three layers: **never delegate a decision.** |
| 6 | |
| 7 | ## Try it |
| 8 | |
| 9 | ```bash |
| 10 | /plugin marketplace add saadshahd/moo.md |
| 11 | /plugin install hope@moo.md |
| 12 | ``` |
| 13 | |
| 14 | - Run the whole loop with `/hope:full <your seed>`, or run the stages directly: `/hope:intent <your seed>` then `/hope:shape <your intent>`, each handing you a lean card. |
| 15 | - For work you used to do by hand, `/hope:delegate` routes it to agents while you keep every decision. |
| 16 | - When work depends on live external state, `/hope:freeze` snapshots it as fact (never memory) before a stage builds on it. |
| 17 | - As the work lands, `/hope:over` hands each load-bearing decision back so you reason it into your own model. |
| 18 | |
| 19 | ## A loop |
| 20 | |
| 21 | The loop is pure decision work. You drive it slowly, in your own context. |
| 22 | |
| 23 | Every piece of work starts as a raw `<seed>`, the rough thing you fully typed. It is the one artifact that is fully yours. |
| 24 | |
| 25 | **/intent** and **/shape** do not make the seed more honest. They make it explicit and specified. Each surfaces a decision as an interactive question, every choice previewed, a few at a time, and you answer. Every added detail stays yours because you chose it. `/intent` turns the `<seed>` into a confirmed statement of what you want. `/shape` turns the `<intent card>` into a chosen approach before any code exists. |
| 26 | |
| 27 | The outcome is a card you carry comfortably outside the context window. |
| 28 | |
| 29 |  |
| 30 | |
| 31 | ## An anchor |
| 32 | |
| 33 | **freeze** anchors the work to what is observed, not what you remember. When a stage depends on state that lives outside the repo — a service, a database, a queue, live logs — that state keeps moving, and memory of it goes stale the moment you look away. |
| 34 | |
| 35 | freeze snaps the slice your work touches into one immutable value: every fact observed live or named as an open gap, never inferred. The stages decide against a fact, not a guess. It is the ground the other three stand on — and repo-local work skips it. |
| 36 | |
| 37 |  |
| 38 | |
| 39 | ## A mode |
| 40 | |
| 41 | **delegate** is the line between deciding and doing. |
| 42 | |
| 43 | You keep every decision. Each one is surfaced to you so you stay engaged. Only tactical, observable work fans out to agents: implement, test, verify, audit, explore. |
| 44 | |
| 45 | This is also what stops compaction from silently rewriting your context. The verbose doing never enters your main thread, so it can never quietly mutate what you decided. |
| 46 | |
| 47 |  |
| 48 | |
| 49 | ## A discipline |
| 50 | |
| 51 | **over** hands a decision back the moment it lands — in-flow, as soon as the work is done, never banked to the end. The agents that did the work are short-lived; what they carried vanishes with them, so the decision has to come back to you right away. |
| 52 | |
| 53 | Agents grow the codebase faster than they grow your understanding of it. That gap is the part you are accountable for. over closes it. It finds what was load-bearing and hands each decision back as one forward question — you reason it into your own mental model, it confirms once. A short conversation, no score. |
| 54 | |
| 55 | What the agent never carries is what over hands back. |
| 56 | |
| 57 |  |
| 58 | |
| 59 | ## Overview |
| 60 | |
| 61 | | The trap | Layer | Guard | |
| 62 | | ---------------------------------------- | ------------------------------ | -------------------------------------------- | |
| 63 | | AI fills in your decisions | `/hope:intent` & `/hope:shape` | interactive questions, each choice previewed | |
| 64 | | compaction mutates & drifts your context | `/hope:delegate` | doing stays out, deciding stays in | |
| 65 | | stale or remembered external state | `/hope:freeze` | snapshot facts, never infer | |
| 66 | | code grows faster than understanding | `/hope:over` | hand each decision back in-flow, you reason it into your own model | |
| 67 | |
| 68 | ## Reading |
| 69 | |
| 70 | - [The Engineer's Anxiety at the Penalty Kick](https://saadshahd.github.io/blog/the-engineers-anxiety-at-the-penalty-kick/) — "Ownership without comprehension is just a signature." |
| 71 | - [One Flew Over the Context Window](https://saadshahd.github.io/blog/one-flew-over-the-context-window/) — what the agent never carries between sessions. |