# Slack Preparation Phase 2 (Execution Plan) > Based on `slack-preparation-thoughts.md`, this plan details the specific files and commands needed to enable `slackpath-1` (Identity) and `slackpath-2` (Async Workers). ## 1. Missing Templates (Priority: High) We must implement these templates in `internal/adapter/templates/templates/` so the Tree Runner can execute `add-worker`, `add-db`, and `add-redis`. ### `worker` Template * **Location:** `internal/adapter/templates/templates/worker` * **Structure:** Go service similar to `go-api` but optimized for long-running tasks. * **Key File:** `cmd/worker/main.go` (starts a queue consumer instead of an HTTP server). * **Dockerfile:** Standard Go build. * **Helm Chart:** Deployment (not Service/Ingress). ### `postgres` Template * **Location:** `internal/adapter/templates/templates/postgres` * **Nature:** Infrastructure Wrapper. * **Helm Chart:** Dependencies on `bitnami/postgresql` or a custom StatefulSet. * **Outputs:** Connection string secret. ### `redis` Template * **Location:** `internal/adapter/templates/templates/redis` * **Nature:** Infrastructure Wrapper. * **Helm Chart:** Dependencies on `bitnami/redis`. * **Outputs:** Host/Port secrets. ## 2. Missing Shared Packages (Priority: Critical) The agent needs standard libraries to avoid writing insecure auth or buggy queues from scratch. These go in `pkg/` at the root of the project templates (or the `skeleton`). ### `pkg/auth` (for Path 1) * **JWT Handling:** `Sign(claims) string`, `Parse(token) (*Claims, error)`. * **Middleware:** `func RequireAuth(next http.Handler) http.Handler`. * **Context:** `func GetUser(ctx) User`. ### `pkg/queue` (for Path 2) * **Interface:** ```go type JobQueue interface { Enqueue(ctx context.Context, topic string, payload any) error Process(ctx context.Context, topic string, handler func(payload []byte) error) } ``` * **Implementation:** Redis-based (using `go-redis/v9`). ## 3. SDLC Commands (Priority: Critical) The cookbooks use commands that don't exist. We must create the prompt definitions. ### `.claude/commands/spec-feature.md` * **Goal:** Generate `spec.md`. * **Instructions:** "You are a Technical PM. Analyze the feature slug. Write a requirements doc." ### `.claude/commands/design-feature.md` * **Goal:** Generate `design.md`. * **Instructions:** "You are a System Architect. Analyze `spec.md`. Define DB Schema, API Contracts, and Package structure." ### `.claude/commands/implement-feature.md` * **Goal:** Write Code. * **Instructions:** "You are a Senior Go Developer. Read `design.md`. Implement the changes. Run tests." ## 4. API Verification (Priority: Medium) We need to ensure `rdev-api` actually handles the `POST /projects/{id}/builds` endpoint with the `prompt` payload correctly (routing it to the Claude Code agent). * **Check:** `cmd/rdev-api/internal/service/build_service.go` (or similar). * **Verify:** Does it invoke the `claude` CLI inside the project pod? ## Execution Order 1. **Templates:** Create `worker`, `postgres`, `redis` folders. 2. **Packages:** Write `pkg/auth` and `pkg/queue` code to be included in the `skeleton` template. 3. **Commands:** Create the 3 markdown files in `.claude/commands/`. 4. **Test:** Run `slackpath-1`.