Spaces:
Running
Running
File size: 2,116 Bytes
bd28470 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | # Contributing to AI Client Acquisition System
Welcome! This guide will help you get started as a contributor.
## Getting Started
1. **Clone the repo**
```bash
git clone https://github.com/iDevBuddy/ai-client-acquisition.git
cd ai-client-acquisition
```
2. **Install dependencies**
```bash
npm install
cd src/profiling/python-service && pip install -r requirements.txt && cd ../../..
```
3. **Set up environment**
```bash
cp .env.example .env
# Fill in your API keys β ask @iDevBuddy for access
```
4. **Set up database**
- Create a Supabase project (free)
- Run migration files from `supabase/migrations/` in order
5. **Start development**
```bash
# Terminal 1: Trigger.dev tasks
npm run trigger:dev
# Terminal 2: Python AI service
cd src/profiling/python-service && python main.py
```
## Project Architecture
```
Phase 1: FINDING (current)
Discovery β Scraping β Pain Detection β Email Finding β AI Profiling β Scoring β Slack
Phase 2: OUTREACH (upcoming)
Email sequences β LinkedIn messaging β Follow-ups β Reply handling
```
## Code Conventions
- **TypeScript** for orchestration, discovery, and integrations
- **Python** for AI profiling service (FastAPI)
- **Zod** for runtime validation
- Use `logger` (pino) for all logging β no `console.log`
- Every LLM call must have a `traceId`
- Every external API call must go through `retry.ts`
## Branch Strategy
```
main β production-ready code
develop β integration branch
feature/* β new features
fix/* β bug fixes
```
## Pull Request Process
1. Create a feature branch: `git checkout -b feature/your-feature`
2. Make your changes
3. Test locally (see Testing section)
4. Push and create a PR against `develop`
5. Get at least 1 review before merging
## Security Rules
β οΈ **NEVER commit API keys or secrets**
- `.env` is in `.gitignore` β keep it that way
- Use `.env.example` for templates (no real values)
- If you accidentally commit a key, rotate it IMMEDIATELY
## Questions?
Reach out to @iDevBuddy on GitHub or Slack.
|