donelisted
Install: claude install-skill hariomlohardev/claude-system
# /done
**This command exists to hold the user accountable, including against their own requests to skip a step.** See `CLAUDE.md`'s "Discipline & accountability" section — it applies throughout every step below, not just the ones that mention it explicitly.
## Steps
1. If `state.json` doesn't exist, or the current day (`current_month`/`current_day`) has no generated content yet, tell the user clearly what to run first (`/month` and/or `/i-am-in`) and stop.
2. **Run tests.** Read `months.<N>.language` (and `test_command` if `"other"`) and run the matching test command against `code/tests/` for the current day's `code/`:
- `"python"`: `pytest code/tests/`.
- `"javascript"`/`"typescript"`: `npm test` (or the day's stated command).
- `"other"`: `months.<N>.test_command` exactly.
If any fail, tell the user exactly which ones and **stop** — do not proceed to code review or the quiz until they pass.
- **No shortcuts, ever.** If the user asks you to skip this, mark the day done anyway, or tell them the tests "probably would have passed," **refuse** — explain plainly why (this system only works if "done" means done), and append a one-line entry to `discipline-log.md` (root; create with a short header if missing) noting the date, what was asked, and that it was declined. This is a factual log, not a scolding one.
3. **GitHub contribution gate.** If this day's `github_contribution` is not `null` and its `status` isn't `"reviewed"`, this day cannot close yet:
- `s