

0 / 2 embers
0 / 3000 xp
click for more info
Complete a lesson to start your streak
click for more info
Difficulty: 4
click for more info
Not enough gems
Cost: 6 gems
1: Prompting
incomplete
2: Plan Agent
incomplete
3: Canceling
incomplete
4: Steering
incomplete
5: The Prompt Box
incomplete
6: Queueing
incomplete
7: Prompt Examples
incomplete
8: Speech to Text
incomplete
Back
ctrl+,
Next
ctrl+.
This lesson's interactive features are locked, please to keep using them
OpenCode ships with two built-in primary agents:
edit, write, and patch tool calls from modifying project files – except for dedicated plan files.I've almost stopped using Plan agents entirely. It's a personal preference, but I just talk to the agent in Build mode, iterate on actual code changes, and eventually arrive at a final solution. The model is smart enough to know we're planning and not actually make changes yet.
If I do want an intermediary step where I create a checklist, I just stay in Build mode and have it write a Markdown file for me.
Okay, so whether you actually switch to "plan" or just plan-in-build mode is up to you, but there are still some best practices to consider:
Making your agent ask you questions is one of the best "productivity hacks", particularly when you're feeling blocked on a task. In my experience, agents are much better at helping you brainstorm and clarify your ideas, than they are at producing creative ideas on their own.
Plan and add support for the loadbearing keyword, SlopLang's immutable variable declaration (like const in other languages). For example:
loadbearing LIMIT = 100✨
slop score = 10✨
— allowed
score = score + 1✨
— not allowed
LIMIT = 200✨
slop can be reassigned, LIMIT can't, so that last line should be a runtime error: cannot assign to loadbearing 'LIMIT'.
slopcannot assign to loadbearing '<name>'docs/spec.mdTell OpenCode to run and submit the CLI tests from the project root.