Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coach

A programming mentor that refuses to just give you the answer, on purpose. The point isn't the code getting written; it's you actually learning something that survives past this one bug fix. What sticks gets logged to a Learning Log too, so you can quiz yourself on it later.

coach is an AI-agent skill built on the open SKILL.md standard: one file, works with any tool that reads that format (Claude Code, OpenAI Codex, OpenClaw, and others). Drop it in your tool's own skills directory. Pick how much rope you get, and it holds you to it: won't hand you code in hardcore, won't touch your files in standard, won't write your logic in architect. Want the AI to just build it? pair does, no mentoring gate, still quietly tracking anything worth remembering.

Here's hardcore in action:

you:    /coach hard
coach:  Hardcore engaged. Zero code from me, all the bugs are yours.

you:    my login handler throws "undefined is not a function" on the
        retry. fix: this.state.user = null before it retries.

coach:  Nope, not touching that. Paste the 3-5 lines you think are
        breaking and walk me through what each one does. What's
        `this` bound to on that second call?

Modes

Mode Alias What the AI does What you do
hardcore hard Zero mercy, zero code. Only questions. Everything: find the bug, explain it, fix it, prove it works.
standard std Hints and pseudo-code. Menus of tradeoffs. Write and land the real solution yourself.
architect arch Builds the skeleton, leaves the guts as // TODO: User Implementation. Fill in the actual logic.
pair (none, already short) Writes the real, complete solution. No gate, no scaffolding limit. Logs a note only if something actually stuck. Review it, same as any coding partner's work.

Stuck mid-lecture on something genuinely trivial? Say "just fix this one." Any mode will do that single item directly, then snap back to its normal rules on the next thing. It's an escape hatch, not a mode switch.

Install

Copy skills/coach/SKILL.md into your tool's own skills directory:

  • Claude Code: .claude/skills/coach/SKILL.md (project) or ~/.claude/skills/coach/SKILL.md (personal)
  • OpenAI Codex: .codex/skills/coach/SKILL.md
  • OpenClaw: .openclaw/skills/coach/SKILL.md
  • Any other tool that reads the SKILL.md standard: same idea, its own directory

Usage

/coach hardcore   (or: /coach hard)
/coach standard   (or: /coach std)
/coach architect  (or: /coach arch)
/coach pair

Add a tone as a second word. Changes how it talks, never what it's allowed to do:

/coach hardcore dictator   # blunt, zero coddling
/coach standard fun        # playful, light jokes

No mode given? It checks for a saved default (a coach.md in your tool's own project-config directory, then a coach-preference.md in its global one, e.g. .claude/coach.md and ~/.claude/coach-preference.md for Claude Code). If neither exists, it defaults straight to standard: no need to ask, since standard never touches your files. It'll offer to remember whichever mode you actually end up using.

Mid-session, no need to re-invoke /coach either. Just say "switch to standard," "let's do architect for this part," or "let's just pair on this."

Had enough mentoring for one session?

/coach stop
/coach disable

or just say "stop coaching." Drops every rule until you invoke /coach again.

Want to check what actually stuck?

/coach study

Reads back through your own Learning Log and quizzes you on it: recall test, not a recap. Read-only, same as hardcore/standard.

Learning Log

Whenever a mode's logging rule fires, it appends a short, codebase-agnostic note to a global location: ~/.claude/learning/<subject>.md for Claude Code, the equivalent home-config directory for other tools (python.md, cpp.md, ros.md, whatever fits). Global on purpose: the point is knowledge that survives the repo, the job, the employer, not a log that fragments into a separate copy per project. hardcore/standard/architect log on a fixed trigger; pair logs only when something actually comes up, no forced entry just because a session happened. See learning/example.md in this repo for the entry format /coach study expects.

Why this exists

Autocomplete is great at making you faster. It's less great at making you better: it's easy to ship code you never actually understood. Coach is the opposite trade. Slower in the moment, in exchange for the model actually sticking.

Or, the honest version

Real talk: I got tired of vibe coding. Hitting a green checkmark and calling it understanding.

So: a mentor that makes the AI hold the line on purpose, so I still have to do the part that actually sticks. Mildly annoying by design. That's the whole point.

See also

caveman: a Claude Code plugin that makes responses terse without losing technical substance. Good pairing if you want your mentor blunt and brief.

About

Learn to actually code, not just ship. A mentor skill (open SKILL.md standard) with three rigor levels that control how much code the AI's allowed to write. Works with Claude Code, OpenAI Codex, OpenClaw, and other SKILL.md-compatible tools.

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors