From Search-Only ChatGPT to Agent Instructions

Moving from AI search to agents is a change in sentence shape, not a new subscription. “What is this?” is search. “In these paths, stop when this check passes” is an agent instruction. This note only covers splitting a question into a work unit, writing a success check, and repairing a failed run.

No prices or model rankings. The same skeleton works in any chat or agent window.

How do you turn a question into a job?

One-line answer: Replace the topic noun with a goal verb, then pack target, bans, and artifact into one block.

Search sentences center a noun: “OAuth refresh tokens,” “pivot tables,” “this quarter’s results.” Agent sentences center a verb: “reproduce and minimal-patch,” “normalize columns and draft a pivot,” “table the number sources.”

Conversion checks:

  1. One-sentence goal: what is different when you stop. “The flaky login test passes locally and stays stable.”
  2. Scope: paths it may read or edit. Everything else is banned.
  3. Inputs: logs, issue id, repro command, files not to touch.
  4. Artifact: which of diff, table, slide outline, or PR draft it must show.
  5. Bans: repo-wide formatter, dependency upgrades, remote push, filling secrets from a guess.

Search: “Why doesn’t the React Query cache clear?”
Job: “Read only src/queries, reproduce leftover cache on logout, then propose one test and a minimal patch. Do not change the public API in src/auth.”

Do not mix research and edits in one window. Take candidates in a read-only pass; open a write session only after you agree. In an ADE you can pin that habit to disk by splitting research and patch across worktrees.

What counts as success?

One-line answer: An observable condition a person can call pass or fail without watching the window.

Weak: “cleaner,” “more professional,” “no bugs.”
Better: a command’s output, a file list, a number check, a checklist.

Examples:

  • Code: named tests pass; the diff stays inside agreed paths.
  • Docs: three headings, three bullets each, source URLs still in the body.
  • Data: row count matches the source; a formula column matches a hand calc on three sample rows.
  • Comms: recipient, purpose, and deadline sit on the first line; guessed numbers are marked [needs check].

Write the check inside the instruction. Discovering “that wasn’t what I wanted” after the fact is the search habit. Ask the agent to self-report against the check in a table; treat the table as a hint and the tests and diff as evidence.

A time box is also a check. “Reproduce only in 30 minutes. Patch is a proposal.” stops the slide into an unsolicited refactor.

How do you repair a failed run?

One-line answer: Keep the same goal, shrink scope or add inputs, and do not widen permission from a guess.

Failures usually come in three kinds:

  • Scope too wide: it opened half the repo. Cut to one package and re-investigate read-only.
  • Missing input: it cannot reproduce. Attach the log, command, or screenshot and say “do not guess; report a failed repro.”
  • Vague check: fluent prose, no verification. Rewrite the check as a command or table row.

Avoid:

  • Adding secrets or sudo to a session that just failed.
  • Replacing the goal with “just fix everything.”
  • Opening a new window with the same question without reading the output.

A short repair loop: (1) pick the one line in the last output that actually blocked, (2) rewrite that line as the goal, (3) when it passes, take the next item on the original check. If patches keep missing, leave only the repro with the agent and write the patch yourself.

The conversion has stuck when goal, scope, and check are written before the search sentence. Then you can move the same skeleton onto slides, sheets, and other artifacts.

Sources

  • Practice version of the S03 role split (search / agent / human) as instruction text.
  • If the runtime is Orca, worktree isolation: Worktrees