76 lines
No EOL
2.7 KiB
Markdown
76 lines
No EOL
2.7 KiB
Markdown
# FreightDesk AI Agent Coordination
|
|
|
|
This document defines the operational framework for AI agent collaboration on the FreightDesk project via git.
|
|
|
|
## Project Overview
|
|
- **Purpose**: Freight Forwarding Commission Agent Management
|
|
- **Main Stack**: Node.js/Express, EJS templates, Supabase
|
|
- **Frontend**: EJS server-side templates
|
|
- **Backend**: Express server with Supabase integration
|
|
- **Database**: PostgreSQL via Supabase
|
|
|
|
## Git Workflow
|
|
|
|
### Branch Naming Convention
|
|
- `agent/{agent-name}/{feature}` - New features (e.g., `agent/claude-code/driver-management`)
|
|
- `agent/{agent-name}/fix/{issue}` - Bug fixes (e.g., `agent/codex/fix/login-error`)
|
|
- `agent/{agent-name}/docs/{topic}` - Documentation updates
|
|
|
|
### Collaboration Protocol
|
|
1. **Claim Work**: Check AGENT_NOTES.md before starting work
|
|
2. **Create Branch**: Fork from `main` with agent-specific prefix
|
|
3. **Commit Messages**: Use conventional commits with `[agent]` prefix
|
|
- Example: `feat[agent]: add driver search functionality`
|
|
4. **Pull Requests**: Reference agent name in PR description
|
|
5. **Review**: Self-review before requesting human review
|
|
|
|
## Agent Responsibilities
|
|
|
|
| Agent | Primary Domains | Review Scope |
|
|
|-------|----------------|--------------|
|
|
| OWL (owl-alpha) | Full-stack: routes, views, parser, styling, deployment | All changes |
|
|
| claude-code | Backend logic, API routes, server config | Routes, middleware |
|
|
| codex | Database schema, migrations, seed data | SQL, Supabase client |
|
|
| opencode | Frontend/EJS templates, CSS, UI components | Views, layouts |
|
|
| default | Cross-cutting concerns, project config | All changes |
|
|
|
|
## Code Standards
|
|
|
|
### JavaScript/Node.js
|
|
- Use `const`/`let` (no `var`)
|
|
- Prefer arrow functions for callbacks
|
|
- Use async/await (no callbacks)
|
|
- Destructure objects when used 2+ times
|
|
|
|
### EJS Templates
|
|
- Use `<%- %>` for unescaped HTML
|
|
- Use `<%= %>` for escaped content
|
|
- Keep logic minimal; prefer passing data from routes
|
|
|
|
### Supabase
|
|
- Use the singleton pattern from `src/services/supabase.js`
|
|
- Handle errors with try/catch
|
|
- Use `.from('table').select('*')` pattern
|
|
|
|
## File Structure Reference
|
|
```
|
|
freightdesk/
|
|
├── webapp/
|
|
│ ├── src/
|
|
│ │ ├── server.js # Main Express server
|
|
│ │ ├── routes/ # Route handlers
|
|
│ │ ├── views/ # EJS templates
|
|
│ │ └── services/ # Supabase client
|
|
│ ├── public/ # Static assets
|
|
│ └── package.json
|
|
├── supabase/
|
|
│ └── migrations/ # Database schema
|
|
└── docker-compose.yml
|
|
```
|
|
|
|
## Getting Started
|
|
1. Clone the repository
|
|
2. Install dependencies: `npm install`
|
|
3. Copy `.env.example` to `.env` and configure
|
|
4. Run database migrations
|
|
5. Start dev server: `npm run dev` |