# ClaudeTools Reference Guide

**Purpose:** On-demand reference material for agents and deep-dive questions.
**Not loaded automatically** - agents read this when they need project details.

---

## Project Structure

```
D:\ClaudeTools/
├── api/                    # FastAPI application
│   ├── main.py            # API entry point
│   ├── models/            # SQLAlchemy models
│   ├── routers/           # API endpoints
│   ├── schemas/           # Pydantic schemas
│   ├── services/          # Business logic
│   ├── middleware/        # Auth & error handling
│   └── utils/             # Crypto utilities
├── migrations/            # Alembic database migrations
├── .claude/              # Claude Code hooks & config
│   ├── commands/         # Commands (create-spec, checkpoint)
│   ├── skills/           # Skills (frontend-design)
│   └── templates/        # Templates (app spec, prompts)
├── mcp-servers/          # MCP server implementations
│   └── feature-management/  # Feature tracking MCP server
├── scripts/              # Setup & test scripts
└── projects/             # Project workspaces
```

---

## Starting the API

```bash
# Activate virtual environment
api\venv\Scripts\activate

# Start API server
python -m api.main
# OR
uvicorn api.main:app --reload --host 0.0.0.0 --port 8000

# Access documentation
http://localhost:8000/api/docs
```

---

## API Endpoints

### Core Entities (Phase 4)
- `/api/machines` - Machine inventory
- `/api/clients` - Client management
- `/api/projects` - Project tracking
- `/api/sessions` - Work sessions
- `/api/tags` - Tagging system

### MSP Work Tracking (Phase 5)
- `/api/work-items` - Work item tracking
- `/api/tasks` - Task management
- `/api/billable-time` - Time & billing

### Infrastructure (Phase 5)
- `/api/sites` - Physical locations
- `/api/infrastructure` - IT assets
- `/api/services` - Application services
- `/api/networks` - Network configs
- `/api/firewall-rules` - Firewall documentation
- `/api/m365-tenants` - M365 tenant management

### Credentials (Phase 5)
- `/api/credentials` - Encrypted credential storage
- `/api/credential-audit-logs` - Audit trail (read-only)
- `/api/security-incidents` - Incident tracking

---

## Common Workflows

### 1. Create New Project

```python
POST /api/projects
{
  "name": "New Website",
  "client_id": "client-uuid",
  "status": "planning"
}
```

### 2. Track Work Session

```python
# Create session
POST /api/sessions
{
  "project_id": "project-uuid",
  "machine_id": "machine-uuid",
  "started_at": "2026-01-16T10:00:00Z"
}

# Log billable time
POST /api/billable-time
{
  "session_id": "session-uuid",
  "work_item_id": "work-item-uuid",
  "client_id": "client-uuid",
  "start_time": "2026-01-16T10:00:00Z",
  "end_time": "2026-01-16T12:00:00Z",
  "duration_hours": 2.0,
  "hourly_rate": 150.00,
  "total_amount": 300.00
}
```

### 3. Store Encrypted Credential

```python
POST /api/credentials
{
  "credential_type": "api_key",
  "service_name": "OpenAI API",
  "username": "api_key",
  "password": "sk-1234567890",  # Auto-encrypted
  "client_id": "client-uuid",
  "notes": "Production API key"
}
# Password automatically encrypted with AES-256-GCM
# Audit log automatically created
```

---

## Important Files

| File | Purpose |
|------|---------|
| `SESSION_STATE.md` | Complete project history and status |
| `credentials.md` | ALL infrastructure credentials (UNREDACTED) |
| `session-logs/` | Daily session documentation |
| `.env` / `.env.example` | Environment variables |
| `test_api_endpoints.py` | Phase 4 tests |
| `test_phase5_api_endpoints.py` | Phase 5 tests |
| `AUTOCODER_INTEGRATION.md` | AutoCoder resources guide |
| `TEST_PHASE5_RESULTS.md` | Phase 5 test results |

---

## Security

- **Authentication:** JWT tokens (Argon2 password hashing)
- **Encryption:** AES-256-GCM (Fernet) for credentials
- **Audit Logging:** All credential operations logged

```bash
# Get JWT Token
POST /api/auth/token
{ "email": "user@example.com", "password": "your-password" }
```

---

## Troubleshooting

```bash
# API won't start - check port
netstat -ano | findstr :8000
# Check database connection
python test_db_connection.py

# Database migration issues
alembic current        # Check current revision
alembic history        # Show migration history
alembic upgrade head   # Upgrade to latest
```

---

## MCP Servers

See `MCP_SERVERS.md` for complete details.

- **GitHub MCP** - Repository and PR management (requires token)
- **Filesystem MCP** - Enhanced file operations (D:\ClaudeTools access)
- **Sequential Thinking MCP** - Structured problem-solving

Config: `.mcp.json` | Setup: `bash scripts/setup-mcp-servers.sh`

---

## Next Steps (Optional Phase 7)

- File Changes API - Track file modifications
- Command Runs API - Command execution history
- Problem Solutions API - Knowledge base
- Failure Patterns API - Error pattern recognition
- Environmental Insights API - Contextual learning

These are optional - the system is fully functional without them.

---

## Session Log Locations

**Project-Specific:**
- Dataforth DOS: `projects/dataforth-dos/session-logs/YYYY-MM-DD-session.md`
- ClaudeTools API: `projects/claudetools-api/session-logs/YYYY-MM-DD-session.md`

**Client-Specific:** `clients/[client-name]/session-logs/YYYY-MM-DD-session.md`
**General/Mixed:** `session-logs/YYYY-MM-DD-session.md` (root)

See `PROJECT_ORGANIZATION.md` for complete structure.
