A stopping point for each Claude Code session
A Claude Code session is easier to review when it has one job and a visible stopping point. The useful limit is not a fixed number of minutes or messages. It is the point where the conversation stops serving the change you intended to make.
Use the following criteria to decide whether to continue, compact the conversation, or begin a new session. Treat the thresholds as working rules, not product limits.
§ Start only when the task has a finish line
Keep the task in one session if you can describe its outcome and verification in two sentences. For example: fix the parser so an empty field returns a validation error, then run the parser tests. That gives Claude Code a bounded investigation and gives you a clear acceptance check.
If the request includes several independent outcomes, split it before starting. A parser fix, a dependency upgrade, and a settings redesign may belong to the same project, but they do not need the same conversation.
- Ready: one observable behavior, a likely area of the repository, and a test or manual check.
- Needs a discovery session: the failure is reproducible, but its cause or location is unknown.
- Needs planning first: success depends on unresolved product or architecture decisions.
§ Separate discovery when uncertainty dominates
Use a discovery-only session when you cannot yet name a responsible component or an acceptance check. Ask for relevant files, the current behavior, plausible causes, and the smallest useful next experiment. Explicitly say whether edits are allowed.
End discovery with a short note in the repository or your task tracker. Record confirmed findings separately from hypotheses. The implementation session should inherit evidence, not every abandoned theory from the investigation.
§ Continue while the same evidence still matters
Stay in the current session when the next step directly advances the original acceptance check. Reading a neighboring function, adding a regression test, and repairing the implementation usually belong together. Starting over at every small obstacle discards useful working context and can force repeated exploration.
Pause if you notice repeated explanations, unrelated file exploration, or changes justified by earlier assumptions that are no longer true. Ask for a brief status report: what changed, what failed, and what remains. If that report describes a different task, close the session.
§ Compact for continuity; start fresh for a boundary
Use /compact when the objective is unchanged but the conversation has accumulated bulky logs or superseded attempts. Compaction preserves a summary rather than every detail. Check that the next step still has the exact error, constraint, or test result it needs.
Use /clear or open a fresh session when the objective changes, the current change is accepted, or the conversation contains conflicting instructions. Before clearing, save a handoff outside the conversation:
- The current objective and explicit non-goals.
- Files changed and the reason for each change.
- Checks run, their results, and any remaining failure.
- The next action and any decision requiring your approval.
A handoff should help the next session inspect the actual repository state. It should not replace reading the diff or rerunning relevant checks.
§ Stop at verification, not at conversational exhaustion
Close the session when the agreed behavior is verified and the diff contains no unexplained changes. Review the patch, run the relevant checks, and record anything not tested. Put optional cleanup into a separate task instead of adding it to a completed change.
When using Claude Code through Vana API, this discipline also makes usage easier to interpret. Vana API supports the Anthropic Messages protocol and bills per real token with no monthly fee. Shorter sessions do not automatically mean lower costs: repeated repository exploration can offset the savings. Compare usage for a completed task, not just a single conversation.
If you want to try this workflow through that endpoint, create a Vana API account. Start with one bounded change, keep a durable handoff, and let verified work—not the age of the chat—determine when to stop.