clairvoyance
Use when a request has been understood and is about to be executed and nothing has yet asked whether it is the right request; before a plan, design, decision, metric, or document is accepted as given; when a third fix has failed, two requirements look incompatible, every option or idea so far has the same shape, or the approach came from the first file opened; when a subagent's report, a dashboard number, or a recalled fact is about to be trusted as evidence; when asked for the big picture, what a project is missing, or what else could be done; or when a run is closing and what it noticed is about to die with the context. Covers the frame and its sources, eight directions and the tells that pick one, moves — restating without the request's nouns, changing altitude, auditing constraints, deviation guidewords, the observation that tells two readings apart — lenses from other disciplines, a bounded orbit of the whole project, ideas produced as observations, and routing all of it to a gate, not into work.
Overview
This library is a machine for doing the stated thing well. Every skill in it is sharp about its own stretch and all of them are pointed inward at the request: reproduce it, scope it, plan it, test it, prove it, land it. Run correctly, that machine produces an excellent implementation of whatever arrived in the first message. It has no organ for noticing that what arrived in the first message was the wrong thing to build — or that the plan, the metric, the decision, or the project it arrived inside was the wrong thing to stand on.
That is the gap this fills, and the name is a claim about the mechanism rather than a boast. Clairvoyance is clear sight, not prophecy. Nothing here predicts anything. It makes visible what was already there and unlooked-at — in the request, underneath it, around it, and in the whole it is a part of — because the reason it went unlooked-at is not that it was hidden. It is that the request came with a frame, and you accepted the frame in the first sentence you wrote back.
The frame is invisible for a specific reason worth stating plainly: it is made of the requester's own vocabulary, and you inherit it by answering in their words. "Add a retry to the uploader" hands you three commitments before you have thought anything — that there is one uploader, that retrying is the remedy, and that the failure is transient. Every skill in this library then executes flawlessly inside all three. A request is only the commonest carrier: a plan carries its author's judgments compiled out, a number carries its instrument, a project carries a purpose nobody has compared to its behaviour lately. Anything that arrives with a frame it did not announce is this skill's object.
People ask for this as "God's view", and the phrase is right about what it wants and wrong about what exists. There is no seat that sees everything. The view from above is assembled from several partial seats, chosen on purpose — and it is bounded, or it becomes the most sophisticated available way of not finishing. The counterweight this needs is managing-scope-drift, and it is not an opponent. It is the other half. The rule that makes both true at once is the whole discipline here: seeing more is free; doing more is not.
When to use
- A request is understood, and the next action would be to start executing it.
- Before proposing a design — the one moment when a reframe is nearly free.
- Before a plan is executed, a decision relied on, a number acted on, a document sent, or a pattern followed because it is how things are done here.
- The third fix for the same bug did not hold, or the hypothesis list is empty.
- Two requirements look incompatible and a trade-off is about to be split.
- Every alternative — or every idea — generated so far has the same shape as the first one.
- The approach came from the first file you opened, or a plan is about to be executed exactly as written by someone who did not write it.
- Someone asks for the big picture, what a project is missing, what else could be done, or what they are not seeing.
- A run is closing, and what it noticed in passing is about to die with the context.
- A sweep is being asked for by name — someone wants the space around this, not the thing itself.
Bounded against its neighbours, because the overlap is real and filing this wrong makes it useless:
- Not for generating other answers to a settled question —
steelmanning-alternativesowns option generation, and it operates on a candidate that already exists. This runs before there is one, and it questions the question. Animaginepass produces candidates for that skill to work on; it does not choose among them. - Not for attacking a finished artifact —
red-teaming-your-own-workowns adversarial review, and it asks whether the thing is wrong. This asks whether the thing is the point. - Not for turning an idea into an approved design —
scoping-before-buildingowns that, and this feeds it. A sweep that produces a reframe hands it to the design gate; it does not skip one. - Not for enumerating adversaries —
threat-modelingowns the actors who want this to fail, and the actor pass here hands off the moment it finds one. - Not for justifying work nobody asked for.
managing-scope-driftstill governs everything a sweep, an orbit, or an idea makes you want to do, and it wins.
In thirty seconds
The whole method, in five lines. The rest of this file is those five in full.
- Name the frame. What is the object — a request, a plan, a number, a project, the run you are in — and where did its frame come from? An approach whose rejected siblings you cannot name was not chosen; it was inherited.
- Restate it without its own nouns. If you cannot, you have not understood it. If you can, the alternatives are usually visible in the restatement.
- Look where the tell points. One direction for a small change, three for an ordinary one, all eight for a campaign. No tell fires, no sweep.
- Name the observation that would tell two readings apart, and go and look. A reading nothing could distinguish from its rival is not a finding.
- Route everything — to a gate, the ledger, the record, or a discard with a reason — before anything acts on it. Then say what you found in one line, or say you found nothing in one line.
| The tell | Look | With |
|---|---|---|
| The request names a mechanism, not an outcome | behind | ideal final result, why now |
| A third fix failed; the bug moved; a parameter does nothing | under | key assumptions check |
| The second or third time this shape has come up | above | the reference class by shape |
| The change touches something else's boundary, or another writer is in the tree | beside | flows across the boundary |
| Easy now, permanent afterwards; the radius is live | ahead | pre-mortem, pace layers |
| A fourth special case just arrived | against | via negativa, do nothing |
| The problem feels novel | outside | the stranger's first question |
| More than one owner; a date, budget, or audience the request never named | around | show me the incentives, the empty chairs |
| A number is about to be acted on | under | Goodhart, the ruler measures the hand |
| Asked for the big picture, or arriving on inherited work | orbit | one lens per pane |
| Every idea so far has one shape | imagine | the divergence lenses |
Sight is free. Action is not.
This is the pin. Without it, a skill about seeing more is an engine for scope inflation with a nice name, and every observation it produces arrives already feeling like a mandate.
A sweep — one bounded pass, sized by the table further down — produces observations. It does not produce work. Neither does an orbit, and neither does an idea: an idea is an observation about the possibility space, and it routes exactly like a finding about the request. Every observation gets routed into exactly one of four places before anything is acted on, and being routed is not optional — an observation that skips the table is scope drift wearing a costume.
| Route | When | What it becomes |
|---|---|---|
| Back to the gate | The observation changes what should be built | Reopen the phase that owns it — usually design. The spec changes visibly, and the approach that lost stays written down |
| Into the ledger | The observation changes what would count as done | A new acceptance line, watched failing once like any other, per finishing-what-you-started |
| Into the record | It is real, and it is not for today | A ruling in the run record, and an input to offering-the-next-move at close. This is where most of them go, and where every idea goes |
| Discarded, with a reason | It is interesting and it is not true, not yours, or not worth it | One line saying why. A discard with no reason gets re-derived by the next session |
Two things follow that are easy to skip. Nothing is acted on straight out of a sweep — not even the obviously-correct finding, because "obviously correct" is exactly how the frame felt an hour ago. And the third row is the common case, not the consolation prize. A run that routes everything to the first row is not perceptive; it is one that has decided the request was wrong seven times in an afternoon.
Then the rule that outranks all four rows: a sweep is never a reason something did not ship. "I looked into it and the request was the wrong shape" is the most sophisticated available form of not doing the work, and it is indistinguishable from insight right up until someone asks where the deliverable is. finishing-what-you-started still governs; a reframe raised and declined leaves the original ledger fully owed.
The table says where; it does not say when, and one class of observation cannot wait for the close. A live vulnerability, a data-loss path, or a false premise the current work is already standing on is not a row-three finding that happens to be serious — it is an interruption, and managing-scope-drift owns the judgment about which observations earn one. Severity sets the timing; the routing table still sets the destination.
One row has a second home. A discard whose lesson would hold in a repository you have never seen is not only a discard — that is exactly what tending-tbaguette queues, and the two sentences it costs are cheaper now, while the reasoning is still in front of you, than the reconstruction later.
Where the frame comes from
Five sources, roughly in descending order of how much they steer. Visibility runs the other way and does not run cleanly: the last one below is both the least visible and among the strongest, which is what makes it worth its own entry.
- The request's vocabulary. Every noun is a commitment and every verb is a chosen remedy. This is the strongest frame and it operates before you have made a single decision.
- The first file you opened. Orientation is not neutral. The module you read first supplies the model you will fit everything else into, and if you opened the wrong one, every subsequent read confirms it —
orienting-in-unfamiliar-codeis about doing this well, not about doing it without consequence. - The codebase's existing pattern. "How it is done here" answers a question nobody asked out loud, and the answer is usually right, which is what makes the times it is wrong so expensive.
- The previous turn. Yours. An approach adopted three responses ago is now a premise, and nothing in the transcript marks the moment it stopped being a choice.
- A report you did not produce. A subagent's conclusion, a tool's output, a search that came back empty, a dashboard number, a plan handed to you already written, a memory from a session you do not remember. Each arrives as a finding with its framing already compiled out — which is the same shape a request has, and it is trusted more, because it looks like evidence rather than like a choice. A plan is the sharpest case: executing one exactly as written is correct discipline and also means adopting every judgment its author made without ever seeing one of them.
The tell for all five is the same and it is worth learning: you can state what you are doing but not what it is instead of. An approach whose rejected siblings you cannot name was not chosen. It was inherited.
Two frames disagreeing is the cheapest sight there is
They are five sources, not one frame, and they do not always agree. The request's vocabulary says retry; the codebase's pattern says everything here is idempotent and retried at the edge. The subagent's report says the parser is at fault; the file you opened first says the parser has one caller.
A disagreement like that is worth more than any sweep you could run on purpose, because the noticing has already been done for you — you did not have to step outside the frame, two frames stepped outside each other. It is also the easiest thing in this file to walk past, because the reflex on meeting one is to pick the more authoritative source and move on. Do not pick. A conflict between two frames is a finding before it is a question to settle, and the move it hands to is the fifth one below — name the observation that would tell the two apart, then go and look.
What can be swept
The method was written for a request, and a request is one instance of the general case: anything that arrives carrying a frame it did not announce. What changes per object is where its frame comes from, when a look is cheap, which direction pays first, and where a hit goes. reference/objects.md has each in full.
| Object | Frame from | Cheap moment | Look first | A hit goes to |
|---|---|---|---|---|
| A request | its vocabulary | before a design exists | behind | the design gate |
| A bug report | the report's wording | the third failed fix | under | back to reproduce, as a hypothesis |
| A plan | its author's unwritten judgments | before task one | under, then against | the plan, never the task |
| A design or spec | the first approach proposed | before the yes | against, beside | the gate |
| A decision or ADR | its dated premises | when relied on | ahead, read backward: what changed since | revalidating-decisions |
| A number, report, or dashboard | the instrument | before acting on it | under | a tier mark, per calibrating-confidence |
| A document | the reader it assumed | at frame the reader | beside, ahead | the draft |
| A codebase or pattern | "how it is done here" | the fourth special case | above, against | the record, or an ADR |
| A project | its charter vs. its behaviour | the orbit moments | around, then all eight | the orbit record |
| A conversation | your own previous turns | a conviction grown without evidence | under | said out loud, once |
| The run itself | the track and envelope chosen at the start | a stop condition, or a third failure of one shape | against, under | the phase log, as an envelope change |
Two rows carry a warning. A hit on a codebase is an observation about the pattern, routed to the record — never a refactor started from inside a sweep. A hit on the run itself can only ever be an envelope change written down — never a silent downgrade, because the part of a run that most wants to be finished is the part reading this.
The eight directions
Where to look. Each is a direction from the object, not a technique — and each has a tell, because running all eight every time is furniture, and a skill that fires constantly gets ignored precisely when it matters. reference/directions.md has each one in full: its question set, its characteristic yield, and the specific way each one fails.
| Direction | Looks at | The tell that picks it |
|---|---|---|
| Behind | The goal the request is already a solution to | The request names a mechanism rather than an outcome |
| Under | The assumptions its own vocabulary smuggles in | A third fix did not hold, or the bug moved instead of dying |
| Above | The class this is one instance of | This is the second or third time something of this shape has come up |
| Beside | What becomes possible, trivial, or broken once this exists | The change touches a boundary something else depends on |
| Ahead | The second-order consequence, and who inherits it | The work is easy now and permanent afterwards |
| Against | The inversion — delete it, do nothing, do it by hand, make it impossible | The design is accumulating special cases |
| Outside | What a different discipline calls this, and whether it is solved there | The problem feels novel, which it almost never is |
| Around | The field — who has a stake, what forces act, why the world sent this now | More than one owner, or a date, budget, or audience the request never named |
They are not orthogonal and are not meant to be — behind and under both sit upstream of the request, above and beside both look outward from it, and a single finding often arrives through two at once. The tell is what does the selecting, not a taxonomy; a finding that came in through the wrong door is still a finding.
Behind is the highest-yield and the most dangerous, and both for the same reason: it produces the strongest results and it is the one that turns you insufferable. A recovered goal is a hypothesis about someone else's intent, and it gets stated as one — "is this about X, or about Y?" — never as "what you actually want is". You do not have privileged access to what they meant. You have noticed that their words admit two readings, which is a fact about the words.
Outside is the one that gets skipped as decorative and is not. On this skill's own creation it was the direction that paid best; the worked record is in reference/self-application.md.
Around is the one a view from above is mostly made of. The seven before it are about the problem; this one is about the room it was asked in — the people who will decide what happens to any answer, and the incentives, deadlines, and habits acting on them. Its failure is the one to watch: motive is not observable, so an around finding stays with what is — the metric, the date, the org chart, the message — and phrases the rest as a question.
The seven moves
The directions say where to look. These say how. Each one breaks a different kind of frame; the fifth turns what the others find into something you can check. They are mechanical on purpose — "think differently" is not an instruction anyone can follow, and a creativity prompt that cannot fail cannot help.
Restate it without its own nouns. Take the request and say it again using none of the words it arrived in. "Add a retry to the uploader" becomes "make a transfer that sometimes stops partway end up complete." Two things fall out. If you cannot do it, you have not understood the problem yet and the next hour was going to be expensive. If you can, the alternatives are usually visible in the restatement — resumable was not in the original sentence, and now it is the obvious answer. The vocabulary was doing the constraining, and this is the cheapest way to find out.
Check your repertoire. This is the direct answer to "take a path you have not taken", and it works because your unexplored paths are not random — they are the same ones every time. Name the move you are about to make and the family it belongs to. Then name a family you have not sampled. The habitual families are recognisable: read more, add a layer, add a flag, retry harder, extract a function, ask the user. The ones reliably left unsampled are: delete it, invert it, move the decision earlier, change who does it, make the bad state unrepresentable instead of checking for it, do it once by hand and find out whether it recurs. Picking from the second list is not a guarantee of a better answer. It is a guarantee that the answer was chosen rather than defaulted to.
Audit the constraints. List what the request treats as fixed, then ask of each one: who would have to agree to lift this? Three answers, and only one is a constraint. "Physics, or the standard, or the regulator" — real, design inside it. "A named person or team" — negotiable, and the cost of asking is usually one message. "Nobody, it is just how we have been doing it" — that was never a constraint, and it has been shaping the design anyway. revalidating-decisions owns the case where the constraint is a recorded decision with a premise that has since expired.
Find the contradiction. When a request seems to demand two incompatible things and the instinct is to split the difference, the trade-off is usually the frame's shadow rather than a law. State both requirements in their strongest form and ask what would have to be true for both to hold at once. Sometimes nothing, and you have learned the trade-off is real and can defend it. Often enough, the answer is a third arrangement in which the conflict does not arise — and it was invisible because the frame presented the two as endpoints of one dial. This is the move that most often produces something genuinely new, and it is the one nobody reaches for, because splitting the difference always looks reasonable.
Name the observation that would tell them apart. The moves above produce competing readings, and the reflex is then to argue for the better one — which is how a sweep turns into an opinion nobody can check. Do not argue. Ask instead: what could I look at that would come out differently depending on which reading is true? One grep, one log line, one question, one file. Then go and look.
This is the move that makes the whole skill a technique rather than a sensibility, and it is borrowed rather than invented — intelligence analysis builds its entire method on it, on the grounds that evidence consistent with every hypothesis is evidence for none of them. The same applies here. A reading that nothing could distinguish from its rival is not insight, however well it is put, and noticing that early is worth more than winning the argument. When the discriminating observation is cheap, the sweep stops producing hypotheses and starts producing findings; when there is none, say so and mark the reading as an inference, per calibrating-confidence.
Change altitude. Say the problem one level up and one level down from where it was stated — the line, the module, the system, the product, the world it operates in — one sentence each. A problem is rarely cheapest to solve at the altitude it arrived at: the uploader's retry is a line-level fix to a system-level property, and the "make everything idempotent" that a system-level reading suggests is sometimes a one-line change at the edge. The finding is the altitude where the sentence is shortest. deciding-reversibility decides at the right altitude; this is how you find out which one that is.
Run the deviation guidewords. For each parameter of the thing — every input, output, timing, quantity, and actor it has — apply each of a fixed list and describe the case it produces: no, more, less, as well as, part of, reverse, other than, early, late, before, after. Process safety built this as a way of finding hazards nobody would have imagined; it is also the most reliable generator of ideas in this file, because the guideword does the generating and the parameter does the grounding, and neither of them is your imagination. "The upload arrives early" and "the upload arrives as well as its own duplicate" are cases the request never contained and two designs it silently excluded. auditing-new-input-categories and property-based-testing turn the cases into checks.
Look for what is absent
Everything above finds things that are wrong. The rarer, harder sight is finding what is missing, and it is harder for a structural reason: absence is invisible to inspection. You cannot review your way to it, because review examines what is in front of you and this is not. Economics has a name for it — the seen and the unseen — and the discipline it names is the same: for every effect you can point at, name the one you cannot.
The instruments read green here. The tests pass, the diff is clean, the ledger is ticked, and none of them can report a case nobody wrote, a state nobody modelled, a caller nobody updated, a reader nobody considered. Green is a statement about what was checked. It is silent about the shape of what was not.
Four questions that actually surface absence, because they do not start from the artifact:
- Enumerate from the domain, not the code. List every state the thing itself can be in — every input category, every actor, every lifecycle stage — and then find each one in the work. The ones with no counterpart are the finding.
auditing-new-input-categoriesandmodeling-state-machinesown the enumeration; this is why you run it. - Ask who is not in the room. Every request is written from one seat. The operator, the person who inherits this at 3 a.m., the reader with no context, the caller you did not write, the second tenant — one of them is usually absent from the design entirely, and their absence is not visible from inside it.
seat <chair>runs one of these on demand. - Ask what would have to exist if this were true. If the stated cause is real, what else would show it? A cause with no corroborating trace anywhere else is a story, not a diagnosis —
diagnosing-before-fixingruns this on bugs specifically, and it generalizes. This is the fifth move aimed at a cause rather than at a reading, and the absence it finds is the corroboration that never turned up. - Ask what was not asked. People in the requester's position usually ask a certain set of things, and a request unusually short for its consequences has compiled some of them out because they were obvious to the person writing. The unasked question is the requirement nobody will ever state.
reviewing-code-deeply applies absence-hunting to a diff, which is the same instinct one level down. This applies it to the request.
Lenses: instruments borrowed from other fields
A direction says where to look from. A lens is a specific instrument to look with — a question some other discipline turned into a standard technique because its practitioners kept being blind in the same place. reference/lenses.md holds about thirty of them, filed under the blindness each cures, because that is how you pick one: name what you are probably not seeing, then take the lens built for it.
| You are probably blind to | Because | A lens built for it |
|---|---|---|
| The smallest possible design | the request's words named a mechanism | ideal final result; the job it is hired for |
| One of your own assumptions | the first thing seen became the model | key assumptions check; quality of information check |
| The wrong size | a number nobody chose is in the design | ten times, one tenth; population one; altitude ladder |
| The class this belongs to | the instance was taken as unique | the reference class by shape |
| What is changing under you | the present was assumed permanent | why now; pace layers; pre-mortem; indicators |
| A seat nobody sat in | every request is written from one chair | the empty chairs; show me the incentives; the mirror of the organization |
| The whole | a part was mistaken for it | the purpose of a system is what it does; leverage points; flows across the boundary |
| What is not there | absence is invisible to inspection | the seen and the unseen; deviation guidewords; the unasked question |
| The instrument | the number arrived with authority | Goodhart; the ruler measures the hand; the base rate |
| Buy versus build | the two were never distinguished | the evolution axis |
The catalogue is not a checklist. Running every lens is furniture; the tell for each is what selects it, and most sweeps use one. Where this library already holds the technique in full — threat-modeling for attackers, revalidating-decisions for a premise that expired, mapping-dependencies for blast radius — the lens is the reason to open that skill, not a substitute for it. lens <name> runs one by hand.
Orbit: the whole from above
An orbit is the view of a whole project from outside it: one bounded pass, about five hundred words, that says what it is at five altitudes, what it actually does against what it says it is for, who sits in its chairs and which are empty, what crosses its boundary, what is changing under it and at what pace, what it has never had, and which forces will decide what happens to any proposal made about it. It is what the request for a God's view is actually asking for, assembled from seven partial seats rather than one omniscient one. reference/orbit.md has the panes, the lens each is made with, the output shape, and the moments.
Its bounds come before its method, because this is where the skill is most dangerous:
- About five hundred words, counted — seven panes of one to three sentences each. At most three findings, each carrying the observation that would confirm or refute it, each routed like any other. The bound is a number because a bound in a unit nobody measures does not hold: it said "one page" once, and measured runs came back at three.
- At named moments only — on arrival at inherited work after orientation, before a milestone decision, when stuck three times at the same place, in a postmortem, or on request. Never a mode, never during an incident.
- Never a redesign. Anything found above the level of a rule — a goal, a paradigm, "this should be a different project" — goes to the record and the closing offer.
managing-scope-driftwins hardest here. - An orbit that finds nothing is a project that is what it says it is, and that is a result. An orbit is most valuable the second time it is run: the diff between two orbits is the project's actual direction, which no single one can show.
Imagine: ideas as observations
The skill was built as a diagnostic rather than a brainstorm, and it stays one. But a request for ideas is a real request, and the same machinery answers it once one thing is settled: an idea is an observation about the possibility space, and it routes exactly like a finding about the request — to the record, mostly, and to the closing offer, where the person decides which of them becomes work.
An imagine pass is bounded divergence. Pick the lenses built to produce candidates rather than to check them — ideal final result, ten times and one tenth, the inversion forms, an analogy from a named discipline, the deviation guidewords, a pre-mortem inverted into what would have prevented it — and run three or four of them once. Stop at five candidates. For each, write two things: the idea in one sentence, and the observation that would tell whether it is worth anything. A candidate with no such observation is a wish, and it is discarded with that reason. Then rank by what it would cost to find out, and deliver the list under one question, per offering-the-next-move. Nothing on it is built from inside the pass.
What this is not: steelmanning-alternatives chooses between options and recommends; an imagine pass produces the options it then works on. It is not a way to make a dull task interesting — its seats are few: the design gate, an emptied hypothesis list, the frame-the-reader moment, and the search for the operation against wants instead of a migration; reference/track-seats.md closes it everywhere else. And the unexplored path is worth considering; it is never worth choosing on that ground.
Sizing the sweep
A sweep is one bounded pass at a named moment. Not a mode you enter, and never a background hum — the moment it runs continuously it becomes furniture, and furniture gets read past.
Size it by the run's amplitude, from orchestrating-work-end-to-end, and pick by the tells rather than by working down the table:
| Amplitude | Sweep | Which | Orbit and imagine |
|---|---|---|---|
express | One direction, one question | The one its tell selects. No tell fires, no sweep | Neither, unless asked for by name |
standard | Three directions | Whichever tells fired, capped at the two strongest, plus against, which is cheap and needs no tell | An imagine pass stops at three candidates; no orbit |
campaign | All eight, once, at the design gate | And once more at close, restricted to ahead and beside, feeding the offer | One orbit at arrival if the work is inherited; an imagine pass stops at five |
One pass. If a second sweep is genuinely warranted it is because something changed — a gate failed, a premise died, the track moved — and that change is what justifies it, not the feeling that there is more in there. There is always more in there. That is not evidence. knowing-when-to-stop owns the general form of that judgment, and this is its sharpest case: a sweep has no natural stopping point at all, because the space around a request is unbounded and every pass through it can be made to produce something. An orbit is that case squared.
Where it sits in a run
Clairvoyance has a seat in every track orchestrating-work-end-to-end routes to, and the seat is different in each. One row below is a prohibition rather than an invitation, and the envelope list underneath adds the other. reference/track-seats.md has the detail: the entry moment, the direction that pays there, what a hit routes to — and the far fewer seats an orbit or an imagine pass gets.
| Track | The moment | If it hits |
|---|---|---|
| Build | Between frame and design, before the first approach is proposed | Back to the gate — the design has not been written yet, so a reframe costs a paragraph |
| Diagnose | When the hypothesis list empties, or the third fix does not hold | Under. The assumption is in the reproduction, not in the patch |
| Respond | Not during mitigation. At stabilize, and again in the postmortem | Nothing may delay stopping the harm. A frame question with users broken is the "let me understand this properly first" red flag, exactly |
| Investigate | Before the conclusion is written | The question asked may not be the question that matters. Report both, and mark them per calibrating-confidence |
| Review | On coverage, before judgment | The absence pass above. What the diff does not touch is the finding a review most often misses |
| Author | At frame the reader, and again before verify | Beside and ahead — who else reads this, and what this document makes impossible to say later |
| Change in place | Before deciding-reversibility, not after | Against first: the cheapest migration is the one you do not do because the thing can be deleted |
The envelope constrains it too, and one of those is a hard stop:
autonomousorunattended— a sweep may run; a reframe may not be self-approved. Changing what is being built, with nobody there to agree, is a decision to build something nobody asked for, and confidence does not convert it. Write the observation, the reading that lost, and a stop condition; then continue on the original frame. An orbit's findings and an imagine pass's candidates go to the record only.bounding-autonomous-workowns the substitution.liveblast radius — ahead is not optional. The second-order consequence is the whole reason the radius is live.shared tree— beside first, and aimed at the other writer. What you are about to do that they cannot see is the finding.campaign— the discard pile goes in the record. Its whole value is that the next session does not spend an hour re-deriving it and discarding it again.
Delivering sight
A sweep's output reaches a person, and this is where an otherwise good pass turns into something nobody wants to receive again.
One question, not a monologue. The deliverable is not the sweep. It is the single thing that would change what happens next, phrased as a choice, through the harness's own question tool — offering-the-next-move owns that discipline and this feeds it. Four observations delivered as a paragraph is a lecture; the best one delivered as a question is a decision they get to make. An imagine pass delivers its ranked list the same way: the candidates under one question, never five questions. Where nobody is there to receive it, the question does not evaporate: it becomes a line in the run record and a line in the report, phrased as the choice it would have been, so that whoever reads the run gets to make it late rather than never.
Say it once. A reframe declined is a reframe answered. Raising it again in different words at the next phase boundary is not diligence, it is not taking the answer. Record the ruling and build the thing they asked for, properly.
They own the scope. Sight is yours to produce and theirs to spend. "I see why you'd frame it that way, do it as asked" is a complete and correct outcome, and it goes in the record as a ruling — not as a defeat, and not as something to relitigate when the approach gets hard later.
Attribute the uncertainty. A sweep produces hypotheses, mostly about intent and consequence, which are the two things you have least evidence about. Mark them as such. A reframe presented with the confidence of a measurement is the fastest way to get every future sweep discounted — and an orbit pane that names what someone wants rather than what they are measured on has crossed from sight into story.
The null is the normal result
Most sweeps find nothing, and that has to be a reportable, unremarkable outcome — or the sweep will manufacture something to justify having been run. This is not a hypothetical failure. A pass that is rewarded for finding things finds things.
Most requests mean what they say. Most frames are correct, which is why they became the frame. A sweep that comes back empty is reported empty, in one line, and it is the pass working rather than the pass failing — the same way a coverage check that finds no gap is a real result. The number to be suspicious of is not zero. It is seven. An orbit with seven panes of description and no finding is a project that is what it says it is; an imagine pass with five candidates and no discriminating observation for any of them has produced wishes.
Two consequences. An empty sweep is one line, not a paragraph explaining what you looked for. And a run whose every sweep finds a reframe is not perceptive; it has learned that finding things is how the sweep gets approved of.
Commands
Invoked directly, this skill takes a verb. With none it runs sweep, which is the whole method: size by amplitude, select by tell, route everything it finds. A sweep with no target sweeps the run itself — the tree as it stands, the last report, and the next action they imply — not the whole project, which is an orbit.
| Command | Does |
|---|---|
sweep [target] | The default. Name the frame and its sources, run the directions the tells select, route every observation. Ends by naming what it found, or by saying it found nothing |
orbit [project] | The whole from above: seven panes, about five hundred words, at most three findings, at a named moment. reference/orbit.md |
imagine [target] | Bounded divergence: three or four candidate-producing lenses, at most five ideas, each with the observation that would tell whether it is worth anything, ranked by the cost of finding out and delivered under one question |
lens <name> | One instrument from reference/lenses.md, by name, applied to the thing in front of you |
seat <chair> | One look from a named seat — the operator at 3 a.m., the auditor, the integrator, the customer's customer — at what that person notices first. The roster is at the end of the lenses file |
behind · under · above · beside · ahead · against · outside · around | Run that one direction regardless of what the tells say. Useful when you already know which way to look, and as a second opinion on a sweep that came back empty from a direction you doubt it really tried |
repertoire | The move on its own: name what you are about to do, name its family, name a family you have not sampled. Cheapest thing here and the one worth running most often |
route | You already have an observation and need it placed. Run it through the four-row table and write the line it earns — including the discard, with its reason |
sweep, orbit, and imagine are bounded by the amplitude table. The single-direction verbs, lens, and seat are deliberately not, because asking for one by name means a tell already fired for you.
Refuse
Category defaults, not bans. Each can be right in a specific run — reaching for one when the alternative was available means the sweep was performing rather than seeing.
- A sweep on a request whose frame you have not stated. You cannot look outside a box you have not drawn.
- Eight directions on a two-line change.
- A reframe delivered as a correction to what the person meant.
- An observation acted on without passing the routing table.
- A sweep run because the work inside the frame turned out to be hard or boring. That is avoidance with a method attached, and it feels identical from the inside.
- A finding kept because it is interesting. Interesting is not a route.
- A second sweep on the same frame with nothing changed in between.
- A sweep, or an orbit, during an active incident, before the harm has stopped.
- Novelty preferred because it is unexplored. The unexplored path is worth considering; it is not worth choosing on that ground.
- An orbit as a mode, a habit, or longer than its five hundred words.
- An idea delivered without the observation that would test it. That is a wish.
- A lens run because it is in the catalogue rather than because its tell fired.
- An around finding about what someone wants. Motive is a question, never a finding.
Common mistakes
| Symptom | Real cause |
|---|---|
| A brilliant reframe, delivered after the design was approved and built | The sweep ran at review instead of before design, which is where it was free |
| Every sweep produces three findings | The pass is being scored on yield, so it finds what it needs to find |
| The user got a paragraph of alternatives they did not ask for | The sweep's output was published instead of routed; only one of four routes ends at them |
| A sweep found the real problem and the run built it anyway | Routed to the record when it belonged at the gate — or the gate was skipped because reopening it felt expensive |
| The same reframe raised three times in one run | It was declined, and declining was read as not-yet-understood |
| Seven directions came back empty and the eighth was stretched to say something | The null rule was never accepted; empty was treated as a failed pass |
| An unattended run quietly built something other than what was asked | A reframe was self-approved. The one thing this skill's output cannot do without a human |
| The sweep became the work | No bound. One pass at a named moment is the whole shape; a mode has no exit |
| Nobody can say why an interesting finding was dropped | Discarded with no reason, so the next session re-derives it and drops it again |
| The alternatives all had the same shape | The frame was never named, so every option was generated inside it |
| Two readings of the request were argued for a page and neither won | No discriminating observation was named, so there was nothing either reading could have failed |
| The sweep was excellent and the thing that was asked for never shipped | A reframe is not a delivery. The original ledger stayed owed the whole time |
| The orbit proposed a different project | A finding above the level of a rule was routed to the gate instead of the record |
| Five ideas, all plausible, none checkable | The imagine pass skipped the discriminating observation; it produced wishes |
| A plan was swept task by task and nothing was found | The object was wrong: the frame is in the plan's judgments, and a task cannot see them |
| A number was acted on, and the instrument had never run | The measurement was swept as a request would be, without a measurement lens |
Red flags
- "What you actually want is..."
- "While we're in here, this whole approach is wrong."
- "Let me think about this more broadly first" — with users currently broken.
- "This is a really interesting adjacent problem."
- "They said no, but I don't think they understood the implication."
- "The sweep didn't find anything, let me look harder."
- "It's technically out of scope, but it's obviously better."
- "I'll just do the reframed version, it's the same amount of work."
- "Nobody's around to approve the reframe, so I'll use my judgment."
- "I know why they asked for this" — said about a person who is available to be asked.
- "The interesting finding here is really the deeper question" — said with the deliverable unfinished.
- "Both readings are defensible, so let me lay out the case for mine" — with no observation named that either one could have failed.
- "From a God's-eye view, this project should really be..." — one seat, claiming to be all of them.
- "Here are twelve ideas" — none of them with a way to find out.
- "Let me run the full orbit before I touch this" — on a two-line change.
- "They clearly want..." — about someone's motive, in an around finding.
Reference
Each entry: what the direction looks at, the questions that open it, the tell that selects it, what it characteristically yields, and the specific way it fails. The failure line is the important one — every direction here has a degenerate form that feels exactly like the real thing from the inside.
Read the direction the tells selected. Reading all eight is the campaign-sized sweep and it is rarely the right size. Seven of these look at the problem; the last looks at the field the problem sits in — the people and forces that will decide what happens to any answer — and it is the one a view from above is mostly made of.
---
Behind — the goal the request is already a solution to
Looks at: the problem the requester solved in their head before writing to you. A request is almost never a problem statement. It is a proposed remedy, with the problem compiled out of it.
Questions:
- What would be true if this were done? And what would that make possible?
- What happens if it is not done — what is the actual cost, to whom, when?
- Why now? What changed? A request that could have been made a year ago and was not is a request with a recent cause that is not in the sentence.
- Is there a cheaper thing that produces the same outcome rather than the same mechanism?
Tell: the request names a mechanism rather than an outcome. "Add caching", "add a retry", "add a flag", "make it async" — each names a remedy, and each is one member of a family the requester picked from without saying so.
Yields: the highest-value findings in the whole set, and the ones that save the most work, because a request satisfied at the goal level is often an order of magnitude smaller than the mechanism it arrived as.
Fails as: condescension, every time, and it is the failure that gets this whole skill switched off. A recovered goal is a hypothesis about someone else's intent. You have noticed their words admit two readings — a fact about the words, not privileged access to their mind. Ask "is this about X or about Y?". Never say "what you actually want is". And when they are available to be asked, asking beats inferring, always; inference here is what you do when presence is not paired.
---
Under — the assumptions the vocabulary smuggles in
Looks at: the commitments you accepted by answering in their words. Every noun asserts a thing exists and is one thing. Every verb asserts a remedy.
Questions:
- Which nouns here are assumed to be singular? ("the uploader", "the user", "the config")
- Which are assumed to exist at all?
- What is the request treating as given that is actually a choice someone made?
- What would have to be true for this framing to be correct? Is it?
Tell: the third fix did not hold. Or the bug moved rather than dying. Or a parameter appears to have no effect. All three are the signature of a correct fix applied inside a wrong model — diagnosing-before-fixing owns the loop, and this is what its "escalate to questioning the architecture" step actually does when you get there.
Yields: the finding that explains a whole run of failures at once. Under is the direction that pays in Diagnose specifically.
Fails as: infinite regress. Every assumption rests on another one, so the questioning never terminates on its own. Bound it: list the assumptions, mark each load-bearing or not by asking whether the work changes if it is false, and examine only the load-bearing ones. Three is usually all there are.
---
Above — the class this is one instance of
Looks at: the general case. This request has a shape, and the shape has probably been through here before.
Questions:
- What is this an instance of?
- Has something of this shape come up before — in this repo, this month, this conversation?
- Is the general case cheaper than the specific one? Sometimes it is: one mechanism replacing four special cases is less code, not more.
- And the inverse, which matters more often: is the specific case genuinely all that is needed, and is the general one a way of avoiding a decision?
Tell: this is the second or third time something of this shape has come up. Repetition is the only honest evidence that a general case exists; automating-repetition owns the judgment about when a repeated shape becomes machinery, and this is the sight that feeds it.
Yields: either a much smaller total, or a clear decision to stay specific that will not be second-guessed later.
Fails as: premature abstraction, which is the most expensive failure in this file. One instance is not a class. Two is a coincidence. The generalization built on one instance is always the wrong generalization, because the features you cannot see are exactly the ones belonging to the single case you have. judging-duplication is the counterweight and it wins by default.
---
Beside — what stands next to this once it exists
Looks at: the neighbourhood. Not consequences over time (that is ahead) but adjacency now — what this touches, enables, blocks, or duplicates.
Questions:
- What becomes trivial once this exists, that is currently hard?
- What becomes impossible, or much harder?
- What already does most of this? A capability that exists under another name is the single most common thing a sweep finds.
- Who else is writing to this, and what do they not know is coming?
Tell: the change touches a boundary something else depends on. Or the tree has another writer in it, in which case beside is not optional — see the envelope note in the main file.
Yields: the duplicate-capability find, and the collision nobody had connected to this work.
Fails as: the adjacent-possible trap. Beside reliably produces genuinely good ideas that are genuinely not this task, and they are seductive precisely because they are cheap right now while you have the context loaded. That cheapness is real and it is not a route. Third row of the routing table: into the record, offered at close, built if they say yes.
---
Ahead — the second-order consequence
Looks at: the consequence of the consequence, and the person who inherits this after everyone who built it has moved on.
Questions:
- Who maintains this in six months, and what do they need to know that is currently only in this conversation?
- What does this make hard to change later? Every mechanism is also a commitment; which one is being made here?
- If this succeeds completely, what breaks? Success is a load profile too.
- What is the reversal cost — and is anyone treating this as reversible when it is not?
deciding-reversibilityowns the answer; this is the question.
Tell: the work is easy now and permanent afterwards. Schemas, public interfaces, file formats, anything with a migration on the other side of it, and anything at all when the blast radius is live.
Yields: the one-way door nobody had labelled as one.
Fails as: speculative futureproofing — building for a load, a scale, or a requirement nobody has. The discipline is that ahead produces an observation and a reversal cost, not a feature. "This is a one-way door and here is what it costs to walk back" is the finding. "So we should build the general version now" is above failing, wearing this direction's clothes.
---
Against — the inversion
Looks at: the negation of the request. The direction nobody takes, which is why it is the highest-variance one here.
Questions:
- What if the answer is to delete something rather than add?
- What if the answer is to do nothing — what actually happens then?
- What if this were done by hand, once, to find out whether it recurs?
- What if the failure were made impossible rather than handled? An unrepresentable bad state needs no check.
- What if the constraint everyone is designing around were simply removed?
Tell: the design is accumulating special cases. Every special case is the frame charging interest, and a fourth one is the signal to invert.
Yields: the largest simplifications available anywhere. deleting-code and modeling-state-machines are where the results usually land.
Fails as: contrarianism — inverting to be interesting rather than to be right. The check is cheap: an inversion has to be argued for on the same terms as the original, and if the argument is "it is unexplored", it has not been made. Novelty is a reason to look, never a reason to choose.
---
Outside — what another discipline calls this
Looks at: the same problem, in a field that has already solved it and named it something else.
Questions:
- What would someone who has never seen this codebase, this team, or this conversation ask first?
- Which discipline has this problem as a solved standard — distributed systems, control theory, accounting, logistics, typesetting, aviation, law?
- What is this problem called there, and what does that field consider the obvious answer?
- What does the stranger's question reveal that the expert's does not? Expertise is frame-acceptance made efficient, which is its value and its cost.
Tell: the problem feels novel. It almost never is, and that feeling is mostly a report about your own vocabulary rather than about the problem.
Yields: an existing solved answer, an existing name to search under, and occasionally a whole missing concept. This direction is routinely dismissed as decorative and is not — on this skill's own creation it was the direction that paid best, and self-application.md records exactly what it produced and what it cost.
Fails as: analogy mistaken for argument. An import from another field is a hypothesis with a good pedigree, and pedigree is not evidence. It gets tested against this problem's actual constraints like anything else, and the constraints that made it work there are the first thing to check for here.
---
Around — the field of people and forces
Looks at: everything that is not the problem and will still decide what happens to it. A request lands in a field: people who have a stake in the answer, incentives that pull the design one way whatever its merits, a deadline or a budget or a rule that was never written into the sentence, and a surrounding world whose motion is the reason this arrived this week. The seven directions above are about the thing being asked for. This one is about the room it was asked in.
Questions:
- Who else has a stake in this — who pays for it, who is measured on it, who has to live with it, who could veto it, and who does not know it is coming?
- What incentive does each of them answer to, and where does that incentive point that the request does not?
- What is fixed here that no engineering choice can move — a date, a contract, a regulation, a headcount — and is the design already respecting a constraint of that kind without naming it?
- What is happening around this that made it arrive now? A request is a response to something, and the something is rarely in the request.
- What organization builds and runs this, and will the boundary in the design match a boundary in that organization? A boundary nobody owns has no owner.
Tell: the work sits in a system with more than one owner, or the request carries a date, an audience, or a budget it did not mention. Also: a design that is technically sound and keeps being argued with — the argument is coming from the field, not from the design.
Yields: the stakeholder or force that will actually settle the design, found before it settles it; the incentive that explains a requirement nobody could justify on the merits; the deadline that makes the elegant option the wrong one; and the seat that was empty when the request was written, which is the finding seat exists to produce on demand.
Fails as: speculation about people. Motive is the one thing in this list you cannot observe, and an "around" finding that names what someone wants rather than what they are measured on or have said is a story. Stay with what is observable — the metric, the deadline, the org chart, the message — and phrase the rest as the question it is. The second failure is politics as design input: the field is a constraint to design inside, never an argument for a worse design. threat-modeling owns the one class of actor that must be enumerated adversarially, and it stays there.
A direction says where to look from. A lens is a specific instrument to look with — a question some other field turned into a standard technique because its practitioners kept being blind in the same place. Each one here is filed under the blindness it cures, because that is how you pick one: name what you are probably not seeing, then take the lens built for it.
The catalogue is not a checklist. Running every lens is furniture, and the tell for each is what selects it. Most sweeps use one; an orbit uses one per pane; lens <name> runs a single one by hand when you already know which.
Each entry: what it asks, the tell that selects it, what it characteristically yields, how it fails, and — where this library already has the technique in full — the skill that owns it. When an owner is named, the lens is the reason to open that skill, not a substitute for it.
---
Vocabulary lock-in — you inherited the words
Ideal final result (TRIZ). Asks: what if the outcome simply occurred, with no mechanism added at all — nothing built, nothing run, nothing maintained? Then: what is the least that has to exist for that? Tell: the request names a mechanism. Yields: the smallest design available, and often a deletion. Fails as: a wish written down as a plan; the lens ends at the least mechanism, never at zero.
The job it is hired for (product research). Asks: who "hires" this, in what situation, to make what progress — and what did they fire to hire it? Tell: the request describes a feature and never a moment in someone's day. Yields: the outcome-level statement of the request, which is what an acceptance line should be made of. Fails as: inventing the person; ask them when presence=paired. Owner: scoping-before-building aims its questions at purpose for this reason.
Commander's intent (military planning). Asks: if the situation changed after the order was given, what would the person who gave it still want? State the request one level of purpose up, so it survives a changed situation. Tell: a run that will outlast the assumptions in the request. Yields: the stop condition an unattended run should carry. Owner: bounding-autonomous-work for the stop conditions; finishing-what-you-started for the ledger line.
Anchoring — the first thing seen became the model
Key assumptions check (intelligence tradecraft). Asks: list every assumption the current reading rests on; for each, would the work change if it were false, and how would you know? Examine only the load-bearing ones. Tell: a third fix did not hold, or a conclusion has hardened without new evidence. Yields: the one assumption that explains a run of failures. Fails as: infinite regress — three load-bearing assumptions is usually all there are. Owner: the under direction is this lens applied to a request; diagnosing-before-fixing applies it to a reproduction.
Quality of information check (intelligence tradecraft). Asks: for each piece of evidence — where did it come from, how was it obtained, could the source be wrong or partial, and is anything else corroborating it? Tell: a conclusion resting on one report, one search, one tool result. Yields: the finding that the decisive evidence was never corroborated. Owner: calibrating-confidence marks the tiers; this is the pass that asks.
The stranger's first question. Asks: what would someone with none of this context — not the codebase, not the thread, not the field — ask first? Tell: expertise everywhere in the room and no dissent. Yields: the question the experts stopped asking years ago. Owner: red-teaming-your-own-work calls it distance obtained cheaply and has the mechanics.
Scale — the size was assumed
Ten times, one tenth. Asks: what changes if the load, the count, the budget, the team, or the deadline were ten times larger — or ten times smaller? Tell: a design with numbers in it nobody chose. Yields: the mechanism that only works at the assumed size, in either direction — the elaborate thing built for a scale of one is the commoner find. Fails as: futureproofing; this produces an observation and a threshold, never a feature.
Population one. Asks: what does this mechanism do when the population it needs — reviewers, corroborators, tenants, users — is one, or zero? Tell: any design built on independent agreement. Yields: the safeguard that is inert until the day it matters. Owner: scoping-before-building, sizing a trust circle.
Altitude ladder. Asks: say the problem at five altitudes — the line, the module, the system, the product, the world it operates in — one sentence each. At which altitude is it cheapest to solve? Tell: a fix that keeps growing, or a request stated at a level nothing else in the design lives at. Yields: the level the problem should be solved at, which is rarely the level it was stated at. Owner: deciding-reversibility decides at the right altitude; explaining-technical-work chooses the altitude of a report. This is also the sixth move in the main file, because it works on anything.
Class — the instance was taken as unique
The reference class by shape. Asks: what is this an instance of — named by its shape, never by its domain — and what did the last several members of that class cost, take, or turn into? Tell: the second or third time this shape has come up, or an estimate about to be built from decomposition alone. Yields: the number the inside view cannot produce, and the general case that four special cases were hiding. Fails as: premature abstraction — one instance is not a class; judging-duplication wins by default. Owner: estimating-effort for the number; automating-repetition for when the repetition becomes machinery. This is the above direction's instrument.
Time — the present was assumed permanent
Why now. Asks: what changed to make this arrive this week? A request that could have been made a year ago and was not has a recent cause outside the sentence. Tell: any request. Yields: the trigger, which is often the real requirement. This is behind's third question and earns its own entry because it is the cheapest lens here.
Pace layers (Stewart Brand). Asks: which layer does this change live in — the ones that churn (interface, feature) or the ones that hold (schema, data model, contract, organization)? Is it being built at the pace of a different layer? Tell: a fast change to something slow, or a permanent change made for a passing reason. Yields: the interface frozen for a UI whim, the schema migrated for a quarter's experiment. Owner: deciding-reversibility for the door it turns out to be.
Pre-mortem (Gary Klein). Asks: it is a year later and this has failed badly. Write the first sentence of the postmortem. Then: what would have to be true today for that sentence to get written? Tell: a plan with no named risks, or a room where nobody is objecting. Yields: the failure nobody would raise as a criticism but everyone will state as a prediction. Fails as: a list of generic risks; the sentence has to be specific enough to be checked. Owner: red-teaming-your-own-work attacks the finished thing; writing-postmortems is where the real one goes if the lens is ignored.
Indicators (intelligence tradecraft). Asks: if the current reading is wrong, what would you see first — and can it be watched? Tell: a decision about to be relied on for a long time. Yields: a tripwire instead of a belief. Owner: bounding-autonomous-work for stop conditions; revalidating-decisions for the reopen condition on a recorded decision.
The history in the tree. Asks: what did this look like a year ago, what was tried and reverted, and what has this project already refused? Tell: a proposal that feels obvious and has no trace of ever being made. Yields: the closed pull request that already answered the question. Owner: orienting-in-unfamiliar-code (the decisions that are not in the code) and code-archaeology (the reason a line exists).
Actors — one seat was assumed
The empty chairs. Asks: which seat was nobody sitting in when this was written — the operator at 3 a.m., the new hire, the auditor, the person who inherits it, the integrator, the second tenant, the customer's customer, the translator, the user on the slowest machine? What does each notice first? Tell: a request written from one seat, which is every request. Yields: the reader or user the design silently excludes. seat <chair> runs one of these on demand; the roster is at the end of this file. Owner: explaining-technical-work for the reader's seat; formidable for the user's.
Attacker tiers. Asks: who could want this to fail, with what capability? Tell: a new trust boundary, a new class of data, a new integration. Owner: threat-modeling — entirely. This entry exists so the actor pass does not forget the adversarial chairs, and it hands off the moment it finds one.
Show me the incentives. Asks: who benefits, who pays, who is measured on what, and where does each measurement point that the request does not? Tell: a requirement nobody can justify on the merits, or a sound design that keeps being argued with. Yields: the force that will shape the outcome regardless of the design. Fails as: cynicism, and speculation about motive — stay with what is observable: the metric, the deadline, the message. Motive is a question you ask, never a finding you write.
The mirror of the organization (Conway). Asks: which team builds and runs each part of this, and does every boundary in the design match a boundary in who maintains it? Tell: a component two teams both half-own, or one nobody does. Yields: the boundary that will drift because nobody owns the property across it. Owner: drawing-boundaries.
System — a part was mistaken for the whole
The purpose of a system is what it does (Stafford Beer). Asks: describe what this system actually does — to its users, its operators, its data — ignoring every statement of what it is for. Where do the two diverge? Tell: a charter, a README, or a mission that nobody has compared to behaviour lately. Yields: the gap between what a project says and what it is, which is the first pane of an orbit.
Leverage points (Donella Meadows). Asks: at what level is this request intervening — a parameter, a buffer, a structure, a delay, a feedback loop, an information flow, a rule, a goal, the paradigm the goal comes from? Is there a level up where the same outcome costs less? Tell: the same class of fix has been applied repeatedly at the parameter level. Yields: the information flow or rule whose change makes the parameter-tuning unnecessary. Fails as: the grand redesign; anything found above "rule" routes to the record, never to the gate.
Flows across the boundary. Asks: draw the boundary of the thing under discussion; what crosses it — money, data, trust, attention, dependencies, obligations — in each direction, and which of those has no owner on this side? Tell: a property that is sensible inside every component and wrong in composition. Owner: drawing-boundaries (the property no single component can see) and mapping-dependencies (the three graphs).
Feedback and delay. Asks: what loop does this sit in, and how long between an action here and its visible effect? What will someone do in the meantime? Tell: a control that is adjusted before its last adjustment has taken effect. Yields: the oscillation nobody modelled. Owner: rate-limiting-and-backpressure for the mechanics.
Negative space — what is absent was invisible
The seen and the unseen (Bastiat). Asks: for every effect you can point at, name the one you cannot — the thing not built because this was, the user who left without a ticket, the request never made because it was known to be refused. Tell: a benefit stated with no cost beside it. Yields: the cost that was paid silently. This is the absence section in the main file, under the name the discipline gave it.
Deviation guidewords (HAZOP, process safety). Asks: for each parameter of the thing — every input, output, timing, quantity, actor — apply each guideword and describe the case it produces: no, more, less, as well as, part of, reverse, other than, early, late, before, after. Tell: a design reviewed only against the cases its author imagined. Yields: cases, and ideas, that no unguided brainstorm produces, because the guideword does the generating and the parameter does the grounding. This is the seventh move in the main file. Owner: auditing-new-input-categories and property-based-testing turn the cases into checks.
The unasked question. Asks: what do people in the requester's position usually ask that this request does not? Tell: a request unusually short for its consequences. Yields: the requirement that was compiled out because it was obvious to them.
Ask the fluent expert. Asks: what would a native of this category — this script, this currency, this protocol, this regulation — flag first as the thing outsiders always get wrong? Tell: extending a system to a category it has never handled. Owner: auditing-new-input-categories.
Measurement — the instrument was trusted
Goodhart's law. Asks: if this number becomes the target, what does it stop measuring, and what will people do to move it? Tell: a metric about to become an acceptance criterion or an incentive. Yields: the second metric needed to keep the first honest.
The ruler measures the hand (Wittgenstein's ruler). Asks: a measurement is as much a statement about the instrument as about the object — what does this reading say about the thing that produced it? Tell: a number that is implausibly good, byte-identical across a change, or zero. Yields: the instrument that never ran, the proxy wearing the name of the thing it stands in for. Owner: diagnosing-before-fixing and calibrating-confidence each carry a case of this.
The base rate and the control. Asks: how often does this shape occur anyway? What happens if nothing is done? What would the measurement read with the change absent? Tell: an effect claimed with no comparison. Yields: the improvement that was regression to the mean. Owner: red-teaming-your-own-work bounds a null by what the search could have seen.
Evolution — build and buy were not distinguished
Where it sits on the evolution axis (Wardley). Asks: is each component of this genesis (nobody has done it), custom (some have), product (you can buy it), or commodity (it is a utility)? Build what is genesis; buy or borrow what is commodity. Tell: something being hand-built that has a price list. Yields: the component that should be a dependency, and the one that should not. Owner: steelmanning-alternatives has buy-or-build as one of its generators.
Inversion — the negation was never tried
Owned in full by the against direction. The named forms, so they can be run by hand: via negativa (what would removing something fix?), do nothing (what actually happens?), the worst possible idea (state the worst answer, then invert each of its properties), relax the constraint (revalidating-decisions owns the case where the constraint is a recorded decision), and by hand, once (do it manually to learn whether it recurs).
---
Seats — the chairs seat <chair> can sit in
Each seat is one look, from one position, at what that person notices first. Pick the seat the request was not written from.
| Seat | Notices first |
|---|---|
| The operator at 3 a.m. | Is there a runbook, an alert, a rollback, and a way to tell this failure from the last one |
| The new hire | Whether the names mean what they say and the docs match the tree |
| The auditor | Who approved this, when, and what evidence exists that it did what it claims |
| The maintainer in a year | Why any of this is the way it is, with everyone who knew gone |
| The integrator | The contract, its versioning, and what happens when they time out |
| The second tenant | Every place the first one's assumptions leaked into shared state |
| The customer's customer | What the end user experiences that the buyer will never see |
| The accountant | The cost per unit of the thing, and which unit |
| The regulator | What is recorded, retained, and provable |
| The one on the slowest machine, smallest screen, or no network | Whether it works at all |
| The translator | Every string that cannot grow and every layout that assumed English |
| The person who deletes this | What has to be true for that to be safe, and whether it ever will be |
| The attacker | Hands off to threat-modeling the moment the chair is occupied |
The main file's method was written for a request, and a request is one instance of the general case: anything that arrives carrying a frame it did not announce. A plan carries its author's judgments compiled out. A metric carries its instrument. A codebase carries "how it is done here". A project carries a charter nobody has compared to its behaviour lately. The run you are in carries the track and envelope you chose an hour ago, which have become premises.
The method is the same for every object — name the frame, restate without its nouns, look in the direction the tells select, name the observation that would tell two readings apart, route what you find. What changes per object is four things: where its frame comes from, the moment a look is cheap, the direction that pays first, and where a hit goes. That is this table, then the notes.
| Object | Its frame comes from | The cheap moment | Look first | A hit routes to |
|---|---|---|---|---|
| A request | its own vocabulary | before a design exists | behind | the design gate |
| A bug report | the report's wording — where it surfaced, one bug, that component | the third failed fix, or an empty hypothesis list | under | back to reproduce, as a hypothesis |
| A plan | the judgments its author made and did not write down | before the first task runs, and at every task that cannot be done as written | under, then against on the heaviest task | phase 4 — the plan, never the task |
| A design or spec | the first approach anyone proposed | before the yes | against, beside | the gate, with what it displaces named |
| A decision or ADR | its premises, dated when it was written | when it is about to be relied on | ahead (what has changed since) | revalidating-decisions |
| A measurement, report, or dashboard | the instrument, and whoever chose it | before anything acts on the number | under, plus a measurement lens | calibrating-confidence, as a tier mark |
| A document | the reader it was written for | at frame the reader, and before verify | beside, ahead | the draft |
| A codebase or architecture | "how it is done here" | on orientation, and at the fourth special case | above, against | the record, or an ADR |
| A project | its charter, against what it actually does | the orbit moments in orbit.md | around, then all of them | the orbit record |
| A conversation | your own previous turns | when a conviction has grown without new evidence | under | said out loud, once |
| The run itself | the track and envelope chosen at the start | a stop condition firing, or the third failure of one shape | against, under | the run record's phase log |
| A tool or instrument | what it can and cannot see | when its result is about to stand for the whole | under | calibrating-confidence |
Notes on the objects that are not requests
A plan. Executing a plan exactly as written is correct discipline and also means adopting every judgment its author made without seeing one of them. The plan's frame is those judgments. The cheap moment is before task one, and the tell inside execution is a task that cannot be implemented as written — that is the plan's frame failing, not the implementer's, and working-a-plan-task-by-task routes it back to the plan for that reason. Sweep the plan, never the task.
A decision. A recorded decision has a principle and a premise, and only the premise decays. The sweep's question is ahead run backward: what has changed since this was written that its author could not have known? The finding is a premise that expired; revalidating-decisions owns what happens next, and the sweep must not overturn the decision itself — that is that skill's job, done with the record open.
A measurement. A number arrives with the authority of an instrument and the frame of whoever pointed it. Three questions, from the measurement lenses: what does this reading say about the instrument, what would it read with the change absent, and what does it stop measuring once it is a target. The finding is a tier mark — verified, inferred, assumed — on the number before it is acted on. diagnosing-before-fixing owns the case where the instrument never ran.
A codebase. "How it is done here" is the strongest frame in the list because it is usually right, which is what makes the cases where it is wrong expensive. The tell is not the pattern itself but its fourth special case. A hit is an observation about the pattern, routed to the record or to an ADR — never a refactor started from inside a sweep. steelmanning-alternatives owns what to do once the pattern is admitted to be a choice.
A project. The one object whose frame nobody wrote: it is the sum of what everyone assumes the project is for. The method for it is orbit.md, and its bound is stricter than any other object's, because the space around a whole project is unbounded and every pass can be made to produce something.
A conversation. Your previous turn is the fourth frame source in the main file, and a conversation is that source compounding. The tell is a conviction that has grown across several turns without new evidence entering — an approach adopted three responses ago that is now a premise. The sweep is one sentence: say what you are now assuming that you were not assuming at the start, and let the person correct it.
The run itself. A track and an envelope were chosen at the start of the run and have since become the water it swims in. orchestrating-work-end-to-end re-reads them at phase boundaries; this is the sweep that asks whether the process is the frame — a Diagnose run that should have been a Build, an express amplitude that has quietly become a campaign, a fix loop whose third iteration is the tell. A hit routes to the run record as an envelope change, which is a decision, and never to a silent downgrade.
A tool or instrument. Everything observed through a tool arrives shaped by what that tool can see. A search that returns nothing is a fact about the search. A truncated result is a fact about the pipe. The sweep's question is what this instrument structurally cannot show, and the hit is a tier mark or a second instrument — calibrating-confidence owns reading a hit list as the input to a check rather than as the check.
The library itself. A skill that fired and turned out to be silent about the case in front of you is a frame too — the library's. That observation does not route to any gate in this run; it routes to tending-tbaguette's queue, in two sentences, and the run continues.
orbit is the view of a whole project from outside it: one bounded pass that looks at the thing everyone is standing inside and says what it is, who it is for, what moves through it, what is changing under it, and what it has never had. It is the closest this skill comes to the "God's view" people ask for, so the first thing to say is what that phrase cannot mean. There is no seat that sees everything. The view from above is assembled from several partial seats, chosen on purpose, each of which sees one thing the others cannot — and a person reading an orbit should be able to tell which seat every sentence came from. An orbit that claims omniscience has stopped being sight and become a manifesto.
Bounds first, because this is where the skill is most dangerous
An orbit is the one pass in this skill with no natural stopping point at all: the space around a whole project is unbounded, and every pass through it can be made to produce something. So the bounds come before the method.
- About five hundred words, counted. Seven panes of one to three sentences each, plus the findings block. This bound used to say "one page", and two measured runs of it came back at three times that while honouring every numeric bound in this file exactly — a limit stated in a unit the writer never measures is a wish. Count the words before delivering. If a pane needs more, the finding is in the excess and it goes to the routing table, not into the pane.
- At most three findings, each with the observation that would tell whether it is real, each routed. Everything else is description, and description is allowed to be all an orbit produces — an orbit that finds nothing is a project that is what it says it is, and that is a result.
- At named moments only. Not a mode, not a background hum, not something run because the work inside the frame got boring.
- Never during Respond. An incident has a clock.
responding-to-incidentsowns the order, and a whole-project view while users are broken is the "let me understand this properly first" red flag at its largest. - Never a redesign. Anything found above the level of a rule — a goal, a paradigm, "this project should be a different project" — routes to the record and the closing offer.
managing-scope-driftstill wins, and it wins hardest here. - Presence governs. With someone present, an orbit's findings are three questions. With nobody present, they are three lines in the record and the run continues on the original frame, per
bounding-autonomous-work.
The moments
| Moment | Why then |
|---|---|
On arrival — after orienting-in-unfamiliar-code and recovering-agent-context have run, before phase 1 frames the first request | The only moment when nothing has been assumed yet. Orientation says what the code is; orbit says what the project is |
| Before a milestone decision — a launch, a rewrite, a dependency taken on, a boundary moved | A decision at this altitude is made from a frame nobody has looked at since arrival |
| When stuck three times at the same place | The third failure is one wrong model applied three times, and sometimes the model is of the project, not the bug |
| In a postmortem | An incident of this shape has often been here before under another name, and the orbit is where the name gets found |
| On request — "give me the big picture", "what is this project missing" | The one moment the page is the deliverable rather than an input |
Between moments, an orbit stays valid until one of its panes changes, and the tell that one has is usually a finding from an ordinary sweep that does not fit the last orbit's description of the project. Re-run the pane, not the orbit.
The seven panes
Each pane is one seat. Write which seat, then what it sees, in one to three sentences. A lens from lenses.md is named beside each pane because it is the instrument that pane is made with; use it or a better one, not all of them.
1 — Altitudes. The project in one sentence at each of five heights: the line (what a function here does), the module, the system, the product (what a person gets), the world (what it changes outside itself). The finding, when there is one, is the height at which the sentence could not be written — the project that has no product sentence, or no world sentence. Lens: altitude ladder.
2 — Purpose, as revealed by behaviour. What the project says it is for, in its own words, and what it actually does — to its users, its operators, its data, its dependents — with the charter ignored. Where the two diverge, say which one the code is defending. Lens: the purpose of a system is what it does.
3 — The chairs. Who touches this: who pays, who operates, who maintains, who integrates, who is affected without knowing it, who could veto it. Then the empty ones — the seat nobody was in when the last three decisions were made. Lens: the empty chairs; threat-modeling the moment an adversarial chair is occupied.
4 — Flows across the boundary. Draw the boundary — what counts as this project — then what crosses it in each direction: money, data, trust, attention, dependencies, obligations. The finding is a flow with no owner on this side. Lens: flows across the boundary; mapping-dependencies for the graphs.
5 — Time. What is changing under this project — a dependency, a platform, a team, a market — and at what pace. Which of its layers churn and which hold, and whether anything is being built at the pace of the wrong layer. What was true when its oldest decisions were made that is not true now. Lens: pace layers; revalidating-decisions for the premise that expired.
6 — Negative space. What this project has never had, what it has refused, what it lost and did not replace, and what nobody asks for because everyone knows the answer. The closed pull requests and the wontfix list are half of this pane; the other half is what the domain has that the tree does not. Lens: the seen and the unseen; the history in the tree.
7 — Forces. The incentives, deadlines, budgets, rules, and habits that will decide what happens to any proposal here regardless of its merits — and which of the constraints everyone designs around would lift if someone asked. Lens: show me the incentives; the constraint audit from the main file.
The output
An orbit record is a markdown block with the seven panes as headings, one to three sentences each, and a final section:
## Findings (at most three)
1. <observation> — would be confirmed or refuted by: <the check> — routed: gate | ledger | record | discard (<reason>)
Where it goes depends on the envelope. In a run with a record, it is a section of the record, per finishing-what-you-started's ledger file. In a project that keeps design notes, it goes where those live, dated, so the next orbit can be diffed against it — an orbit is most valuable the second time it is run, because the diff between two orbits is the project's actual direction, which no single one can show. Handed to a person, it is the page plus at most one question, through the harness's own question tool, per offering-the-next-move.
How it fails
| Symptom | Real cause |
|---|---|
| Seven panes of description and no finding, three orbits running | Possibly nothing — that is a legitimate result. Or the panes are being written from one seat, usually the author's; check which seat each sentence came from |
| The orbit proposes a different project | A finding above the level of a rule was routed to the gate instead of the record. Leverage points above "rule" are observations, not work |
| The orbit took an afternoon, or ran to three pages | No bound was set before starting, or the bound was in a unit nobody counted. Five hundred words, seven panes, three findings, at a named moment |
| The person got a page they did not ask for | The orbit was delivered instead of routed; only the "on request" moment makes the page the deliverable |
| Every orbit finds the same three things | They were never routed to a decision, so each pass rediscovers them. A finding declined is a ruling; record it and stop finding it |
| The orbit ran during an incident | The prohibition in the bounds. Stop, mitigate, orbit in the postmortem |
| Sentences about what people want | Motive is not observable. Rewrite as what they are measured on, have said, or are constrained by, or rewrite as a question |
This is a worked record rather than an illustration. The skill was drafted, then swept with its own method at campaign size — all seven directions, once — and the draft was changed by what came back. Every edit named below is in the shipped file. It is kept for three reasons: it is the only honest way to claim the method does anything, it demonstrates the routing table on findings that were not chosen to be convenient, and it shows what a real yield looks like so that a run producing seven findings knows to be suspicious of itself.
The frame the draft inherited: the request arrived as make a flagship skill about seeing out of the box. Three commitments came with it — that the deliverable is a document, that "flagship" means large, and that more sight is the goal. The first two survived the sweep. The third did not.
---
Behind — what is this request a solution to?
Found: every skill in the library points inward at executing the request correctly. Nothing in it can notice that the request was wrong. So the outcome behind make a skill about creativity is narrower and sharper than the words: give the library an organ for noticing.
That reading has a consequence the draft was getting wrong. If the goal is the library gains this capacity, then the scarce thing is not prose — it is reachability. A flagship skill nobody routes to is a well-written file, and the draft was spending its effort on the document while the thing that decides whether it ever runs is the description, the spine, and the inbound cross-references.
Routed: to the gate. Remaining effort was re-weighted toward the orchestrator seat in all seven tracks and the inbound edges from the six skills whose failure modes hand off here, rather than toward more sections.
Also found: the draft was over-defended. It stated the null rule three times and had more lines on restraint than on method — which is what a skill written by someone worried about being annoying looks like. One restatement cut.
---
Under — what does my own vocabulary assume?
Found, and this was the sweep's best result: the draft said the frame, singular, throughout — after listing four separate sources it came from. That is precisely the failure this direction names, committed in the text that names it. A request does not have one frame. It has several, stacked, from different places, and they can disagree with each other.
Which turned out to be worth more than the correction. A disagreement between two frames is the cheapest sight available anywhere, because the noticing has already happened without you: you did not step outside the frame, two frames stepped outside each other. The reflex on meeting one — pick the more authoritative source, move on — discards the most valuable signal in the run.
Routed: to the gate. New subsection, Two frames disagreeing is the cheapest sight there is. It is now the most useful paragraph in the file and nothing in the draft would have produced it.
---
Above — what class is this an instance of?
Found: the class is an agent inherits a frame and has no organ for noticing, and it is wider than the request. Frames also arrive from a subagent's returned conclusion, a tool's output, a search that came back empty, and a memory written by a session nobody remembers. Each of those arrives as a finding with its framing compiled out — the same shape as a request, and trusted more, because it looks like evidence.
Routed: to the gate. A fifth source added to Where the frame comes from.
Discarded, with the reason: the general case would be a skill called something like examining inherited frames, which is more accurate and worse. The name was chosen by the person asking, "clairvoyance" is what someone reaches for by hand at the moment they need it, and accuracy that costs invocability is a bad trade in a library whose measured problem is skills not firing.
---
Beside — what stands next to this once it exists?
Found: the discard pile and tending-tbaguette's candidate queue are the same object seen twice. An observation discarded here because it is not about this project is, by construction, a lesson that generalizes past this project.
Found: managing-scope-drift now has a sibling that could be misread as licensing exactly what it forbids. Resolving that tension in this file only is half a fix — the reader who arrives from the other direction never sees it.
Routed: both to the gate. A line in the routing table pointing discards at the candidate queue, and a reciprocal edge added to managing-scope-drift saying that noticing is not drifting and naming where noticing goes.
---
Ahead — what does this commit its readers to?
Found: the second-order cost of a skill about seeing more is that it becomes the most sophisticated available excuse for not finishing. I looked into it and the request was the wrong shape is indistinguishable from insight until someone asks where the deliverable is, and this skill would be the thing that licensed it.
Routed: to the gate, as a rule that outranks the routing table itself — a sweep is never a reason something did not ship, and a reframe raised and declined leaves the original ledger fully owed.
Also found and discarded: naming seven directions commits the file to that taxonomy. Checked and it is not a one-way door — an eighth would append. No action.
---
Against — what if the answer is the opposite?
Found: almost nothing, and the direction is recorded anyway because that is the point of recording it. Two inversions were tried honestly. Cut it to one page — rejected: without the tells the directions are a creativity listicle, and the tells are most of the length. Do not build it — rejected on the neighbour check done at design time, which found that steelmanning-alternatives and red-teaming-your-own-work both operate on a candidate that already exists, and neither has a move for the request itself being the wrong question.
Routed: discarded, with reasons. The only yield was a trim.
This is what six of every seven directions look like, and a sweep whose every direction produces a finding has stopped measuring and started performing.
---
Outside — who else has solved this?
Found: intelligence analysis has the load-bearing import, and it is the discipline of asking not which hypothesis is best supported but what observation would come out differently depending on which is true — on the grounds that evidence consistent with every hypothesis is evidence for none.
The draft had no equivalent, and its absence was the difference between a technique and a sensibility. Without it, competing readings of a request get argued rather than tested, which is how a sweep turns into an opinion nobody can check.
Routed: to the gate. It became the fifth move, and it is what closes the loop from seeing to knowing.
Discarded: aviation's instrument-versus-visual framing was already carrying the absence section and a second borrowing would have been decoration. TRIZ's contradiction was already in the draft. Medicine's differential diagnosis is the absence enumeration under another name.
---
The tally
Seven directions, six with a finding, one with a trim. Five findings routed back to the gate and changed the shipped file; four discarded with reasons recorded above; one — the reachability re-weighting — changed how the rest of the work was spent rather than changing the document.
The two that mattered most, frames disagreeing and the discriminating observation, arrived through the two directions most likely to be skipped: the one that examines your own vocabulary, and the one that looks like decoration.
---
# The second sweep — the enlargement, swept with itself
Twelve days after the record above, the skill was asked to grow: apply it to many more cases, broaden the horizons of thinking, produce ideas that would not otherwise come, a "God's view" on the request and the project, adapted for all possible cases. This is the record of sweeping that request with the method it was about to enlarge — the eight directions, the new moves, and one orbit pane — before a line of it was written. Same three reasons as before, plus a fourth: an enlargement is the moment a skill about seeing more is most likely to reintroduce the one commitment its first sweep rejected.
The frame the request arrived in: four commitments. That "massively" means bigger; that the skill file is the lever; that more cases means more triggers; and — for the second time — that more sight is the goal. The first survived in part, the second in full, the third was rewritten, and the fourth was rejected again, which is the finding that shaped everything else.
---
Restated without its own nouns
Make the agent notice, on purpose and at chosen moments, things about any object it is handed — not only a request — that the object's own framing hides; and make that noticing produce candidates it can check, without producing work. In that sentence "God's view" became many partial seats chosen on purpose, "ideas" became observations about the possibility space, and "all possible cases" became a table of objects with a default that always works. Nothing in the original wording contained the word object, and it is the noun the whole enlargement turned on.
Behind — what is this request a solution to?
Found: the outcome is not a larger file. It is sessions that produce reframes and ideas the person finds non-obvious, and that notice project-level problems rather than only request-level ones — without scope inflation. The first record found that the scarce thing was reachability, and it still is: a faculty that fires at the wrong moment, or never, is prose. So the enlargement spent its first effort on the routing surface — a description rewritten inside the cap rather than appended to, a selector in the first eight kilobytes because one harness truncates there, and reciprocal edges from the skills whose own moments now hand off here.
Routed: to the gate. In thirty seconds exists because of this direction.
Under — what does the vocabulary assume?
Found: "God's view" admits two readings. One is a seat that sees everything, which does not exist and which a skill claiming it would turn into a manifesto generator. The other is a view assembled from several partial seats, each chosen because it sees one thing the others cannot — which is buildable, boundable, and honest about which seat every sentence came from. The discriminating observation was cheap: does any discipline that does this for a living — intelligence analysis, systems engineering, safety — claim the first reading? None does. All of them assemble.
Also found: "more directions" assumes more directions produce broader thinking. The first record's own text says why that is wrong — a direction without a tell is a creativity listicle, and eight of them run every time is furniture. So every addition here arrived with its tell or it did not arrive.
Routed: both to the gate. The overview says what the phrase cannot mean; orbit is built from seven seats, and its bounds come before its method.
Above — what class is this an instance of?
Found: a single-moment tool becoming a general faculty, which this library has done twice before — orchestrating-work-end-to-end as a spine, and formidable as a default verb, a command table, and depth in reference files selected by the situation. The enlargement copied that shape rather than inventing one: verbs, a selector, a catalogue, and a per-object table.
Routed: to the gate — the structure. Discarded, with the reason: a ninth direction, within (the parts of the request, the one that carries the value). It is under applied to a decomposition, and scoping-before-building already owns splitting a request that is several projects wearing one description.
Beside — what already does most of this?
Found: the neighbours hold instruments a broader clairvoyance would want — steelmanning-alternatives' generator table, threat-modeling's actor tiers, mapping-dependencies' blast radius, revalidating-decisions' premise decay, orienting-in-unfamiliar-code's decisions that are not in the code. Restating them here would have been the duplication the library spends a test suite preventing. So the lens catalogue indexes them: each lens names the skill that owns it, and the lens is the reason to open that skill, not a substitute.
Also found: the description is shared routing budget with every other trigger the skill has, and it had thirty-eight characters left. A trigger appended past the cap displaces an older one — so the description was rewritten as a whole, and the verbs that need no description budget at all carry the rest of the new reach.
Routed: to the gate, both.
Ahead — what does this commit its readers to?
Found: cost. The file grew by half, and every invocation loads all of it. The mitigation is structural rather than a promise: the essentials sit in the first eight kilobytes, and everything a small sweep needs is in In thirty seconds. Also found: orbit is the most dangerous thing in the skill, because a whole project's surroundings are unbounded and a pass rewarded for yield will find something every time. The bounds — a word count, three findings, named moments, never during an incident, never a redesign — were written before the panes, and they are the part of that file a reader most needs.
Routed: to the gate. Bounds first, in orbit.md.
Against — what if the answer is the opposite?
Found: two real inversions. Split it — put the project-level view in a sibling skill and leave this one at request level. It buys a second routing budget and costs one method stated in two files; the person asking chose against it, and the ruling is recorded here so the next session does not re-derive it. Do not enlarge it — the first record's null was mostly right: the seven directions already covered most requests. What they did not cover was the object (a plan, a number, a project) and the field (the people), and those two are the enlargement. Everything else here is depth for those two.
Routed: the split to the record as a ruling; the "do nothing" as the filter that cut the enlargement to objects and the field.
Outside — who else has solved this?
Found: the intelligence community's structured analytic techniques — a catalogue of mechanical methods, each with a stated use and a stated failure, run one at a time when its tell fires — is the shape the lens catalogue took. Process safety's deviation guidewords became the seventh move, because they generate cases and ideas without consulting anyone's imagination. Systems thinking supplied the altitude ladder, the purpose-is-what-it-does pane, and the leverage-point bound. Pace layers supplied the time pane.
Discarded: de Bono's six hats — the seats table does the same job with chairs that name real readers rather than colours; and design thinking's divergence-convergence diamond, which is the routing table drawn as a shape.
Around — who has a stake in this skill?
Found: the person asking, who wants ideas; every reader of the library, who pays the file's cost on every invocation; two harness budgets that decide whether any of it is ever read — a listing budget that surfaces a fraction of trigger descriptions, and a body cap that truncates at eight kilobytes; and another session writing to the same tree that afternoon, which is why the change was landed through a throwaway worktree. The incentive acting on the skill itself is the one the first record named: a pass rewarded for finding things finds things. That is why the null rule is restated for orbit and imagine rather than assumed to carry over.
Routed: the budgets to the gate (the selector's position, the description's rewrite); the shared tree to the run's envelope; the incentive to the null section.
One orbit pane, as a check on the method
Purpose, as revealed by behaviour. The library says it is a set of project-agnostic judgment skills. What it does, measured on one harness that week, is surface a fraction of its own trigger descriptions and invoke a skill in under half of the sessions it is loaded into. The gap between charter and behaviour is reachability, which is the finding the first record reached by argument and this pane reaches by measurement. The check that would refute it is the same harness's listing after the descriptions are shortened, and it is recorded as a reopen condition rather than as work.
The tally
Eight directions and one pane; seven with a finding, one — above — with a structure and a discard. Six findings routed to the gate and changed the shipped files; one ruling (the split) routed to the record; three discards with reasons. The move that mattered most was the restatement: object was not in the request and is now the axis the enlargement runs on. And the commitment rejected twice — that more sight is the goal — is the reason the largest file in this change is a catalogue of tells rather than a catalogue of questions.
Measured, the same day
The enlargement was then tested blind against the version it replaced: four scenarios, two arms, two replicates each, prompts identical apart from which guidance was read, a rubric written before any result, and one blind judge per scenario. The enlarged version scored 104 to 89 and won six of eight pairs with one tie — and the whole margin was discipline: findings marked as inference, each carrying the observation that would test it, bounded, ranked by the cost of finding out, delivered as one decision. On the two criteria that measure insight — a reframe specific to the request, and a point a senior engineer would not have raised — every one of the sixteen answers scored full marks, in both arms. So the honest claim for this skill is not that it produces thoughts the model would not otherwise have had. It is that it makes those thoughts checkable and bounded, and hands them over as a choice. The enlargement also cost about a quarter more tokens per run, all of it reading.
The test found one defect in the enlargement itself: orbit's bound said "one page", and both measured runs came back at roughly three while honouring every numeric bound in the same file exactly. The bound is now a word count. A limit stated in a unit the writer never measures was, it turns out, a wish.
orchestrating-work-end-to-end routes every request to one of seven tracks. Clairvoyance has a seat in all seven, and the seat is genuinely different in each — a sweep run at the wrong moment in a track is not merely lower-value, it is one of the two ways this skill does damage. The other is skipping the routing table.
The shared rule: a sweep goes at the last moment before the frame becomes expensive to change, and never at a moment when something more urgent is running. Everything below is that rule applied — first for the sweep, then for the two larger passes, orbit and imagine, which have fewer seats and stricter ones.
---
Build
Seat: between phase 1 (frame) and phase 2 (design). After the ledger exists — you need the request's own words written down before you can ask whether they are the right words — and before the first approach is proposed.
Why there: it is the only moment in the whole track when a reframe is free. At phase 2 it costs a paragraph. At phase 4 it costs the plan. At phase 6 it costs the implementation, which is why a brilliant reframe at review is usually declined and should be.
Directions that pay: behind first — the ledger you just wrote is a list of mechanisms, and it is worth one question whether they are the outcomes. Then whichever tells fired.
A hit routes to: the gate, row one. The design has not been written yet, so reopening costs nothing but the paragraph you were about to write anyway. Say the reframe out loud, name what it displaces, and let the phase-2 approval decide it — a reframe adopted without the gate is the same defect as a design adopted without the gate.
Second seat: phase 8, restricted to ahead and beside, feeding offering-the-next-move. Run it before the run record is torn down: the record's rulings and surrendered lines are the sweep's best input, and once they are deleted the closing offer gets reconstructed from memory, which reliably yields the obvious next step and nothing that was actually learned.
---
Diagnose
Seat: when the hypothesis list empties, or when the third fix does not hold. Not at the start — a bug with an untried obvious cause does not need a sweep, it needs the reproduction diagnosing-before-fixing asks for.
Why there: three failed fixes is not three bad patches. It is one wrong model, applied three times, correctly. The patches were fine. The thing they were patching was chosen by a frame nobody examined.
Direction that pays: under, near-exclusively. The assumption is in the reproduction, not in the fix — most often that the failure is where it surfaced, that it is deterministic, that it is one bug rather than two, or that the component named in the report is the component at fault.
A hit routes to: back to reproduce, with the assumption named. A sweep that produces a new patch has done the wrong thing; it produces a new hypothesis, which then earns a reproduction like any other.
---
Respond
Seat: at stabilize, and again in the postmortem. Nowhere earlier.
This one is a prohibition, and it is the most important line in this file. An incident has a clock and an audience, responding-to-incidents inverts the usual order deliberately — mitigate before you diagnose — and a frame question asked while users are broken is precisely the "let me understand this properly first" red flag that skill names. Nothing a sweep can produce is worth a minute of ongoing harm. The mitigation may well be crude, wrong-headed, and the thing a sweep would have improved. Ship it anyway.
Directions that pay, once the harm has stopped: under on the cause, ahead on what the mitigation itself has now committed you to — a crude mitigation is a decision, and it is usually still in production a quarter later. And in the postmortem, above: an incident of this shape has often happened before under a different name, and that is the finding worth more than the timeline.
A hit routes to: the postmortem's action items, not into the live stabilization.
---
Investigate
Seat: after gathering, before the conclusion is written.
Why there: an investigation's characteristic failure is answering the question asked with great rigour when the question that mattered was one sideways from it. The evidence is all in hand at this point, which is exactly what makes the reframe checkable rather than speculative.
Directions that pay: behind — why is this being asked, and what decision hangs on the answer? An investigation commissioned to support a decision should be answering the decision's question. And outside, which is where an unfamiliar-feeling question turns out to have a standard name.
A hit routes to: the report, as a named second question with its own confidence marking, per calibrating-confidence. Both questions get answered: the one asked, fully, and the one you believe matters, marked as your inference. Substituting the second for the first is not a reframe, it is not answering.
---
Review
Seat: during coverage, before judgment. orchestrating-work-end-to-end already makes coverage of the diff this track's gate; this is what makes coverage mean more than "every changed file was opened".
Directions that pay: the absence pass from the main file, aimed at the diff. What is not in this change — the caller not updated, the state not handled, the test for the case the author did not think of, the migration for the data already in production. reviewing-code-deeply owns weighing absence alongside presence; this is the method for finding it.
A hit routes to: a finding, phrased as a question about a case rather than as an accusation. And the sweep applies to the review itself: a review that generated forty comments and no observation about the change's shape has inspected without seeing.
---
Author
Seat: twice. At frame the reader, and again before verify.
Why twice: the first is about who this is for, which determines everything downstream and is nearly free to change at that moment. The second catches the document that is now internally consistent and answers a question nobody has.
Directions that pay: beside — who else reads this, and what do they need that the primary reader does not? The on-call engineer, the person evaluating this in a year, the newcomer with none of the context. And ahead — what does this document make impossible to say later? A document that overstates a certainty commits its author's successors to defending it.
A hit routes to: the draft, directly, since the artifact is the deliverable and the frame is the work here rather than a precondition to it.
---
Change in place
Seat: before deciding-reversibility, not after.
Why there: reversibility is a question about a chosen operation. Asked first, it silently accepts that the operation is the right one. The sweep goes one step earlier, at the operation itself.
Direction that pays: against, first and hardest. The cheapest migration is the one that does not happen because the thing being migrated can be deleted; the cheapest upgrade is the one avoided by removing the dependency. Then behind on the thing itself, which is Chesterton's fence in this library's vocabulary: code-archaeology recovers why it exists, and a thing whose reason has expired is a deletion rather than a migration.
A hit routes to: a different operation entirely, which then re-enters this track at reversibility. That is a track staying put, not a downgrade.
---
Where orbit and imagine sit
The sweep has a seat in every track. The two larger passes do not — an orbit is a whole-project view and an imagine pass is deliberate divergence, and both are wrong at most moments of most tracks. Their seats:
| Track | orbit | imagine |
|---|---|---|
| Build | Before phase 1, on inherited or unfamiliar work only, after orientation has said what the code is | At phase 2, after the sweep and before an approach is chosen — its candidates are what steelmanning-alternatives then works on |
| Diagnose | When stuck three times at the same place and the model of the project may be the wrong one | When the hypothesis list empties: hypotheses are ideas, and the divergence lenses produce them in a shape the reproduction can test |
| Respond | In the postmortem only | Never — a crude mitigation now beats a creative one later |
| Investigate | When the commissioned question is about the project rather than a part of it | Before the conclusion, on the alternative explanations the evidence also fits |
| Review | No seat | No seat — the absence pass is the lens, and a review that generates ideas has stopped judging |
| Author | No seat | At frame the reader only: what else this document could be for, before a word of it is drafted |
| Change in place | Before a migration or upgrade of the whole rather than a part | Before deciding-reversibility, as candidates for the different operation that against is looking for |
Both route exactly as a sweep does. An orbit's findings and an imagine pass's candidates are observations; the moment one becomes work, managing-scope-drift has the table and it wins.
---
The envelope, dial by dial
The track says where the seat is. The envelope says what the sweep may do from it.
| Dial | Effect on the sweep |
|---|---|
presence=paired | Ask rather than infer. Behind is cheap here — one message beats a page of inference about intent, and it cannot be condescending if it is a question |
presence=async | Batch the sweep's one question with the other open ones; continue on the original frame meanwhile |
presence=autonomous / unattended | The sweep runs; a reframe may not be self-approved. Write the observation, the reading that lost, and a stop condition. Then build what was asked. An orbit's findings and an imagine pass's candidates go to the record only. See below |
amplitude=express | One direction, selected by tell. No tell fires, no sweep, and that is correct rather than skipped. No orbit and no imagine unless asked for by name |
amplitude=standard | Three: the tells that fired, plus against. An imagine pass, if its seat is open, stops at three candidates |
amplitude=campaign | All eight at the design gate; ahead and beside again at close. One orbit at arrival if the work is inherited; an imagine pass stops at five. The discard pile goes in the record |
radius=sandbox / repo | Ordinary sizing |
radius=live | Ahead is mandatory. The second-order consequence is the entire reason the radius is live, and the sweep is the only phase that looks at it |
crew=solo | Ordinary sizing |
crew=fanned / shared tree | Beside is mandatory, aimed at the other writer: what you are about to do that they cannot see, and what they are doing that you cannot |
any register | The sweep's output compresses; its routing does not. An empty sweep is one line. A finding routed to the record is written in full, because the record is read by someone who was not here |
The autonomous stop, stated once more
An unattended run may sweep, and may not act on what it finds by changing what is being built. Building something other than what was asked, with nobody present to agree, is not a bounded risk that confidence can retire — it is the definition of the failure bounding-autonomous-work exists to prevent, arrived at through a door marked insight.
The substitution is the standard one: the gate keeps its job and changes its mechanism. Write the observation into the record, name the reading that lost, add a stop condition that fires if the original frame turns out wrong in a way the run can detect, and continue on the original frame. The reframe is then waiting for whoever reads the report — which is the run finishing correctly, not the run being blocked.