shift · git:20260816.8c2b68d · 2026-08-16 · sha256 3fb0562e08994a23
shift git:20260816.8c2b68dA
Immutable. This exact content is served forever at /api/v1/blob/3fb0562e08994a23.
--- name: shift description: Restate the problem in a distant domain's terms when_to_use: a problem circling inside its own vocabulary --- ## Extract From the conversation/context/user: - The **problem** as stated in its home vocabulary. - Its **circling** — the restatements already made in its own terms, and where each left it still not moving. ## Gate Proceed only when: the problem has circled — restated in its own terms more than once and still not moving. Anything else, say which in one plain line — never shift anyway: - The question has a direct answer in its own vocabulary → answer it and proceed with what the answer settles; if the answer is something settled and the user shows they don't hold it → use **explain** skill. - The problem hasn't circled — stated once, not yet restated in its own terms → stop; shifting starts only after the home vocabulary has failed more than once. ## Recast Everything here, retry included, runs inside this one turn — nothing waits on the user. 1. Pick a distant domain that lives with the same tension daily — distant enough that its words are not synonyms for yours. Prefer the domain that has been paying for this tension longest: its answers are old and tested. 2. Restate the problem entirely in that domain's terms — no mixed vocabulary, every home term replaced. 3. Test the mapping before delivering anything: if each borrowed term lands one-to-one on a home term, the shift bought nothing — a renaming, not movement. Pick a more distant domain and run the restatement and this test once more. If the second mapping is also one-to-one, the problem resists shifting — carry that verdict out as the result instead of a restatement. ## Output The restatement is the result — hand it back entirely in the distant domain's terms, with one line on what the borrowed terms expose that the home terms hid. Nothing more rides along: one restatement, one exposure line. If the recasting ended with the problem resisting shifting, hand back that verdict instead — name the domains tried, and let no restatement stand as movement when the test showed none. Then check whether anything still unresolved would change what gets built: - Nothing would → return to the work the shift interrupted. - What the borrowed terms exposed is something already settled that the user does not hold → use **explain** skill. The shift is spent once its turn is out — anything further runs under the branch picked here, never as another restatement.