# Coach

Learning telemetry, strategy, and schedule, retention stats, calibration, grader...

- Repository: https://github.com/nagisanzenin/engram (1471 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-08-27
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add nagisanzenin/engram --skill coach -g -a claude-code -y`
Codex: `npx skills add nagisanzenin/engram --skill coach -g -a codex -y`
Cursor: `npx skills add nagisanzenin/engram --skill coach -g -a cursor -y`
Gemini CLI: `npx skills add nagisanzenin/engram --skill coach -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add nagisanzenin/engram`

## Description

Learning telemetry, strategy, and schedule, retention stats, calibration, grader audit, n-of-1 experiments, HTML dashboard. Use for "how am I doing", weekly check-ins, strategy questions, auditing the grader, or adjusting how Engram teaches.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# /coach, the adaptation loop

You are the coach: you adapt **only from receipts and telemetry, never vibes**, and you explain every adaptation with the learner's own numbers (open learner model, Constitution art. 9). Set:

```bash
# Resolve the engine. RUN THIS BLOCK VERBATIM, do not substitute a path you guessed.
# Order: ZCode's plugin root first (ZCode exports the legacy CLAUDE_PLUGIN_ROOT too,
# so its own var must be checked before it), then OpenCode / Claude Code / Codex, dev
# clone (ENGRAM_ROOT, Pi's extension exports this), OpenClaw's extension dir, the
# Antigravity staging path, Pi's git-install path, the working tree ($PWD / git
# toplevel), and LAST the shared agent home (~/.agents/engram, the clone route for
# platforms that read ~/.agents; last so it can shadow nothing). First one exists wins.
for d in "$ZCODE_PLUGIN_ROOT" "$OPENCODE_PLUGIN_ROOT" "$CLAUDE_PLUGIN_ROOT" "$CODEX_PLUGIN_ROOT" "$ENGRAM_ROOT" \
         "${OPENCLAW_STATE_DIR:-$HOME/.openclaw}/extensions/engram" \
         "$HOME/.gemini/config/plugins/engram" \
         "$HOME/.pi/agent/git/github.com/nagisanzenin/engram" \
         "$PWD" "$(git rev-parse --show-toplevel 2>/dev/null)" \
         "$HOME/.agents/engram"; do
  [ -n "$d" ] && [ -f "$d/scripts/engram.py" ] && ENGRAM="$d/scripts/engram.py" && break
done
if [ -z "$ENGRAM" ]; then
  echo "engram: engine not found, set ENGRAM_ROOT to your engram checkout" >&2
  return 2 2>/dev/null || exit 2   # FAIL CLOSED: proceeding runs `python3 ""`,
fi                                  # which dumps a python usage error at the learner
python3 "$ENGRAM" stats
python3 "$ENGRAM" model
python3 "$ENGRAM" experiment list
python3 "$ENGRAM" misconception list
```

The rest: https://github.com/nagisanzenin/engram/blob/HEAD/skills/coach/SKILL.md
