Daily workflow
The week is over. feedmill started as a friend’s weekend project — a self-hosted, terminal-first feed aggregator, a small Go CLI plus an HTTP sync server pulling dozens of RSS, Atom, and JSON feeds, deduping them, serving a reading queue you read from the terminal. It mostly worked and you didn’t trust it. Now it runs unattended on a cron and you do. Along the way you used OpenCode in ways a closed tool won’t let you: you swapped models per parsing task, you pushed a stuck feed parser into a shared session link for a second opinion, you drove the whole thing headless against its own server, and — once you’d switched LSP on in config — you leaned on gopls diagnostics the way your editor does. That arc is done. This last chapter isn’t a new capability — it’s what’s left once all of those stop being features you reach for and start being reflexes.
That’s the difference between knowing the primitives and being fast with them. By now you can write an AGENTS.md, invoke a skill, switch a model, drive a session. The habits in this chapter are the ones that only pay off after that fluency exists: the slash commands you wrote so your own repeated feedmill chores are one keystroke instead of a re-typed paragraph, the prompting and keyboard moves that get a clean first pass instead of three rounds of correction, and the honest retrospective that tells you where to point OpenCode next.
What this chapter installs
Section titled “What this chapter installs”Three habits, in order — the first two you build, the last one you take with you:
- Codify your repeated chores — the third feed-onboarding, the same “scan the parsers for the date bug pattern” sweep, the release-notes draft you write every Friday. Turn each into a custom slash command — a markdown file with frontmatter that can pin its own agent and model — so it’s
/onboard-feedinstead of a paragraph you keep rewriting — Codify your repeated chores - Prompting and keyboard reflexes — the small moves that get a clean first pass: describe the outcome not the steps, plan before you build, and let your hands find the leader key, the model switch, and the session jump without looking — Prompting and keyboard reflexes
- A look back across the week — an honest retrospective of the differentiator-first arc: which of OpenCode’s distinctive moves actually earned their place on
feedmill, which you’ll drop, and where to take the tool next — A look back across the week
Why do it as one continuous task
Section titled “Why do it as one continuous task”You could treat these as three loose tips and skip them — the project already works. Don’t. The reason to do them now, at the close of a real week, is that none of them mean anything in the abstract. A custom command is busywork until you’ve typed the same onboard-a-feed instructions for the fourth time and feel the friction; that’s the moment to codify it, not before, because only now do you know which chores actually repeat. A prompting reflex isn’t a tip you memorize — it’s the shape your requests already drifted toward over five days of correcting the agent, made deliberate. And the retrospective only has anything to say because there’s a finished arc behind it: you can’t honestly judge whether bring-your-own-model or the share link earned its keep until you’ve shipped real work on both.
So this chapter is where the week stops being a tutorial and becomes your workflow. The commands you write here are yours, shaped by your feedmill chores. The reflexes are yours, worn in by your own week of corrections. And the look back is the one that decides what OpenCode is for you after the course ends — which is the only question that was ever worth answering.