Work in a session
You make decisions only in an agent session, in Claude Code or Codex. Agents create issues, open PRs, review, merge and close on your instruction, and record each of your decisions on the issue it concerns.
- You
let’s plan this study: does LoRA match full fine-tuning?
- Agent
Discusses the spec with you, then drafts study #10 with code #11 and run #12.
- You
publish
Gate 01 - Agent
Done:published #10 with #11 and #12; Decision on #10
Waiting for you:nothing
Next:#11 is ready
- You
do #11
- Agent
Done:PR #13 is merge-ready, Verdict: pass @ 3f9c2a1
Waiting for you:merge PR #13
Next:run #12
- You
merge
Gate 02 - Agent
Done:merged PR #13 with merge.py --human; #11 closed; Decision on #11
Waiting for you:nothing
Next:run #12
- You
take #10 to analysis
- Agent
Done:#12 closed with its results and spec check; study table on #10
Waiting for you:conclude #10 (gate 04)
Next:nothing until you decide
Done:Waiting for you:Next:An instruction is a target state
Section titled “An instruction is a target state”Each instruction names where the work should end. The agent keeps going until it reaches that target, a gate or a blocker, and only then stops.
| You say | The agent |
|---|---|
| “let’s plan this study”, “I want to study X” | Discusses it with you through the plan skill. It drafts the study, its spec and its sub-issues, and creates nothing until you say “publish”. |
| “publish” | Creates the parent and its sub-issues, wave by wave, and records the Decision. |
| “do #11” | Takes the code task to merge-ready: checks green and a Verdict: pass on the current head. If the task says Merge: agent, it goes on to merged. |
| “merge”, or “merge #13” | Squash-merges the current head with python .github/scripts/merge.py <PR> --human. |
| “take #10 to analysis” | Works until every sub-issue of study #10 is closed. |
| “continue” | Goes on to the next gate. |
| “what’s waiting for me?” | Reads GitHub and lists needs-decision issues and merge-ready PRs. |
An explicit instruction approves what it names, so the agent won’t ask again. “merge #13” is the approval to merge #13; “conclude #10: …” is the approval to close the study with that conclusion.
Every decision is recorded
Section titled “Every decision is recorded”The agent writes each of your decisions to the issue as a comment:
Decision: <choice> — <one-line reason>Publishing a study, merging a PR and continuing past a budget each leave a Decision: line. Discussion itself is not kept; only decisions and conclusions go to GitHub.
Every stop ends with three lines
Section titled “Every stop ends with three lines”When the agent stops, for any reason, it reports exactly three lines, with links:
Done: <what was completed>Waiting for you: <what the human must do, or nothing>Next: <what comes next>When you are not in the session
Section titled “When you are not in the session”If an agent hits a blocker while you are away, it adds the needs-decision label to the issue, posts a four-line blocker comment, and moves on to other ready work. You answer in a session later, and the agent removes the label once you have. See Gates and blockers.
Several sessions at once
Section titled “Several sessions at once”You can run several sessions in parallel, each on its own task. Claiming a task creates a linked branch with gh issue develop. Other sessions leave a claimed task alone unless an instruction names it, so two sessions never work on the same task.
Sessions keep nothing. Every state change is written to GitHub or git as it happens, so a session can end at any moment, and a new one picks up with “continue #11”.