Problem Statement
Problem Statement
Rooms currently relies on informal/local conventions for formatting and linting. Contributors can submit PRs that pass functional tests but still introduce inconsistent style, avoidable lint errors, and noisy diffs. This increases review overhead and causes quality drift over time.
We need a strict, documented, and CI-enforced quality baseline so formatting/lint/test requirements are consistent for all contributors before merge.
Proposed Solution
Introduce a standardized quality toolchain and enforce it in CI:
-
Adopt baseline tools
- Formatting:
black
- Linting:
flake8
- Tests:
pytest
- (Optional phase 2) Add
pylint only if we agree on rule scope and suppression policy to avoid contributor friction.
-
Run once on current codebase
- Apply formatter and fix high-signal lint errors across existing code.
- Keep this as a dedicated cleanup PR to avoid mixing with feature work.
-
Enforce in GitHub Actions
- Update CI workflow to run:
python -m black --check .
python -m flake8 .
PYTHONPATH=. pytest tests/ -v
- Mark checks as required so non-compliant PRs are blocked from merge.
-
Document contributor workflow
- Update
CONTRIBUTING.md with required local commands before commit/PR.
- Update
docs/TESTING.md with exact command order and expected behavior.
- Add short “quality gates” section in README dev/contrib area.
-
Optional local guardrails
- Add
pre-commit config to run black + flake8 on staged files.
- Keep optional initially, but recommended in docs.
Alternatives Considered
- Flake8 only
- Rejected: doesn’t solve formatting consistency.
- Pylint as mandatory in v1
- Rejected for now: too heavy/noisy until baseline is stabilized.
- Rely on reviewer preference
- Rejected: inconsistent and not scalable.
Priority
High 🔴
Additional Context
This issue is foundational and should be completed before large incoming feature work (e.g., Skillware integration phases) to keep diffs clean and maintainable.
Suggested rollout:
- PR A: baseline formatting/lint cleanup (no feature logic changes)
- PR B: CI enforcement + docs updates
- PR C (optional): pre-commit onboarding
Problem Statement
Problem Statement
Rooms currently relies on informal/local conventions for formatting and linting. Contributors can submit PRs that pass functional tests but still introduce inconsistent style, avoidable lint errors, and noisy diffs. This increases review overhead and causes quality drift over time.
We need a strict, documented, and CI-enforced quality baseline so formatting/lint/test requirements are consistent for all contributors before merge.
Proposed Solution
Introduce a standardized quality toolchain and enforce it in CI:
Adopt baseline tools
blackflake8pytestpylintonly if we agree on rule scope and suppression policy to avoid contributor friction.Run once on current codebase
Enforce in GitHub Actions
python -m black --check .python -m flake8 .PYTHONPATH=. pytest tests/ -vDocument contributor workflow
CONTRIBUTING.mdwith required local commands before commit/PR.docs/TESTING.mdwith exact command order and expected behavior.Optional local guardrails
pre-commitconfig to run black + flake8 on staged files.Alternatives Considered
Priority
High 🔴
Additional Context
This issue is foundational and should be completed before large incoming feature work (e.g., Skillware integration phases) to keep diffs clean and maintainable.
Suggested rollout: