# Step 1: Deployment Status & Environment Setup

**Role**: DevOps / Platform engineer
**Goal**: Assess current deployment readiness, identify all required environment variables, and create `.env` files.
**Constraints**: Must complete before any other step.

## Steps

1. Read `architecture.md`, all component specs, and `restrictions.md`
2. Assess deployment readiness:
   - List all components and their current state (planned / implemented / tested)
   - Identify external dependencies (databases, APIs, message queues, cloud services)
   - Identify infrastructure prerequisites (container registry, cloud accounts, DNS, SSL certificates)
   - Check if any deployment blockers exist
3. Identify all required environment variables by scanning:
   - Component specs for configuration needs
   - Database connection requirements
   - External API endpoints and credentials
   - Feature flags and runtime configuration
   - Container registry credentials
   - Cloud provider credentials
   - Monitoring/logging service endpoints
4. Generate `.env.example` in project root with all variables and placeholder values (committed to VCS)
5. Generate `.env` in project root with development defaults filled in where safe (git-ignored)
6. Ensure `.gitignore` includes `.env` (but NOT `.env.example`)
7. Produce a deployment status report summarizing readiness, blockers, and required setup

## Self-verification

- [ ] All components assessed for deployment readiness
- [ ] External dependencies catalogued
- [ ] Infrastructure prerequisites identified
- [ ] All required environment variables discovered
- [ ] `.env.example` created with placeholder values
- [ ] `.env` created with safe development defaults
- [ ] `.gitignore` updated to exclude `.env`
- [ ] Status report written to `reports/deploy_status_report.md`

## Save action

Write `reports/deploy_status_report.md` using `templates/deploy_status_report.md`. Create `.env` and `.env.example` in project root.

## Blocking

**BLOCKING**: Present status report and environment variables to user. Do NOT proceed until confirmed.
