Scope and trigger conditions
- •Apply when implementing any change intended for a pull request.
- •Apply when modifying runtime behavior, configuration, documentation, or scripts.
- •Apply when changes should align with contributor expectations and local validation commands.
Required inputs
- •Change objective (bug fix, feature, docs update, or refactor).
- •Files or components expected to change.
- •Execution environment constraints (Pi vs non-Pi, mock camera usage).
- •Target validation depth (quick checks vs full CI parity).
Step-by-step workflow
- •Confirm task boundaries and identify impacted areas.
- •Review
README.mdsections related to runtime assumptions, configuration, and local development. - •Review
CONTRIBUTING.mdfor coding workflow, expected commands, and PR expectations. - •Implement the smallest coherent change set.
- •If behavior/config changed, update documentation in
README.md(or adjacent docs) to keep user guidance accurate. - •Run baseline quality checks:
- •
make format - •
make lint - •
make type-check - •
make test(ormake ciwhen time permits)
- •
- •Validate app behavior on non-Pi environments with
MOCK_CAMERA=trueif camera hardware is unavailable. - •Prepare final change summary with what changed, why, and how it was tested.
Validation checklist
- • Changes are focused and consistent with existing style.
- • Relevant docs were updated when behavior/configuration changed.
- • Lint/format/type-check/tests were run successfully (or failures explained).
- • Commands and examples remain compatible with current project tooling.
- • Final summary includes explicit testing evidence.
Common failure modes and recovery actions
- •Failure: Code change passes locally but lacks docs updates.
- •Recovery: Re-open
README.md/CONTRIBUTING.mdsections and patch guidance immediately.
- •Recovery: Re-open
- •Failure: Non-Pi development blocks camera-dependent validation.
- •Recovery: Enable
MOCK_CAMERA=true, validate/healthand/ready, and document limitation.
- •Recovery: Enable
- •Failure: PR scope grows too large.
- •Recovery: Split into smaller commits/PRs and keep each change independently testable.
- •Failure: Checks are skipped due to time pressure.
- •Recovery: Run
make cibefore handoff and record any unavoidable exceptions.
- •Recovery: Run