NNora the Policy Navigator

Team Rules

How we work together

The informal agreement our team follows for team behavior and coding practices.

Team Behavior

  • Communication. We use our iMessage group chat for day-to-day communication, since it's the fastest way to reach everyone.
  • Lateness and absences. If you'll be more than 5–10 minutes late or will miss a meeting, message the team as soon as you know, not after the fact. If you miss a meeting, ask the team to fill you in on what you missed.
  • Email responses. Respond to emails as soon as possible, prioritizing by urgency. Emails from our coach, client, or professor always get a response; leaving them unanswered is not acceptable.
  • Backups and slippage. Each major component has a designated backup who has enough context to take over if the primary owner is stuck or unavailable. Backups are assigned at sprint planning, not after something breaks.

Coding Practices

Style standards

  • Python backend (FastAPI) follows PEP 8.PEP 8 ↗
  • React/TypeScript frontend follows the Airbnb JavaScript Style Guide.Airbnb style guide ↗
  • Formatting and linting are automated, not left to manual review: Black and flake8 for Python, Prettier and ESLint for JS/TS, enforced by a pre-commit hook or CI check.
  • Both style guides are linked in the project repository's README.

Check-in / check-out

  • Keep branches short-lived: merge each feature/* branch into dev within 2–3 days of creating it. Split bigger features into smaller PRs.
  • Before opening a PR, code must run locally, pass linting, and include or update tests for new logic — especially retrieval and AI-response logic, where breakage is most likely to go unnoticed.
  • Before merging dev → qa, the full test suite passes with no known failures.
  • Before merging qa → main, run a manual smoke test of the core flow (ask a question → get a sourced answer) in addition to the automated tests.

Testing

  • Unit tests are required for backend logic: parsing, retrieval, and access control.
  • 100% coverage isn't required, but critical paths — authentication, role-based access, and source citation — never merge untested.