mohManual

Manual/Going further

Skills and workflow mode

Chapter 09 · 2 min read

A skill is a packaged recipe for a kind of job — "review this code", "plan this feature", "diagnose this bug". moh loads a skill only when it is needed, and each one appears as a command that starts with a slash.

Workflow mode: the bundled recipes

moh ships with a complete set of skills for planning and delivering work. Turn them on with:

/workflow on

They then appear in the / menu. With /workflow off they disappear and moh behaves exactly as before — the base behaviour never changes.

CommandUse it to…
/grillingBe questioned about an idea until it is clear, before any code exists.
/to-specTurn a clear idea into a written specification.
/to-ticketsBreak a specification into small, ordered tasks.
/implementBuild a task, with tests — for example /implement #457 for an issue.
/tddWork test first: a failing test, then the code that passes it.
/code-reviewGet a careful review of a change.
/diagnosing-bugsTrack a bug down methodically instead of guessing.
/report-bug, /triageWrite up a problem properly; sort incoming issues.
/prPrepare a pull request.
/retroReview what to improve (see Retro).

The set also includes /prototype, /research, /handoff, /wait-what, /to-questionnaire and more; the workflow is a port of the Matt Pocock agent workflow (plan, spec, tickets, implement, review). With workflow mode on, ctrl+f opens the frontier panel: what is ready to work on next.

Not sure which one? Ask

/ask-moh followed by a question in plain words points you to the right skill or command — or answers questions about moh itself from this manual, telling you which section it used. With no question, it shows an overview of which flow fits which situation.

› /ask-moh how do I move this task to my other laptop?
› /ask-moh I have a vague idea for a feature, where do I start?

Good to know

moh carries its own manual inside the program. Whenever you ask it about its own features, it reads that manual first and cites the page — and if no page covers the question, it says so instead of guessing.

Write your own skills

A skill is a short text file of instructions. Put yours in ~/.moh/skills/ (just for you) or in the project's .moh/skills/ (for everyone on the project; the project's version wins). It appears in the / menu like the bundled ones.

A skill can take arguments, filled in from the command you type:

› /releaser 1.2.3 draft=yes
# inside the skill: $1 is "1.2.3", ${draft:-no} is "yes"

If you leave an argument out, moh pre-fills it in your message so you can complete it before sending.

Written for moh 0.61. Inside moh, ctrl+h opens the built-in manual for your exact version.