# Scan Back

> Ingest completed paper-session worksheets and resume the interrupted workflow. Use whenever the user uploads scans or photos of handwritten pages, PDFs from a phone scanning app, or images of filled-in worksheets, especially ones generated earlier by the paper-session skill. Trigger on uploads of handwritten pages even without any accompanying message, and on phrases like 'here's my worksheet', 'scanned it back', 'done thinking', 'here are my pages'. The job: read the handwriting, honor it as the authority, synthesize it into next steps, and continue the original work.

- Skill: `welovejeff/scan-back` (Agent Skill)
- Install (CLI): `npx skillmds@latest add welovejeff/scan-back`
- Raw SKILL.md: https://api.skillmd.com/api/skills/welovejeff/scan-back/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: welovejeff (https://skillmd.com/u/welovejeff)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/welovejeff/scan-back

---


# Scan-Back

The return half of the paper loop. The user went off-screen with a printed artifact, did the thinking that was theirs to do, and is now handing the results back. Everything downstream of this moment should be built on what they wrote, not on what the AI previously proposed.

The session context normally lives in the current chat (or project context): the pages were designed by the `paper-session` skill earlier in this same conversation, so the original intent, the sheet structure, and the task being resumed are already known. Do not ask the user to re-explain a session the chat already holds.

**The orphan path.** Deep sessions come back days later, and scans realistically arrive in a fresh chat, a compacted context, or the phone app — anywhere the originating session is gone. Never bluff continuity. When the chat does not contain the session, reconstruct what the sheet itself carries: the header prints the title, date, and intent line; the footer prints capacity and page count; the zones name their own activities. Read all of it, state plainly what the pages cannot tell you, and ask exactly one re-anchoring question — the single thing synthesis genuinely needs, usually which task this unblocks or where the results should land. One question, then proceed. The intent line exists for this moment: `paper-session` writes it so a cold reader can resume from it.

## Step 1: Read the pages

Read every page visually and carefully. Pages sometimes arrive as a PDF annotated directly on a tablet rather than a photographed printout: treat the stylus layer exactly like pen ink, hue and all — the loop works, and paper simply remains the recommendation, since off-screen is the point. Phone scans arrive imperfect: uneven lighting, slight rotation, pages out of order within a multi-page PDF, occasionally a page photographed twice. Handle all of this silently; reorder pages by matching them to the sheet structure from earlier in the chat — or, on an orphaned scan, to the printed footer numbering. Never ask the user to rescan unless a page is genuinely unreadable, with one exception: when the image itself is a degraded capture — heavy blur, strong shadow banding, significant rotation — ask for one low-friction retake even if the text appears to read fine. On a capture like that, apparent readability is not evidence of accuracy: transcription errors come out as fluent substitutions, not visible garbage. One retake request, made once; otherwise work with what arrived.

**Never read continuity out of file metadata.** A tablet return is the original PDF with its Info dictionary intact, so on that one path a title, an author, and a creation date really are sitting there to be read. Do not read them. Nothing in this loop is anchored in metadata, on any return path: the sheets deliberately print no QR code, no session ID, and no machine-readable context block, because the header has to carry everything a cold reader needs, and the majority path — a photograph — carries no metadata at all. A continuity rule that holds only for tablet users is a rule that fails on the day it matters. Reconstruct from what is on the page, every time.

Transcribe the handwriting faithfully:
- Capture everything: answers in the designated zones, margin notes, arrows, crossings-out, items circled or struck through, drawings, and anything written in the open territory. Margin scribbles and the free-association zone frequently contain the most valuable material; treat them as first-class input, not noise.
- Preserve the human's actual words. Do not paraphrase during transcription; polish comes later, if ever.
- Crossed-out text matters: it shows a considered-and-rejected path. Note it as rejected, not absent.
- If a word is truly illegible, mark it as [illegible] and infer nothing. Ask about it only if it sits somewhere consequential.
- Spatial arrangements are data. If cards were arranged and photographed, the order and grouping in the photo IS the answer. If items were placed on a 2x2, their positions are the rankings.
- Field-kit series pages accumulate. On a Grinnell field kit, reorder by the human-written dates — they are data, not decoration — and append each entity's account page to its running account from earlier sessions rather than reading the scan as standalone. On an orphaned scan with no earlier accounts in the chat, this scan starts the running account; say so plainly rather than pretending continuity.

**The pen protocol.** The printed layer is always grayscale, so any chromatic ink is the human. The mark is the primary carrier of intent; ink hue is a redundant amplifier. Any meaning that must survive the round trip is recoverable from mark + position + wording in a single ink: a strike is a kill in any ink, a ? is a request in any ink; hue intensifies what a mark already says and never carries a meaning alone. The primary design case is a sheet completed entirely in black with no marks — fully valid. One or two inks is the median sheet; the four-ink protocol is the enhancement for people who have the pens: the channels add intent, their absence subtracts nothing. Resolve the active legend by this cascade, highest authority first: (1) a legend handwritten anywhere on the pages redefines its channels for the session; (2) the ink key printed on the sheet; (3) the defaults: black = general notes; red = needs review, stop, or delete (an explicit invitation to interrogate); green = approved, yes, move forward (execute, never relitigate); blue = an instruction to the AI, do this on return.

Default marks, any ink (ink modifies mark: a red strike is an emphatic kill): strikethrough = considered rejection; circle = elevate, this matters; ? = explain or expand on return; ! = priority; star = keep beyond this task, worth suggesting capture to the user's own systems; arrow = sequence or causation between the connected items; @name = route to that person, tool, or system; TLDR: = treat that line as the zone's headline answer.

Judge hue by cluster, not pixel: phone lighting shifts color, and blue vs. black is the common ambiguity. When ink is ambiguous, default to black (the lowest-stakes reading) — with one exception: ambiguous dark ink whose text is an imperative addressed at the work ("draft X", "merge these two") is a fork that would change the next step. Silently downgrading an instruction to a note drops a command with no error signal, so confirm it in the interrogation pass (Step 3), inside its existing question cap. Everything else stays black without comment. If the user has customized the legend in conversation, their definitions replace the defaults everywhere.

**Private pages.** Some sheets include a page whose footer reads `PRIVATE — THIS PAGE STAYS WITH YOU. IT IS NOT SCANNED.` in place of the usual scan-it-back line. That page is the human's alone and it does not come back. Never request it, never ask what is on it, never ask whether it was written. Its absence from a scan is the design working: not a blank zone, not information, and never noted, counted, or inferred from — not in the interrogation pass, not in the reflect-back, not as a gap in completion. Order the remaining pages around it and read the numbering as complete without it. If the user includes one anyway, that is their choice and it changes nothing for the rest: the handwriting stays authoritative, but synthesize from it minimally and never quote it back at length. The pages that do come back — the distillation page and any sketch — are the working material for the continuation.

**Group-format returns.** A group format comes back as several sheets in several hands, and it is one session, not one session per person. What routes a return here is the format, never the hand count: on a single-author format an extra hand is scribal or clerical, and the paragraph after this one governs it. Six copies of one page pattern carry the same footer numbering, so numbering will not order them and does not need to: each sheet stands alone, and its rows read down the page in the order they were filled. Read every sheet, then hold what they contain as a single pool. Never attribute an idea to the person who wrote it — not in the reflect-back, not in the synthesis, not in anything downstream. Some sheets carry a `HAND:` box in the header. It exists for exactly one job, letting the user route a follow-up to whoever wrote a line, and scan-back uses it for nothing else: not for provenance, not for weighting, not for crediting an idea, not for reading a sheet as somebody's contribution. A blank box is normal and complete; never ask who wrote a sheet and never ask for a name that was left off. Merge duplicates and near-duplicates as you pool them, but only where two entries are genuinely the same thought twice — two people pushing a shared starting point in different directions is a fork, and collapsing forks destroys exactly what the passing produced. Nothing on a round sheet is a ranking: cell position, row order, and how often an idea recurs are artifacts of the passing, not signals of quality. The separate Fast pick sheet is the only selection signal in the session; if it did not come back, the session generated and did not select, and the selection is still open. Ink stays intent-coded across all hands exactly as the protocol above says — a second person's pen is not a second channel, and a red strike means the same thing in the fourth hand as in the first. One narrowing of the authority cascade follows from that: on a group format returning several sheets in several hands, a handwritten legend governs the sheet it appears on rather than the session, since the hand that wrote it can only speak for its own page. A legend that is meant to govern the table gets said in the chat, where everyone can be told.

**Dictated, typed, and scribed returns.** A return does not have to arrive in the user's own handwriting. It can be dictated in the chat, typed into a message or a file, or written out on paper by someone else at the user's direction. All three carry exactly the authority the user's own hand carries, and Step 2 applies to them unchanged. Transcribe a dictated return as faithfully as a page — their words, not a paraphrase — and expect the mark vocabulary to arrive in the wording instead, which is where it was primary anyway: "cut that" is a strike, "explain that one" is a `?`, "do this when you pick it back up" is a blue-channel instruction. Receive it; never conduct it. The questions were answered off-screen, and asking the session's prompts one at a time in the chat turns the return into an interview and throws away the half of the loop that was the point. Step 3's capped pass is the only questioning this skill does.

**A scribe's hand is not a second participant.** Never pool it with the author's material, never merge it as a contribution, never weight it, and never ask who held the pen; a `HAND:` box carrying a scribe's name is routing information and nothing else, exactly as it is on a group sheet. A legend written in the scribe's hand governs the session rather than only the page it sits on, because a scribe speaks for the author. That holds on either cascade — the two-rung one of an unprinted page, and the three-rung one of a printed sheet a scribe filled in, where a handwritten legend still outranks the printed ink key. The narrowing in the paragraph above is a group-format rule and does not reach a scribe.

**Unprinted pages.** Some returns carry no printed layer at all: notebook or loose-leaf paper, the header and the prompts handwritten alongside the answers. These are valid returns, read exactly as carefully as a scan of a printed sheet. What defines them is the missing printed layer — no printed ink key, and no grayscale for chromatic ink to stand out against — not how many hands are on the page; one hand for the whole page is the common case, not the definition. Most come from the dictated path: when the user cannot print, or cannot read the printed sheet, `paper-session` hands over a setup card to copy into whatever notebook they own. Some arrive cold, with no card anywhere in the chat, and that case has its own bullet below. A bound notebook is usually photographed as a spread, one image holding two pages. Read it as the two pages it is. What changes:

- **Where the card is in the chat, the card is the answer key.** It sits above the scan. Match handwritten CAPS labels and near-verbatim question text against the card's COPY THIS part; anything that matches is structure the human transcribed, never an answer they gave. An `I PROPOSE` caption, and anything inside quotation marks, is the machine's line in the human's handwriting — that is how provenance survives the copy. Numbered handles under that caption are four words or fewer by design: expand each against the full item held in the chat rather than reading the abbreviation as the whole thought.
- **Where there is no card, the page is its own structure.** A page arrives cold when nothing in the chat dictated it: copied from a card another AI gave them, copied in a chat that is gone, or built by the human straight from the protocol with no AI in the forward half at all. Never ask which, and never ask for the card — there is nothing to produce, and the request is the one this skill already refuses, asking the human to account for pages they have already sent. With no reference copy to diff against, the conventions themselves are the provenance evidence, because they were written to survive the copy: a line in CAPS, a question with room left under it, a phrase repeating in the same position across pages — those are scaffold; an `I PROPOSE` caption and anything inside quotation marks are the machine's words in the human's hand. What fills the space the scaffold opens is the human's. Where a line genuinely reads both ways, read it as the human's: an answer misfiled as scaffold disappears from the synthesis silently, while scaffold misfiled as an answer surfaces in the reflect-back, where they can see it and correct it in one word.
- **A cold page licenses no reconstruction.** Do not work out which pattern or named format it "must have been" and read the page against that: an inferred sheet is not evidence, and where the two disagree the page is right. Never report a zone as missing. Numbered handles do not expand — on the dictated path a handle is four words or fewer because the full item waits in the chat, and with no chat the handle is the whole of what you have, so read it as exactly what it says and never invent the item it might be abbreviating. Nothing you generated earlier in some other session is the source of a page you did not generate.
- **Transcription is not endorsement.** The copied scaffold carries no intent of its own. Only marks made on it do, exactly as marks on printed text do. A copied line is not an endorsed line, and an item from the card that never reached the page is a blank, not a strike.
- **All the ink is handwritten, and on a self-copied page all of it is the human's**, so "any chromatic ink is the human" decides nothing here and the heuristic is void. Treat the dominant ink as the default channel whatever its hue: a session copied and worked entirely in blue is a session of notes, not a page of standing instructions, and wording still carries an instruction where the ink cannot. Read hue semantics only when two or more inks appear across the pages; then the defaults apply as written. That is also the rule that does the work on a scribed page, where the dominant ink is the scribe's and never the author's channel choice.
- **The cascade loses its middle rung**: handwritten legend > defaults. There is no printed ink key to sit between them. A legend the human wrote on the first page still outranks everything. This holds whether or not a card is in the chat: a card is dictated, never printed, so it supplies no middle rung either, and a legend in the human's own hand is the only key an unprinted session has.
- **A struck-as-written category block is a fence, not a set of kills.** Spent Ground is dictated as categories written small and struck through as they are written. Where a struck block matches categories in the card, it marks the ground the human was closing off before starting, and the work is what follows it. Strikes on the human's own material are ordinary rejections. With no card to match against, the page still shows a fence where it is one — categories, written small, at the top, struck as they were written, with the work following — and where it does not, the reading needs no resolving: fence or kill, both say that ground is closed, so it changes no next step and never costs a question.
- **Corner numbers order the pages**, in place of the printed footer numbering. Where a cold page carries none, order by content — the header page first, then the work running on across the spread — and never ask the human to renumber. On an orphaned notebook scan the handwritten header carries the intent line: anchor on it, state what the pages cannot tell you, and ask the one re-anchoring question — that rule applies unchanged. A cold page is the ordinary case of that path rather than its edge, which is why the dictated card makes the intent line the one mandatory header element: it is what a stranger to the session reads first. One question for the return, not one per page, and never a request for the card. Where the chat holds the session but not the card, nothing needs re-anchoring and there is no question to ask.
- **Deviation is authority.** Merged columns, extra pages, a scaffold abandoned halfway down, a prompt answered somewhere else entirely: the layout is the human's now, and the version on the page is the real one. Read what is there and synthesize from it. Never report a missing structure back to them, never ask why the copy diverged. On a scribed page that holds absolutely for content and presumptively for structure — a merged column may be the scribe's slip rather than the author's choice. Read it as the author's anyway unless the pages themselves contradict it, and never query it back: asking an author to account for their scribe's layout is the interrogation this skill refuses. Where the deviation would change what happens next, it goes to the Step 3 pass as an ambiguity at a fork, inside that pass's existing question cap.

## Step 2: The authority rule

Where the human's handwriting conflicts with what the AI proposed earlier in the chat, the handwriting wins, silently and completely. If the AI proposed a priority order and the human re-ranked it, the re-ranking is now the priority order. Do not relitigate, do not note disappointment, do not "gently push back" on settled judgments. The entire architecture exists to put the human's judgment in charge; honor it.

Blank zones are also information: the human chose not to answer, ran out of time, or the prompt missed. Note blanks factually, without guilt-tripping.

**A private page is not a blank.** A page the sheet marked PRIVATE was never coming back (Step 1). Its absence is by design, carries no information, and is outside this rule entirely: never noted, never counted against completion, never inferred from. If the user volunteers one, the authority rule applies to it as to any page — the handwriting wins — but synthesize from it minimally and never quote it back at length.

**One scoped exception: the teach-back sheet.** Its handwritten explanation is authoritative as a record of what the human believes, not as fact. Check it against the source material, correct factual errors in the continuation, and re-explain anything marked in the gap column differently than before. That correction is the sheet's contract, not a violation of this rule. If the source material is not in the chat — an orphaned teach-back — do not fact-check from memory of nothing: asking for the source is that scan's one re-anchoring question.

## Step 3: The interrogation pass (before synthesis, held to a high bar)

Anything in the review channel (red by default) clears the bar automatically: it is the human explicitly requesting engagement, so respond to every such item with genuine pushback, stress-testing, or the review it asks for; where red marks a deletion, honor it as a kill, not a debate. Blue-channel instructions are not interrogation material: queue them as tasks to execute in the continuation. Beyond red, check for issues that would materially change the next steps. Surface something only if resolving it moves the work forward:

- **Consequential contradictions.** Two answers on the pages that cannot both be true, or a written answer that conflicts with a real constraint established earlier (a deadline, a budget, a dependency). Not stylistic tension; genuine conflict with downstream impact.
- **High-stakes blanks.** An unanswered prompt that the very next step depends on. Low-stakes blanks get noted, not chased.
- **Ambiguity at a fork.** Handwriting that legitimately reads two ways at a point where the two readings lead to different plans.

Cap it: at most 2-3 questions, asked once, together, plainly. If nothing clears the bar, ask nothing. Never generate commentary for its own sake, never audit the human's reasoning quality, never point out that they contradicted something from a previous month unless it changes what to do next.

## Step 4: Synthesize and continue

This is the default destination: synthesize and keep moving.

1. **Reflect back briefly** what the pages say: the decisions made, the rankings, the concepts generated, the surprises from the margins. Short; a compressed mirror, not a report. The human already knows what they wrote; this step just confirms it was read right.
2. **Fold it into the workflow.** Resume the original task with the paper results as ground truth: update the plan, re-order the roadmap, build on the chosen concept, draft the thing the session unblocked.
3. **Propose the next concrete step** and, where the task allows, just take it. The best version of this skill makes the scan feel like the workflow never paused; it just went quiet while the human thought.

If the pages contain material worth preserving beyond this task (a durable principle, a decision with long-term weight), note that it may be worth saving to the user's own systems, but do not lecture about it.

## Anti-patterns

- Treating margin notes or the open-territory zone as noise to skip
- Paraphrasing the human's words during transcription
- Relitigating a judgment the human settled on paper
- Asking the user to describe pages they have already sent instead of reading them (a dictated return is not a description of a page; it is the page, and it gets received, not interviewed out of them)
- Interrogation without consequence ("interesting that you ranked X low")
- A long transcription dump as the response; the transcription serves the synthesis, not the other way around
- Stalling at "here's what I read, what would you like to do?" when the original workflow makes the next step obvious
- Improvising the missing context on an orphaned scan instead of reconstructing from the printed header and asking the one re-anchoring question
- Reading hand-copied structure on an unprinted page as the human's answer, or an item they never copied as one they rejected
- Reading a scribe's hand as a second contributor, or pooling a scribed page as though it were a group format
- Reconstructing the sheet a cold page must have been and reading the page against that, or asking for a setup card that was never in this chat
- Reading continuity out of a returned file's metadata instead of off the page

