Skip to content

Fix stale CLI help text and add a rule to keep it current - #39

Merged
AdamClemens merged 2 commits into
mainfrom
fix/cli-help-message-accuracy
Aug 28, 2026
Merged

Fix stale CLI help text and add a rule to keep it current#39
AdamClemens merged 2 commits into
mainfrom
fix/cli-help-message-accuracy

Conversation

@AdamClemens

Copy link
Copy Markdown
Owner

Summary

  • pyflow --help / bare pyflow described the CLI as a "Stage 0 skeleton -- no simulation functionality yet" long after Stage 4 landed real numerics, PISO, and a live-stepping golden demo, and never mentioned --config or how to run a golden demo anywhere the top-level help would show it (argparse only surfaces a subcommand's own flags under that subcommand's own --help).
  • Rewrote __main__.py's top-level description/epilog to describe actual current capability, phrased by what the CLI can do rather than by roadmap stage number so it survives a stage exit unedited; added a matching example epilog on run_parser.
  • Added a dated rule in src/pyflow/CLAUDE.md: this help text must be revisited whenever a subcommand, flag, or golden demo changes, in the same change (Blast Radius applied to the CLI's own self-description).
  • Enforced with tests, not just prose: tests/unit/test_main.py::test_top_level_help_describes_current_capabilities and its subprocess-boundary mirror in tests/integration/test_cli.py assert the stale "Stage 0" claim is gone and --config/examples/golden-demos are present.
  • Blast Radius: the two new tests brought the live test count to 605, so docs/planning/roadmap.md's and docs/repository-manifest.md's own restated counts needed updating too (exactly what make check-status exists to catch) -- fixed in the same change, docs/planning/status.md regenerated.

Test plan

  • make lint (pre-commit: whitespace, YAML, codespell, ruff, mypy) -- clean
  • make ci in full -- 605 passed, all check-* targets clean (check-docs, check-docs-index, check-graph, check-dependency-tree, check-inventory, check-manifest, check-references, check-scenarios, check-status)
  • Manually inspected pyflow --help and pyflow run --help output for readability

🤖 Generated with Claude Code

pyflow --help / bare `pyflow` claimed "Stage 0 skeleton -- no simulation
functionality yet" long after Stage 4 landed real numerics and a
live-stepping golden demo, and never mentioned --config or how to run a
golden demo anywhere the top-level help would show it. Rewrote the
top-level description/epilog to describe current capability (phrased so
it doesn't need editing every stage exit) and added a run_parser epilog
example. Locked in with two new tests (test_main.py, test_cli.py) that
assert the stale claim is gone and --config/examples/golden-demos are
present, and a dated rule in src/pyflow/CLAUDE.md requiring this text be
revisited whenever a subcommand, flag, or golden demo changes.

Blast Radius: the two new tests brought the live count to 605, so
roadmap.md's and repository-manifest.md's own restated test-count claims
needed the same update make check-status exists to catch.
… timeframe claim

README.md's Project Status and Current Phase sections still said PyFlow
"has completed Stage 3... and is about to begin Stage 4" and pointed a
reader at Stage 2's Field Display demo as "the most recent" -- stale
since Stage 4 closed (PR #38), caught while auditing the CLI help text
for the same kind of staleness. Updated both sections to reflect Stage 4
being complete and Stage 5 not yet started, and repointed the "try the
most recent demonstration" command at the Passive Scalar Transport demo.

Added a rule in docs/practices.md: README's Project Status/Current Phase
sections must be updated in the same change a stage opens or closes,
same standing as the existing Quick Start rule, and stale docs found
during unrelated work should be fixed on the spot rather than only
flagged.

Also corrects an inaccurate claim made in this same fix's own prior
commit (src/pyflow/CLAUDE.md): the CLI help text was described as
having gone stale "long after" Stage 4 landed, when in fact Stage 4
landed within about a day and the closing PR merged under an hour
before that claim was written. Reworded to state the actual timeline.
@AdamClemens
AdamClemens merged commit 0f1fe94 into main Aug 28, 2026
2 checks passed
@AdamClemens
AdamClemens deleted the fix/cli-help-message-accuracy branch August 28, 2026 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant