Canonical local workflow before opening a PR.
flowchart TD
A[Implement change] --> B[poetry run poe docs-links]
B --> C[poetry run poe workflow-lint]
C --> D[poetry run poe check]
D --> E{CLI behavior changed?}
E -->|yes| F[poetry run poe test-e2e]
E -->|no| G[ready for commit]
F --> G
| Command | Why it matters |
|---|---|
poetry run poe docs-links |
Prevent broken local Markdown links in all root .md files and docs/ |
poetry run poe workflow-lint |
Validate GitHub workflow YAML and expressions |
poetry run poe check |
Run lint + format-check + mypy + non-E2E tests |
poetry run poe test-e2e |
Validate CLI behavior through offline integration flows |
poetry run planpilot --help |
Sanity-check CLI entrypoint wiring |
poetry run poe docs-links
poetry run poe workflow-lint
poetry run poe check
poetry run poe test-e2e # when CLI behavior changes
poetry run planpilot --helpdocs-linksfails: fix markdown targets or stale relative paths.workflow-lintfails: fix.github/workflows/*.ymlsyntax/expressions.checkfails in mypy: fix runtime typing insrc/planpilot.checkfails in tests: fix implementation or test assumptions; avoid updating golden expectations blindly.test-e2efails: inspect CLI summary/output contracts and command routing.