agents/: Individual agent logic directories.agent_name/: Logic, tests, and local dependencies.
backend/: Backend business logic exposed via API.etc/: Configuration management.environment.sh: Source of truth for all injectable parameters.
frontend/: Frontend used for interacting with the backend.iac/: Infrastructure as Code (AWS CloudFormation and AWS SAM).makefile: Root orchestration for builds, deployments, and local runs.
- Primary Interface: Always check the
makefilefor available commands before suggesting custom scripts. - Config Injection: Commands must source
etc/environment.sh. - Dependency Management (Python): Use
uv.- Commands:
uv pip install,uv venv. - Each agent in
agents/should have its own.venvmanaged viauv.
- Commands:
- Dependency Management (TypeScript): Use
npm.- Ensure
node_modulesstay within the relevant directory.
- Ensure
- Use Type Hints for all function signatures.
- Prefer
unittestfor testing within agent subdirectories. - Prefer SQLAlchemy when interacting with relational databases, instead of writing direct SQL statements.
- Follow PEP 8 style guidelines.
- Use ESM (ECMAScript Modules).
- Strict typing required (no
anyunless absolutely necessary).
- Follow the principle of least privilege in IAM templates within
iac/. - Use environment-based naming conventions (e.g.,
resource-name-${STAGE}). - Deployments use the SAM CLI.
- Use Python and FastAPI for backend APIs.
- Build unit tests for ensuring that responses match expected outcomes.
- Use Typescript and shadcn for frontend user experience.
- Before committing code, verify that no credentials, tokens, or secrets are stored in files tracked by git.
- Sensitive data should only exist in:
.envfiles (ensure these are in.gitignore)etc/environment.sh(if used for local development only and gitignored)- AWS Secrets Manager or Parameter Store for production
- Use tools like
git-secretsto scan for accidentally committed secrets. - Review diffs before pushing to ensure no API keys, passwords, or tokens are included.
- Update parameters in
etc/environment.sh. - Execute via
make <target>.