cd /news/developer-tools/building-with-mini-part-8-9-health-c… · home topics developer-tools article
[ARTICLE · art-78452] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Building with mini, Part 8/9: Health commands — changelog and doctor

A developer building the 'mini' project introduced two new read-only, zero-token commands: 'changelog' and 'doctor'. The 'changelog' command displays the CHANGELOG.md file without opening it, supporting flags for unreleased, specific version, or full content. The 'doctor' command checks project health by validating state schema, phase consistency, and installed commands, outputting a checklist of issues and warnings.

read4 min views3 publishedJul 29, 2026

In Part 7 we had the instrument panel: where am I, one step back, which model. Two commands remain, the ones that watch the project's health — not the phase state, but whether the whole thing holds together. changelog

(what changed, and when, for users) and doctor

(whether the mini setup is in order). Both read-only, both Claude-free.

changelog

— what has piled up Remember Part 4? Every done

proposes an entry for CHANGELOG.md

. After four phases, a fair amount has piled up there — and changelog

shows it to you without opening the file:

mini changelog
[Unreleased]

### Added

- Tokenizer for arithmetic expressions: numbers (integer and decimal),
  operators `+ - * /`, and parentheses, each token carrying its position…
- `evaluate(text)` function that parses and computes an arithmetic
  expression, returning a `Decimal`. Supports `+ - * /`, parentheses,
  left-associative operators (`2-3-4 = -5`), and unary minus…
- Command-line interface: `python3 pycalc.py "2+3*4"` evaluates the
  expression and prints the result, with exit codes 0/1/2…
- `-h` / `--help` flag: prints usage, the supported operators…
  No released version yet — showing the Unreleased section.

A bare mini changelog

shows the latest released version. But pycalc hasn't released anything yet (we never bumped the version — Part 6 mentioned --bump

/--push

are opt-in), so the command notices there's no dated version and honestly falls back to the [Unreleased]

section with that note. When you want something specific:

mini changelog --unreleased      # the pending changes
mini changelog --version 1.0.0   # a specific release
mini changelog --all             # the whole file

An important detail: changelog

is independent of .mini/ — it just reads

CHANGELOG.md

from the current directory. It works even in a project that has nothing to do with mini. It's a reader, not part of the state.doctor

— is the setup in order? doctor

walks the project and prints a checklist — what's OK, what's a warning, what's broken, and for each problem how to fix it:

mini doctor
mini doctor
  ✓ Project: state schema v2
  ✓ Phases: no orphaned "doing" phases
  ✓ Run reports: no stale reports
  ✓ Decisions: no stale decisions
  ✓ project.md: present
  ✓ CHANGELOG.md: present
  ! Slash commands: none installed in this project
    Run `mini install-commands` (or rely on the user-scope ones)
  ! Version: v1.18.0 → v1.20.0 available
    Run `mini upgrade` to update

[!] All essentials present, 2 warnings.

What it checks, and why it makes sense:

state.json

version match what this mini can read? If not, it suggests mini migrate

. (This is the one fail

that actually stops you.)doing

with no open work? That's the "stuck" state we saw in Parts 4-5; doctor

finds it and suggests done

or undo

..mini/run/

or .mini/decisions/

from a phase that no longer exists (e.g. after undo

)? Safe to delete./mini:*

set installed in the project? For pycalc it's !

(warning), not a

.doctor

just told me that v1.20.0

is out while I'm running v1.18.0

.The summary tallies the counts: for pycalc, "All essentials present, 2 warnings" — nothing critical, two things to consider. doctor

is purely read-only diagnostics; it fixes nothing itself, it just shows and advises.

When to run it: after

undo

/migrate

(to check nothing was left behind), after a mini update, or simply when something feels off and you want a quick check that the problem isn't in the setup.

The same pattern as the state commands from Part 7: read-only, local, zero tokens. changelog

reads CHANGELOG.md

, doctor

reads the filesystem and the version cache. Neither starts Claude, neither changes anything. They're the warning lights on the dashboard — you glance when you want to, and move on.

doctor

checks the setup, not the code.verify

.changelog

is only as good as done

wrote it.CHANGELOG.md

— and that's produced in the done

session. Leave a vague entry there and changelog

hands it back to you just as vague. It's a reader, not a proofreader.doctor

warning is not an order.That completes the set: from init

through the whole loop, autonomous mode, state and health. One scenario remains, the one we've skirted so far: what if a project is already running and you want to bring mini into it after the fact? That's Part 9 — import-gsd

, audit

, and map

, three ways to set mini onto an existing codebase. And because it's the finale, we'll release pycalc on GitHub — not as "yet another calculator", but as an open showcase of .mini/

: the vision, the backlog, the phase memories and run reports, exactly the files this whole series has described.

*mini is open source: npm install -g mini-orchestrator, then mini install-commands in your project. Source and docs on *

── more in #developer-tools 4 stories · sorted by recency
── more on @mini 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/building-with-mini-p…] indexed:0 read:4min 2026-07-29 ·