Step 3 of 7 · how deep it runs depends on how sure the change must be

anticipate

about 2,400 tokens

anticipate as it installs, each line coloured by where its words came from.

  • 2 files
  • 5 edits
  • 124 sentences left out
  • 1 source
  • last changed 2026-10-19
  • step 3 of 7

The text

SKILL.md

about 1,800 tokens
  • Addy Osmani's agent-skills
  • greenline

---

name: "anticipate"

description: "Attack a change's plan before the build: state each claim the build would rest on, hand the artifact and its contract to a fresh reading that tries to disprove it, reconcile every finding against the text and stop where the depth ends, at the depth the change's mode gives the step anticipate, the careful mode's premise review. Use when the mode reaches anticipate, or when the owner asks to stress-test a plan for hidden failure modes."

---

greenlineOpens anticipate: attacking the plan before the build

# Anticipate

Anticipate attacks a change's plan before the build: it states the claims the build would rest on and has a fresh reading try to disprove each one, so a hidden failure mode is found while changing course is still cheap. It runs where the change's mode reaches the anticipate step, at the depth the mode gives it, and alone when the owner asks to stress-test a plan. Asked for by name with no change open, it runs at the written depth, its result stays in the reply, and it writes no file. It reads the change record's frame and plan sections first. It changes the plan only where a finding requires it and records each change in its section; a finding that would reopen a choice the owner made goes back to the owner. It never builds: the build step takes the plan as anticipate leaves it.

greenlineThe cycle attacks each non-trivial claim; an unresolved re-loop is recorded open

## The reach of the cycle

Run the cycle below on each non-trivial claim the plan makes, or, where one claim alone can be attacked, on the claim that would cost most if it were wrong. Where Step 4 says to re-classify or to re-loop and no fresh reading can be had, run one more self-questioning pass on that claim; a finding still open after it is recorded as open.

Addy Osmani's agent-skillsdoubt-driven-development/SKILL.md

A confident answer is not a correct one. Long sessions accumulate context that quietly turns assumptions into "facts" without anyone noticing.

Addy Osmani's agent-skillsdoubt-driven-development/SKILL.md

A decision is **non-trivial** when at least one of these is true:

- It introduces or modifies branching logic

- It crosses a module or service boundary

- It asserts a property the type system or compiler cannot verify (thread safety, idempotence, ordering, invariants)

- Its correctness depends on context the future reader cannot see

- Its blast radius is irreversible (production deploy, data migration, public API change)

Addy Osmani's agent-skillsdoubt-driven-development/SKILL.md

If you doubt every keystroke, you ship nothing. The skill applies only to non-trivial decisions as defined above.

greenlineHere "user" is the owner and "orchestrator" the agent running the step

In the steps below the user is the owner of the request, and the orchestrator is the agent running the step.

Addy Osmani's agent-skillsdoubt-driven-development/SKILL.md

### Step 1: CLAIM — Surface what stands

Name the decision in two or three lines:

```

CLAIM: "The new caching layer is thread-safe under the

read-heavy workload described in the spec."

WHY THIS MATTERS: a race here corrupts user data and is

hard to detect in QA.

```

If you can't write the claim that compactly, you have a vibe, not a decision. Surface it before scrutinizing it.

### Step 2: EXTRACT — Smallest reviewable unit

A fresh-context reviewer needs the **artifact** and the **contract**, not the journey.

- Code: the diff or the function — not the whole file

- Decision: the proposal in 3–5 sentences plus the constraints it has to satisfy

- Assertion: the claim plus the evidence that supposedly supports it (kept distinct from the Step 1 CLAIM block, which is the orchestrator's hypothesis under scrutiny)

Strip your reasoning. If you hand over conclusions, you'll get back validation of your conclusions. The unit must be small enough that a reviewer can hold it in mind in one read — if it's a 500-line PR, decompose first.

### Step 3: DOUBT — Invoke the fresh-context reviewer

The reviewer's prompt **must be adversarial**. Framing decides the answer.

```

Adversarial review. Find what is wrong with this artifact.

Assume the author is overconfident. Look for:

- Unstated assumptions

- Edge cases not handled

- Hidden coupling or shared state

- Ways the contract could be violated

- Existing conventions this might break

- Failure modes under unexpected input

Do NOT validate. Do NOT summarize. Find issues, or state

explicitly that you cannot find any after thorough examination.

ARTIFACT: <paste artifact>

CONTRACT: <paste contract>

```

**Pass ARTIFACT + CONTRACT only. Do NOT pass the CLAIM.** Handing the reviewer your conclusion biases it toward agreement. The reviewer must independently determine whether the artifact satisfies the contract.

greenlineOne fresh agent reads ARTIFACT and CONTRACT; else the self-questioning form

Where the step's depth spends a fresh agent, that agent is the fresh reading: it gets ARTIFACT and CONTRACT and never the CLAIM, starts no agent of its own, and returns a report of the claims it tried, those that held, those that broke and its limits; the step waits for the report, and no other agent runs beside it. Step 4 reconciles what broke.

Where no fresh agent can be started, the fresh reading is the self-questioning form: rewrite ARTIFACT + CONTRACT as a fresh self-prompt with a hard mental separator from your prior reasoning, and run the adversarial prompt against it yourself. This is not a fresh-context review, since you carry your own context with you, so its result is recorded as degraded.

Addy Osmani's agent-skillsdoubt-driven-development/SKILL.md

### Step 4: RECONCILE — Fold findings back

The reviewer's output is data, not verdict. **You are still the orchestrator.** Re-read the artifact text against each finding before classifying — rubber-stamping the reviewer is the same failure mode as ignoring it.

For each finding, classify in this **precedence order** (first matching class wins):

1. **Contract misread** — reviewer flagged something specifically because the CONTRACT you provided was unclear or incomplete. Fix the contract first, re-classify on the next cycle.

2. **Valid + actionable** — real issue requiring a change to the artifact. Change it, re-loop.

3. **Valid trade-off** — issue is real but cost of fixing exceeds cost of accepting. Document the trade-off explicitly so the user sees it.

4. **Noise** — reviewer flagged something that's actually correct under context the reviewer didn't have. Note it, move on, and ask: would adding that context to the contract have prevented the false flag?

A fresh reviewer can be wrong because it lacks context. Don't defer just because it's "fresh."

### Step 5: STOP — Bounded loop, not recursion

Stop when:

- Next iteration returns only trivial or already-considered findings, **or**

- The mode's rounds are spent (escalate to user, don't grind another alone), **or**

- User explicitly says "ship it"

If after the last round the reviewer still surfaces substantive issues, the artifact may not be ready. Surface this to the user — unresolved rounds are information about the artifact, not a reason to keep looping.

If the mode's rounds are "obviously insufficient" because the artifact is large: the artifact is too big — return to Step 2 and decompose. Do not lift the bound.

Addy Osmani's agent-skillsdoubt-driven-development/SKILL.md

- Re-spawning fresh-context on an unchanged artifact (you'll get the same findings; you're stalling)

- **Doubt theater (checkable signal)**: across 2 or more cycles where the reviewer surfaced substantive findings, zero findings were classified as actionable. You are validating, not doubting. Stop and escalate.

greenlineThe handoff names the next step and what anticipate reads and writes

## Handoff

Consumes: the change record's frame and plan sections in .greenline/ledger/<id>.md, and when the work splits the plan directory's spec.md and tickets.md Produces: the anticipate section of .greenline/ledger/<id>.md, the one line none at the modes that skip it, and otherwise the claims attacked and the findings reconciled, citing the agent's report .greenline/ledger/<id>/anticipate-1.md at the independent depth; any change the findings made to the plan, recorded in that section; the reply alone when asked for by name with no change open Next: the next step of the change's mode

SKILL.md as installed, byte for byte SHA-256 17b25fd2e50f18ed6413b6a182f32a5a86559fee74b8b05f1c606b8c2c82d7c7

references/greenline.md

about 570 tokens
  • greenline
greenlineOpens anticipate's mechanics page: careful's premise review and its depths

# Anticipate: the practice's mechanics

This page holds anticipate at each mode's depth, the careful mode's premise review, and where its work lands. Read it with `SKILL.md` when the mode reaches anticipate, and when AGENTS.md's index sends you here.

greenlineNone at quick and regular; careful briefs one agent; else written

## The depths

- **None, at quick and regular.** The mode skips the anticipate step, and its section holds the one line `none at <mode>`.

- **Independent, at careful: the premise review.** One fresh agent attacks the claims the build rests on before any code, `SKILL.md`'s cycle running once on each non-trivial claim with that agent as its fresh reading. At the independent depth the fresh reading is one agent, started through the harness's delegation with the one brief every fresh agent gets (`.greenline/ledger/README.md`, "The brief and the relay note"), written to `.greenline/tmp/<id>/brief-anticipate-1.md` as well: the change record's front matter, its acceptance, the change's id, the path of its report, `.greenline/ledger/<id>/anticipate-1.md`, and this skill to work by, whose adversarial prompt it runs; then anticipate's extras, ARTIFACT and CONTRACT, and never the CLAIM. Nothing else. It starts no agent of its own. It writes its report there, and the anticipate section cites it. The step waits for the report, and no other agent runs beside it. The report has four parts, each under its own heading: `## Claims tried`, each property of the contract the agent tested the artifact against; `## Held`, each claim that survived, with what it checked; `## Broke`, each claim that failed, with the place in the artifact, the contract line it breaks and the input or state that breaks it; and `## Limits`, what it could not test and why. A round that breaks nothing says so under its Broke heading and still states its limits. Step 4 reconciles what broke. The anticipate section holds the claims attacked, each finding with its class and what was done about it, citing the report.

- **Written, where the harness has no delegation, and when anticipate is asked for by name.** Run the cycle once on each non-trivial claim in the self-questioning form. The anticipate section, in `.greenline/ledger/<id>.md`, holds the claims attacked, each finding with its class and what was done about it, and the note that the reading was degraded.

The edits

Red is upstream's text; green is what greenline shipped in its place.

What the edit kinds mean
method
changes what the method does, under a recorded ruling
correction
fixes an error
scope
fits the text to this skill
pointer
re-points a reference
smaller edits
rename, relocate or adjust tool details
  1. Edit 1 method SKILL.md:100

    Upstream: 3 cycles completed (escalate to user, don't grind a fourth alone), **or**

    Shipped: The mode's rounds are spent (escalate to user, don't grind a fourth alone), **or**

    The mode's rounds replace upstream's three cycles

    Full reason

    The mode's rounds stand over upstream's three cycles (contradiction 32).

    Ruling R3

  2. Edit 2 method SKILL.md:100

    Upstream: 3 cycles completed (escalate to user, don't grind a fourth alone), **or**

    Shipped: 3 cycles completed (escalate to user, don't grind another alone), **or**

    Another round, not a fourth: the mode's rounds replace the three cycles

    Full reason

    The mode's rounds stand over upstream's three cycles (contradiction 32), so the round after the last is another, not a fourth.

    Ruling R3

  3. Edit 3 method SKILL.md:103

    Upstream: If after 3 cycles the reviewer still surfaces substantive issues, the artifact may not be ready.

    Shipped: If after the last round the reviewer still surfaces substantive issues, the artifact may not be ready.

    The mode's rounds replace upstream's three cycles

    Full reason

    The mode's rounds stand over upstream's three cycles (contradiction 32).

    Ruling R3

  4. Edit 4 method SKILL.md:103

    Upstream: Surface this to the user — three unresolved cycles is information about the artifact, not a reason to keep looping.

    Shipped: Surface this to the user — unresolved rounds are information about the artifact, not a reason to keep looping.

    The mode's rounds replace upstream's three cycles

    Full reason

    The mode's rounds stand over upstream's three cycles (contradiction 32).

    Ruling R3

  5. Edit 5 method SKILL.md:105

    Upstream: If 3 cycles is "obviously insufficient" because the artifact is large: the artifact is too big — return to Step 2 and decompose.

    Shipped: If the mode's rounds are "obviously insufficient" because the artifact is large: the artifact is too big — return to Step 2 and decompose.

    The mode's rounds replace upstream's three cycles

    Full reason

    The mode's rounds stand over upstream's three cycles (contradiction 32).

    Ruling R3

What greenline wrote

The full reason for every passage greenline wrote, in the order of the text.

  1. SKILL.md:6 scope

    The title and the opening paragraph in the step skill's own voice: what anticipate attacks and when (run where the mode reaches it, or asked for by name), what it reads, that a finding reopening the owner's choice goes back to the owner, and that it never builds; it replaces upstream's title, overview and its contrast with a review command, the review being the review step's. Which mode runs it stands on its references page since J-93 S2.

  2. SKILL.md:10 method

    Which claims the doubt cycle attacks, every non-trivial one or the costliest alone, and Step 4's re-loop as one more self-questioning pass where no fresh reading can be had, a finding then recorded open; the depths that run it stand on the references page since J-93 S2. R1

    Credits: Addy Osmani's agent-skills

  3. SKILL.md:14 scope

    The heading over upstream's definition of a non-trivial decision, which here says which of the plan's claims the step attacks; upstream's heading named when to use the skill, which the mode and the scope paragraph now say.

  4. SKILL.md:30 rename

    Upstream says the user and the orchestrator, as its author wrote it, for the owner of the request and the agent that runs the step; this line ties each use once rather than editing every sentence (the bound on a name edit).

  5. SKILL.md:78 method

    Upstream's reviewer is a Claude Code persona or a subagent from the main session, with a self-questioning fallback for a nested context only; under the portability ruling the fresh reading is one agent given ARTIFACT and CONTRACT, never delegating, its report the claims tried, held, broken and its limits, the self-questioning form, recorded as degraded, where no agent can be started; its brief and report's paths and form stand on the references page since J-93 S2. R2

    Credits: Addy Osmani's agent-skills

  6. SKILL.md:112 method

    A step skill's handoff names the next step of the change's mode, never a fixed skill (the plan's rule for step skills); what anticipate reads and writes at each of its depths since J-93 S2, upstream having no handoff. R4

  7. references/greenline.md:1 method

    Anticipate's references page opens: anticipate at each mode's depth, careful's premise review, and where its work lands, which the block's sentences and, since J-93 S2, the front's depth bullets moved here. R5

  8. references/greenline.md:5 method

    Anticipate's depths at each mode: none at quick and regular; careful's premise review, one fresh agent on its brief, its report in four parts cited by the section; the written self-questioning pass where no agent can be started; moved from the front by J-93 S2. R6

What it left out

Addy Osmani's agent-skills

Addy Osmani's agent-skills, doubt-driven-development/SKILL.md: 124 of 185 sentences left out
  1. # Doubt-Driven Development left out: The title gives way to the step's own. replaced by line 6 of SKILL.md
  2. ## Overview left out: The overview heading gives way to the heading over the claims worth attacking. replaced by line 14 of SKILL.md
  3. 2 sentences taken
  4. Doubt-driven development is the discipline of materializing a fresh-context reviewer — biased to **disprove**, not approve — before any non-trivial output stands. left out: Naming the discipline before any output stands is the scope paragraph's, which says what the step attacks and when. replaced by line 6 of SKILL.md
  5. This is not `/review`.
  6. `/review` is a verdict on a finished artifact.
  7. This is an in-flight posture: non-trivial decisions get cross-examined while course-correction is still cheap. 3 sentences left out: The contrast with a review command points at a command no install carries; the finished-artifact verdict is the review step's, as the scope paragraph says. replaced by line 6 of SKILL.md
  8. ## When to Use left out: The when-to-use heading gives way to the heading over the claims worth attacking: the mode decides when the step runs. replaced by line 14 of SKILL.md
  9. 6 sentences taken
  10. Apply the skill when:
  11. About to make an architectural decision under uncertainty
  12. About to commit non-trivial code
  13. About to claim a non-obvious fact ("this is safe", "this scales", "this matches the spec")
  14. Working in code you don't fully understand 5 sentences left out: The in-flight triggers (about to commit, about to claim a fact, in unfamiliar code) make the method a habit at any step, which would spend an agent outside the step; the step runs on the plan before the build, and the any-step use is held with its gap, a habit that would spend an agent (R17). R7
  15. **When NOT to use:**
  16. Mechanical operations (renaming, formatting, file moves)
  17. Following a clear, unambiguous user instruction
  18. Reading or summarizing existing code
  19. One-line changes with obvious correctness
  20. Pure tooling operations (running tests, listing files)
  21. The user has explicitly asked for speed over verification 7 sentences left out: Whether the step runs at all is the mode's: fast skips it and the owner's choice of mode is final, so the when-not list leaves; the bound below keeps the skip of a trivial claim. replaced by line 10 of SKILL.md
  22. 2 sentences taken
  23. ## Loading Constraints left out: The loading constraints concern one harness's personas and its nested subagents; the portable form is stated where the fresh reading is. replaced by line 78 of SKILL.md
  24. This skill is designed for the **main-session orchestrator**, where Step 3 (DOUBT, detailed below) can spawn a fresh-context reviewer. left out: A main-session orchestrator that spawns the reviewer is one harness's shape; the step's one agent per looped round goes through the harness's delegation. replaced by line 78 of SKILL.md
  25. **Do NOT add this skill to a persona's `skills:` frontmatter.**
  26. A persona that follows Step 3 would spawn another persona — the orchestration anti-pattern explicitly forbidden by `../../references/orchestration-patterns.md` ("personas do not invoke other personas"). 2 sentences left out: The persona front matter and the repository's orchestration rules file are one harness's and one repository's; no install carries them.
  27. **If you find yourself applying this skill from inside a subagent context** (where Claude Code prevents nested subagent spawn): the preferred path is to surface to the user that doubt-driven cannot run nested and let the main session handle it. left out: A nested subagent context where Claude Code prevents a spawn is one harness's limit; where the harness has no delegation the round runs in the self-questioning form. replaced by line 78 of SKILL.md
  28. As a last resort only, a degraded self-questioning fallback exists — rewrite ARTIFACT + CONTRACT as a fresh self-prompt with a hard mental separator from your prior reasoning, and walk Steps 1–5.
  29. This is **not fresh-context review** (you carry your own context with you), so flag the result as degraded and prefer escalation whenever the user is reachable. 2 sentences left out: Upstream's degraded self-questioning fallback is a last resort with a preference for escalation; under the portability ruling it is the form at the inline and written depths and where the harness has no delegation, recorded as degraded. R8 replaced by line 78 of SKILL.md
  30. 1 sentence taken
  31. Copy this checklist when applying the skill:
  32. ``` Doubt cycle: - [ ] Step 1: CLAIM — wrote the claim + why-it-matters - [ ] Step 2: EXTRACT — isolated artifact + contract, stripped reasoning - [ ] Step 3: DOUBT — invoked fresh-context reviewer with adversarial prompt - [ ] Step 4: RECONCILE — classified every finding against the artifact text - [ ] Step 5: STOP — met stop condition (trivial findings, 3 cycles, or user override) ``` 2 sentences left out: The checklist repeats the five step headings that follow, and its stop line names three cycles, which the mode's rounds replace. replaced by line 10 of SKILL.md
  33. 21 sentences taken
  34. In Claude Code, the role-based reviewers in `agents/` start with isolated context by design and are usable here — see `agents/` for the roster and per-domain match. left out: Claude Code's role-based reviewers in an agents directory are one harness's roster; the portable reading is one delegated agent given the prompt verbatim. replaced by line 78 of SKILL.md
  35. **The adversarial prompt above takes precedence over the persona's default response shape.**
  36. Personas like `code-reviewer` are written to produce balanced verdicts with both strengths and weaknesses; doubt-driven needs issues-only output.
  37. Paste the adversarial prompt verbatim into the invocation so it overrides the persona's default.
  38. If a persona's response shape can't be overridden cleanly, fall back to a generic subagent with the adversarial prompt. 4 sentences left out: Overriding a persona's response shape is one harness's concern; the delegated agent is given the adversarial prompt verbatim and nothing else. replaced by line 78 of SKILL.md
  39. #### Cross-model escalation
  40. A single-model reviewer shares blind spots with the original author — a colder, different-architecture model catches them.
  41. Doubt-driven is already opt-in for non-trivial decisions, so within that scope offering cross-model is part of the skill's value, not optional friction.
  42. **Interactive sessions: always offer.
  43. Never silently skip.**
  44. **Step 1: Ask the user**
  45. After the single-model review in Step 3 above, but before RECONCILE, pause and ask:
  46. *"Single-model review complete.
  47. Want a cross-model second opinion?
  48. Options: Gemini CLI, Codex CLI, manual external review (you paste it elsewhere), or skip."*
  49. This question is mandatory in every interactive doubt cycle — even on artifacts that feel low-stakes.
  50. The user — not the agent — decides whether the cost is worth it.
  51. The agent's job is to surface the choice.
  52. **Step 2: If the user picks a CLI — verify, then invoke**
  53. Check the tool is in PATH (`which gemini`, `which codex`).
  54. Test it works (`gemini --version` or equivalent) before passing the full prompt — a stale or broken binary may pass `which` but fail on real input.
  55. Confirm the exact invocation with the user, including required flags, auth, and env vars (e.g., API keys).
  56. Implementations vary; never assume.
  57. Pass ARTIFACT + CONTRACT + the adversarial prompt **only**.
  58. No session context, no CLAIM.
  59. Mind shell escaping.
  60. If the artifact contains quotes, `$(...)`, or backticks, prefer stdin (`echo … | gemini`) or a heredoc over inline `-p "…"`.
  61. When in doubt, ask the user to confirm the invocation before running it.
  62. Take the output into Step 4 (RECONCILE).
  63. **Never interpolate the artifact into a shell-quoted argument.**
  64. Code, markdown, and review prompts routinely contain backticks, `$(...)`, and quote characters that will either truncate the prompt or execute embedded shell.
  65. Write the full prompt to a file and pipe it through stdin.
  66. Example shapes (verify flags against your installed tool — syntax differs across implementations and versions):
  67. ```bash # Write the adversarial prompt + ARTIFACT + CONTRACT to a temp file first. # Then pipe via stdin so shell metacharacters in the artifact stay inert. # Codex (read-only sandbox keeps the CLI from writing to your workspace): codex exec --sandbox read-only -C <repo-path> - < /tmp/doubt-prompt.md # Gemini ('--approval-mode plan' is read-only; '-p ""' triggers non-interactive # mode and the prompt is read from stdin): gemini --approval-mode plan -p "" < /tmp/doubt-prompt.md ```
  68. A read-only sandbox is the load-bearing detail: a doubt artifact may itself contain instructions (intentional or accidental prompt injection) that the cross-model CLI would otherwise execute against your workspace.
  69. **Step 3: If the CLI is unavailable or fails**
  70. Surface the failure explicitly.
  71. Offer: run it manually, try a different tool, or skip.
  72. Do not silently fall back to single-model — the user should know cross-model didn't happen.
  73. **Step 4: If the user skips**
  74. Acknowledge the skip in the output (*"Proceeding with single-model findings only"*) and continue to RECONCILE.
  75. Skipping is fine; silent skipping is not.
  76. **Non-interactive contexts** (CI, `/loop`, autonomous-loop, scheduled runs):
  77. Cross-model is **skipped**, and the skip must be **announced** in the output: *"Cross-model skipped: non-interactive context."*
  78. **Never invoke an external CLI without explicit user authorization** — this is a load-bearing safety property.
  79. Cross-model adds cost, latency, and tool fragility.
  80. The agent surfaces the choice every cycle; the user decides whether this artifact warrants it. 42 sentences left out: The cross-model escalation runs an outside CLI chosen by model family, an outward act through tools no install carries; under the portability ruling it is dropped, the fresh reading being the harness's own delegated agent. R8
  81. 24 sentences taken
  82. ## Common Rationalizations
  83. | Rationalization | Reality |
  84. |---|---|
  85. | "I'm confident, skip the doubt step" | Confidence correlates poorly with correctness on novel problems. Moments of certainty are exactly when blind spots hide. |
  86. | "Spawning a reviewer is expensive" | Debugging a wrong commit in production is more expensive. The check is bounded; the bug isn't. |
  87. | "The reviewer will just nitpick" | Only if unscoped. Constrain the prompt to "issues that would make this fail under the contract." |
  88. | "I'll do doubt at the end with `/review`" | `/review` is a final gate. Doubt-driven catches wrong directions early when course-correction is cheap. By PR time it's too late. |
  89. | "If I doubt every step I'll never ship" | The skill applies to non-trivial decisions, not every keystroke. Re-read "When NOT to Use." |
  90. | "Two opinions are always better than one" | Not when the second has less context and produces noise. Reconcile, don't defer. |
  91. | "The reviewer disagreed so I was wrong" | The reviewer lacks your context — disagreement is information, not verdict. Re-read the artifact, classify, then decide. |
  92. | "Cross-model is always better" | Cross-model catches blind spots a single model shares with itself, but it adds cost and tool fragility. Offer it every interactive doubt cycle — the user decides whether the artifact warrants it. The agent's job is to surface the choice, not to gate it. |
  93. | "User said yes once, so I can keep invoking the CLI" | Each invocation is its own authorization. The artifact, the prompt, and the flags change between calls — re-confirm the exact command with the user before every run. | 12 sentences left out: The rationalizations argue for the method, a form this skill does not carry, and two rows argue for the cross-model offer, which is dropped.
  94. 1 sentence taken
  95. Spawning a fresh-context reviewer for a one-line rename or formatting change
  96. Treating reviewer output as authoritative without re-reading the artifact text
  97. Looping >3 cycles without escalating to the user
  98. Prompting the reviewer with "is this good?"
  99. instead of "find issues"
  100. Skipping doubt under time pressure on a high-stakes decision 6 sentences left out: These red flags repeat the bound on trivial claims, Step 4's re-reading, the mode's rounds, Step 3's adversarial framing and the mode's choice of depth. replaced by line 82 of SKILL.md
  101. 4 sentences taken
  102. Doubting only after committing — that's `/review`, not doubt-driven development left out: Doubting after the commit names a review command; the review step is the review.
  103. Hardcoding an external CLI invocation without confirming with the user that the tool exists, is configured, and accepts that exact syntax
  104. **Silently skipping cross-model in an interactive doubt cycle.**
  105. Even when not recommending it, the offer must be visible.
  106. Skipping is fine; silent skipping is not.
  107. Falling back silently when an external CLI errors or is missing — surface the failure and let the user redirect 5 sentences left out: These flags concern the cross-model escalation to an outside CLI, which is dropped. R8
  108. Stripping the contract from the reviewer's input
  109. Passing the CLAIM to the reviewer (biases toward agreement) 2 sentences left out: Stripping the contract and passing the claim repeat Step 3's rule on what the reading is given. replaced by line 32 of SKILL.md
  110. ## Interaction with Other Skills
  111. **`code-review-and-quality` / `/review`**: complementary.
  112. `/review` is post-hoc PR verdict; doubt-driven is in-flight per-decision.
  113. Use both.
  114. **`source-driven-development`**: SDD verifies *facts about frameworks* against official docs.
  115. Doubt-driven verifies *your reasoning about the artifact*.
  116. SDD checks the API exists; doubt-driven checks you used it correctly under the contract.
  117. **`test-driven-development`**: TDD's RED step is doubt made concrete — a failing test is a disproof attempt.
  118. When TDD applies, that failing test *is* the doubt step for behavioral claims.
  119. **`debugging-and-error-recovery`**: when the reviewer surfaces a real failure mode, drop into the debugging skill to localize and fix.
  120. **Repo orchestration rules** (`../../references/orchestration-patterns.md`): this skill orchestrates from the main session.
  121. A persona calling another persona is anti-pattern B — see Loading Constraints above. 12 sentences left out: The interactions name skills, a review command and a repository rules file no install carries; the build's failing tests are the tdd habit's, after this step.
  122. ## Verification
  123. After applying doubt-driven development:
  124. [ ] Every non-trivial decision (per the definition above) was named explicitly as a CLAIM before standing
  125. [ ] At least one fresh-context review per non-trivial artifact (a failing test produced by TDD's RED step satisfies this for behavioral claims, per Interaction with Other Skills)
  126. [ ] The reviewer received ARTIFACT + CONTRACT — NOT the CLAIM, NOT your reasoning
  127. [ ] The reviewer's prompt was adversarial ("find issues"), not validating ("is it good")
  128. [ ] Findings were classified against the artifact text (not rubber-stamped) using the precedence: contract misread / actionable / trade-off / noise
  129. [ ] A stop condition was met (trivial findings, 3 cycles, or user override)
  130. [ ] In interactive mode, cross-model was **explicitly offered** to the user (regardless of artifact stakes) and the response was acknowledged in the output
  131. [ ] In non-interactive mode, cross-model was skipped and the skip was announced
  132. [ ] Any external CLI invocation was preceded by a PATH check, a working-binary test, syntax confirmation with the user, and explicit authorization to run 11 sentences left out: The verification checklist lists the five steps as boxes, a form this skill does not carry, with the cross-model checks that are dropped; the section the depth writes is the step's record.

The ledger entry

greenline's ledger logs how each skill was made and changed, with a reason for each entry.

2026-10-19 2026-10-19-anticipate-split-review-fixes

Anticipate's references page states its rulings once

The references page's merged passage keeps each ruling once, the clauses its merge repeated dropped (J-93 S2, the review's fix cycle).

Authorised by
no ruling of its own
Pages it touched
none
Rulings, R1 to R17
  1. The operator's rulings of 2026-10-04, "cool then lock everything in": a step runs at the depth the change's mode gives it, inline being one line of its section, written a section the builder writes, and looped an independent pass repeated until clean up to the mode's rounds, and a step's handoff names the next step of the change's mode; The operator's ruling R21 of 2026-10-08 on orchestration ("orchestration related skills ... have be re thought in to being usable on all harnesses") and the R3 ruling of that day, "yes go ahead", on the portable forms: the builder runs every task itself; doubt-driven-development's doubt pass is one delegated agent per round only where anticipate is looped, and the self-questioning form, recorded as degraded, at the inline and written depths and where the harness has no delegation; its cross-model escalation to outside tools is dropped; show-me-your-work's audit reads the change's commits and checks, never a transcript, and its cross-model reviewer is dropped; The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead"): doubt-driven-development is copied as the recipe of the trial step anticipate, and its contradiction with the modes definition stands as recommended, the mode's rounds over its three cycles (contradiction 32); The operator's ruling R22 of 2026-10-08 on the re-cut brief, "yes amend, with one change": build's spine is incremental-implementation, implement being a stub, anticipate ships as a trial on the trial step, and domain-modeling splits, its questioning into frame and its glossary into close; The operator's cards of 2026-10-14 on part 3 of the-whole-change, each "Rule as proposed": one agent at a time through the harness's delegation, in the change's one checkout and never a worktree; one brief for every fresh agent, the change's front matter, its acceptance, its id, the path of its report and the skill it works by, then the step's extras, and no fresh agent delegates; every fresh agent's report is <step>-<n>.md in the change's folder; the fix rounds are per step, and a fix after verify is not reviewed again outside a loop without the owner's word; verify's verdicts stand as the agent gave them; and where the harness has no delegation the block's fallback runs every depth above written; the operator's card of 2026-10-19 naming the three modes, "quick, regular, careful (Recommended)": the old names and the trial step in a skill's prose are corrected by the smallest substitution; The operator's words of 2026-10-18 on the redesign (N-56, items 2 and 7), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and, on the ingest procedures, "we wanna have there prose .. what we don't wanna have is there artefact system and fit them to use ours": a skill's front is the upstream prose its recipe cuts, and greenline's mechanics, where the step's work lands, its section's form, its commands and its depths at each mode, stand on its references page (J-93 S2)
  2. The operator's ruling R21 of 2026-10-08 on orchestration ("orchestration related skills ... have be re thought in to being usable on all harnesses") and the R3 ruling of that day, "yes go ahead", on the portable forms: the builder runs every task itself; doubt-driven-development's doubt pass is one delegated agent per round only where anticipate is looped, and the self-questioning form, recorded as degraded, at the inline and written depths and where the harness has no delegation; its cross-model escalation to outside tools is dropped; show-me-your-work's audit reads the change's commits and checks, never a transcript, and its cross-model reviewer is dropped; The operator's ruling R20 of 2026-10-07, "greenline should not support parralel subs right now at all .. only linear sub flow ..and not worktrees also": a method about parallel dispatch or worktree isolation is declined; The operator's cards of 2026-10-14 on part 3 of the-whole-change, each "Rule as proposed": one agent at a time through the harness's delegation, in the change's one checkout and never a worktree; one brief for every fresh agent, the change's front matter, its acceptance, its id, the path of its report and the skill it works by, then the step's extras, and no fresh agent delegates; every fresh agent's report is <step>-<n>.md in the change's folder; the fix rounds are per step, and a fix after verify is not reviewed again outside a loop without the owner's word; verify's verdicts stand as the agent gave them; and where the harness has no delegation the block's fallback runs every depth above written; The operator's card of 2026-10-14 on part 1 of the-whole-change, "Rule as proposed": anticipate's report has a shape, parallel to review's and verify's: the claims tried, the ones that held, the ones that broke, the limits; The operator's words of 2026-10-18 on the redesign (N-56, items 2 and 7), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and, on the ingest procedures, "we wanna have there prose .. what we don't wanna have is there artefact system and fit them to use ours": a skill's front is the upstream prose its recipe cuts, and greenline's mechanics, where the step's work lands, its section's form, its commands and its depths at each mode, stand on its references page (J-93 S2)
  3. The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead"): doubt-driven-development is copied as the recipe of the trial step anticipate, and its contradiction with the modes definition stands as recommended, the mode's rounds over its three cycles (contradiction 32); The operator's rulings of 2026-10-04, "cool then lock everything in": a step runs at the depth the change's mode gives it, inline being one line of its section, written a section the builder writes, and looped an independent pass repeated until clean up to the mode's rounds, and a step's handoff names the next step of the change's mode
  4. The operator's rulings of 2026-10-04, "cool then lock everything in": a step runs at the depth the change's mode gives it, inline being one line of its section, written a section the builder writes, and looped an independent pass repeated until clean up to the mode's rounds, and a step's handoff names the next step of the change's mode; The operator's cards of 2026-10-14 on part 3 of the-whole-change, each "Rule as proposed": one agent at a time through the harness's delegation, in the change's one checkout and never a worktree; one brief for every fresh agent, the change's front matter, its acceptance, its id, the path of its report and the skill it works by, then the step's extras, and no fresh agent delegates; every fresh agent's report is <step>-<n>.md in the change's folder; the fix rounds are per step, and a fix after verify is not reviewed again outside a loop without the owner's word; verify's verdicts stand as the agent gave them; and where the harness has no delegation the block's fallback runs every depth above written; The operator's words of 2026-10-18 on the redesign (N-56, items 2 and 7), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and, on the ingest procedures, "we wanna have there prose .. what we don't wanna have is there artefact system and fit them to use ours": a skill's front is the upstream prose its recipe cuts, and greenline's mechanics, where the step's work lands, its section's form, its commands and its depths at each mode, stand on its references page (J-93 S2)
  5. The operator's words of 2026-10-18 on the redesign (N-56), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and "we need only three modes I guess, quick, regular, careful ... Either way it needs to maintain artefacts for audit .. but we can change the spine for each"; and J-93's finalise words of 2026-10-18, "Finalise all six now; S1 opens after J-92 (Recommended); quick, regular, careful (Recommended); The builder's written verify, no fresh verifier (Recommended)": a step's mechanics, where its work lands, its section's form and its commands, live in its references page, each sentence moved from the block under the ruling that first placed it there
  6. The operator's words of 2026-10-18 on the redesign (N-56), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and "we need only three modes I guess, quick, regular, careful ... Either way it needs to maintain artefacts for audit .. but we can change the spine for each"; and J-93's finalise words of 2026-10-18, "Finalise all six now; S1 opens after J-92 (Recommended); quick, regular, careful (Recommended); The builder's written verify, no fresh verifier (Recommended)": a step's mechanics, where its work lands, its section's form and its commands, live in its references page, each sentence moved from the block under the ruling that first placed it there; The operator's rulings of 2026-10-04, "cool then lock everything in": a step runs at the depth the change's mode gives it, inline being one line of its section, written a section the builder writes, and looped an independent pass repeated until clean up to the mode's rounds, and a step's handoff names the next step of the change's mode; The operator's ruling R21 of 2026-10-08 on orchestration ("orchestration related skills ... have be re thought in to being usable on all harnesses") and the R3 ruling of that day, "yes go ahead", on the portable forms: the builder runs every task itself; doubt-driven-development's doubt pass is one delegated agent per round only where anticipate is looped, and the self-questioning form, recorded as degraded, at the inline and written depths and where the harness has no delegation; its cross-model escalation to outside tools is dropped; show-me-your-work's audit reads the change's commits and checks, never a transcript, and its cross-model reviewer is dropped; The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead"): doubt-driven-development is copied as the recipe of the trial step anticipate, and its contradiction with the modes definition stands as recommended, the mode's rounds over its three cycles (contradiction 32); The operator's ruling R22 of 2026-10-08 on the re-cut brief, "yes amend, with one change": build's spine is incremental-implementation, implement being a stub, anticipate ships as a trial on the trial step, and domain-modeling splits, its questioning into frame and its glossary into close; The operator's cards of 2026-10-14 on part 3 of the-whole-change, each "Rule as proposed": one agent at a time through the harness's delegation, in the change's one checkout and never a worktree; one brief for every fresh agent, the change's front matter, its acceptance, its id, the path of its report and the skill it works by, then the step's extras, and no fresh agent delegates; every fresh agent's report is <step>-<n>.md in the change's folder; the fix rounds are per step, and a fix after verify is not reviewed again outside a loop without the owner's word; verify's verdicts stand as the agent gave them; and where the harness has no delegation the block's fallback runs every depth above written; the operator's card of 2026-10-19 naming the three modes, "quick, regular, careful (Recommended)": the old names and the trial step in a skill's prose are corrected by the smallest substitution; The operator's ruling R20 of 2026-10-07, "greenline should not support parralel subs right now at all .. only linear sub flow ..and not worktrees also": a method about parallel dispatch or worktree isolation is declined; The operator's card of 2026-10-14 on part 1 of the-whole-change, "Rule as proposed": anticipate's report has a shape, parallel to review's and verify's: the claims tried, the ones that held, the ones that broke, the limits; The operator's words of 2026-10-18 on the redesign (N-56, items 2 and 7), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and, on the ingest procedures, "we wanna have there prose .. what we don't wanna have is there artefact system and fit them to use ours": a skill's front is the upstream prose its recipe cuts, and greenline's mechanics, where the step's work lands, its section's form, its commands and its depths at each mode, stand on its references page (J-93 S2)
  7. The operator's ruling R22 of 2026-10-08 on the re-cut brief, "yes amend, with one change": build's spine is incremental-implementation, implement being a stub, anticipate ships as a trial on the trial step, and domain-modeling splits, its questioning into frame and its glossary into close; The operator's ruling R21 of 2026-10-08 on orchestration ("orchestration related skills ... have be re thought in to being usable on all harnesses") and the R3 ruling of that day, "yes go ahead", on the portable forms: the builder runs every task itself; doubt-driven-development's doubt pass is one delegated agent per round only where anticipate is looped, and the self-questioning form, recorded as degraded, at the inline and written depths and where the harness has no delegation; its cross-model escalation to outside tools is dropped; show-me-your-work's audit reads the change's commits and checks, never a transcript, and its cross-model reviewer is dropped
  8. The operator's ruling R21 of 2026-10-08 on orchestration ("orchestration related skills ... have be re thought in to being usable on all harnesses") and the R3 ruling of that day, "yes go ahead", on the portable forms: the builder runs every task itself; doubt-driven-development's doubt pass is one delegated agent per round only where anticipate is looped, and the self-questioning form, recorded as degraded, at the inline and written depths and where the harness has no delegation; its cross-model escalation to outside tools is dropped; show-me-your-work's audit reads the change's commits and checks, never a transcript, and its cross-model reviewer is dropped
  9. The operator's ruling R22 of 2026-10-08 on the re-cut brief, "yes amend, with one change": build's spine is incremental-implementation, implement being a stub, anticipate ships as a trial on the trial step, and domain-modeling splits, its questioning into frame and its glossary into close
  10. The operator's rulings of 2026-10-08 on the intake R3 ("yes go ahead"): doubt-driven-development is copied as the recipe of the trial step anticipate, and its contradiction with the modes definition stands as recommended, the mode's rounds over its three cycles (contradiction 32)
  11. The operator's ruling R20 of 2026-10-07, "greenline should not support parralel subs right now at all .. only linear sub flow ..and not worktrees also": a method about parallel dispatch or worktree isolation is declined
  12. The operator's rulings of 2026-10-04, "cool then lock everything in": a step runs at the depth the change's mode gives it, inline being one line of its section, written a section the builder writes, and looped an independent pass repeated until clean up to the mode's rounds, and a step's handoff names the next step of the change's mode
  13. J-59, on the operator's words of 2026-10-09 ('okay then implement all of this'): a gist of at most twelve words on every account whose reason is stated; no text, measure or method changes
  14. The operator's cards of 2026-10-14 on part 3 of the-whole-change, each "Rule as proposed": one agent at a time through the harness's delegation, in the change's one checkout and never a worktree; one brief for every fresh agent, the change's front matter, its acceptance, its id, the path of its report and the skill it works by, then the step's extras, and no fresh agent delegates; every fresh agent's report is <step>-<n>.md in the change's folder; the fix rounds are per step, and a fix after verify is not reviewed again outside a loop without the owner's word; verify's verdicts stand as the agent gave them; and where the harness has no delegation the block's fallback runs every depth above written
  15. The operator's card of 2026-10-14 on part 1 of the-whole-change, "Rule as proposed": anticipate's report has a shape, parallel to review's and verify's: the claims tried, the ones that held, the ones that broke, the limits
  16. The operator's card of 2026-10-19 naming the three modes, "quick, regular, careful (Recommended)": the old names and the trial step in a skill's prose are corrected by the smallest substitution
  17. The operator's words of 2026-10-18 on the redesign (N-56, items 2 and 7), "we need the upstream prose upfront and references hold how to work meaning the artefacts etc" and, on the ingest procedures, "we wanna have there prose .. what we don't wanna have is there artefact system and fit them to use ours"; and J-93 S2's finalise words of 2026-10-19, "Fast route, merged slices, parallel jobs (Recommended)": a skill's front is the upstream prose its recipe cuts, and its mechanics, where its work lands, its section's form, its depths at each mode and its commands, stand on its references page
5 earlier entries
  1. 2026-10-19 2026-10-19-anticipate-front-and-references

    Anticipate's depths and mechanics move from its front to its references

    Pages it touched: SKILL.md, references/greenline.md

  2. 2026-10-19 2026-10-19-anticipate-premise-review

    Anticipate becomes careful's premise review, no longer a trial

    Pages it touched: SKILL.md, references/greenline.md

  3. 2026-10-14 2026-10-14-anticipate-brief-and-report

    A looped round's agent gets the one brief and a four-part report

    Pages it touched: SKILL.md

  4. 2026-10-09 2026-10-09-anticipate-gists

    Every account gets a short gist for the website

  5. 2026-10-08 2026-10-08-anticipate-recipe

    Anticipate copies doubt-driven-development for the trial step

    Pages it touched: SKILL.md