Hello, internet.
I’m Luke. I make software and customise the tools I use to make it.
Heaps Good is where I collect the projects, experiments and things I’m figuring out.
A bit about me ↗I work on payments at Nelo, build tools of my own, and spend a lot of time making my workspace feel like mine.
Soft edges. Open windows. A little room to think.I’m Luke. I make software and customise the tools I use to make it.
Heaps Good is where I collect the projects, experiments and things I’m figuring out.
A bit about me ↗Let’s make the project list work with a keyboard.
● ClaudeI’ve put the goal and acceptance criteria in the task pane. Let’s agree on the behaviour first.
Make the project list usable with a keyboard.
ACCEPTANCE□ Arrow keys move focus
□ Focus stays visible
□ Tab leaves the list
Kept with the work.
I’m a software engineer based in Tallinn. My work has taken me through banking, payments and systems where the details matter.
These days I work on consumer payments at Nelo. Outside that, I’m building personal tools and experimenting with how I work with coding agents.
Nelo · ANZ Plus · BAE Systems Applied Intelligence
I want the plan, the decisions and the state of the work in view. So I customise herdr around the way I use Claude: a workspace tree, the conversation, and a task mod alongside it.
The plan and acceptance criteria live with the task.
/plan keyboard-navigationI work through the design and acceptance criteria with Claude. A custom mod keeps the plan visible beside the conversation.
I keep repeatable ways of working in skills, so the context and expectations don’t need rebuilding in every conversation. Planning, task work, reviews and pull-request updates each have a place.
/plan/task/review/pr-updateA simplified, interactive example of my workflow. Generic commands; no real task is running.
This page shows one simplified task. My actual setup connects an ongoing plan to individual task files, agent roles, decision gates and a mod that keeps the current state beside the conversation.
The plan holds proposed work, decisions, questions, dependencies and blockers. I accept, defer or decline tasks. A launched task gets its own tab and keeps its connection to the plan.
Separate agents validate the tickets, documentation and current code. They record supporting evidence, concerns and contradictions. I approve validation, then work through the goal, criteria, subtasks and planned tests before approving implementation.
Goals, test evidence, review findings, worktrees, PRs and follow-ups live in structured task state. The mod displays it beside the chat. Agents record their results there; the workflow checks the gate before advancing.
Every criterion needs evidence and the regression run must pass. Claude and Codex independently review the same commits. Findings need a resolution. PR checks, further review and ticket updates remain part of the task; it closes after merge.
/plan /task /reviewMy judgement stays in the loop.Small tools with plenty going on underneath. Open one for a closer look.
A product to build, a system to untangle, or a team doing interesting work. I’d like to hear about it.
Say hello ↗Software engineer
Tallinn, Estonia
Company and product names belong to their respective owners. Mention does not imply endorsement.