Find the implementation you need
Use the repository's AGENTS.md files for component-specific development rules. Start from the domain that owns the behavior you are changing.
| Concern | Location |
|---|---|
| Public integration contract | api/routes/public_v2.py |
| Existing application and telephony API | api/routes/ |
| Organization-scoped data access | api/db/ |
| Conversation execution | api/services/workflow/ and api/services/pipecat/ |
| Carrier adapters | api/services/telephony/providers/ |
| Application interface | ui/src/ |
| Documentation and route aliases | docs/ and docs/routes.json |
| Release deployment | deploy/ |
Keep tenant checks at every organization-scoped lookup. Put reusable business logic in its owning service and database queries in the database client. A facade can translate response fields without renaming stored columns or breaking existing clients.
For API v2 changes, export the schema from the running Python app, update the checked-in snapshot and build the documentation reference. Verify both the contract tests and the gateway route for the deployment you use.