# slack5-1770544098

Slack Path 5: Full SDLC Lifecycle

## Quickstart

```bash
# Clone the repo
git clone https://git.threesix.ai/jordan/slack5-1770544098.git
cd slack5-1770544098

# Install dependencies
./scripts/install.sh

# Start local development
./scripts/dev.sh
```

## Project Structure

```
slack5-1770544098/
├── services/     # Go API services
├── workers/      # Background workers
├── apps/         # Frontend applications
├── cli/          # CLI tools
├── packages/     # Shared TypeScript packages
├── pkg/          # Shared Go packages
└── scripts/      # Development scripts
```

## Scripts

| Script | Description |
|--------|-------------|
| `./scripts/dev.sh` | Start local development environment |
| `./scripts/install.sh` | Install all dependencies |
| `./scripts/quality.sh` | Run quality checks on all components |
| `./scripts/discover.sh` | List all components in the monorepo |

## API Documentation

API documentation is automatically generated from OpenAPI specs and deployed to:

- **Docs**: https://docs.dktxjzt3.threesix.ai
- **OpenAPI Spec**: Each service exposes `/openapi.json`

To regenerate docs locally:

```bash
# Start services locally
./scripts/dev.sh

# Generate Slate markdown from OpenAPI specs
./docs/scripts/generate-docs.sh http://localhost

# Preview docs (optional - requires Ruby)
cd docs && bundle install && bundle exec middleman serve
```

Documentation is automatically rebuilt on every push to `main`.

## Adding Components

Components are added via the rdev API:

```bash
# Add a Go service
curl -X POST $RDEV_API_URL/projects/slack5-1770544098/components \
  -H "X-API-Key: $RDEV_API_KEY" \
  -d '{"type": "service", "name": "auth-api"}'

# Add a React app
curl -X POST $RDEV_API_URL/projects/slack5-1770544098/components \
  -H "X-API-Key: $RDEV_API_KEY" \
  -d '{"type": "app", "name": "dashboard", "template": "app-react"}'
```
