Westside Agency
Notes
Project Page 1
-
Westside Agency
project-westside-agencyWestside Agency
Vision
Agents are user story representatives. Any button a user can touch, their agent can touch. Agents are the interface between users and the system — not tools that execute tasks, but representatives that act on behalf of their role.
The admin UI is a conversation. The coach dashboard is a conversation. The parent portal is a conversation. The frontend (westside-app, westside-contracts) handles direct interactions (signing, paying, registering). The agent layer handles everything administrative.
Core Principle
User stories live in
project-westside-basketball. Agents live here. Each agent is the guardian of their role's stories.When a story says "As an admin, I want to send branded email announcements" — the admin agent can do that. The capability (skill, SOP, endpoint) is the bridge between the story and the agent. If the capability doesn't exist, that's a ticket.
Primary User Story
WA-S1: "As an admin, I want to go to
~/westside-agency/, say what I need, and have the system route my request to the right agent — so I never think about which agent to talk to."Agent-Role Mapping
Role Actor(s) Agent Stories Interface Superadmin Lucas Ava WS-S1 through WS-S5 Main session (CLI) Admin Marcus Penny WS-S5 through WS-S15 GroupMe, email, or direct chat Coach Assigned coaches TBD WS-S13 through WS-S16 TBD Parent Registered parents TBD WS-S17 through WS-S22 TBD Player Registered players TBD WS-S23 through WS-S25 TBD Prospect Unregistered families TBD WS-S26+ Landing page + AI assistant Capabilities (Story-to-Skill Bridge)
Admin (Penny) — Marcus's Representative
Story Capability Status WS-S7: Send branded emails /send-emailskill +sop-email-send+ NEMO email_blast toolREADY (CLI), GATED (GroupMe — needs NEMO_EMAIL_MODE) WS-S5: View registration stats Database query via basketball-api Not built WS-S6: Assign players to teams Admin API endpoints exist Needs skill WS-S9: Track payment status Admin API endpoints exist Needs skill WS-S10: Manage coaches Coach onboarding endpoints exist Needs skill WS-S11: Stripe checkout for jerseys Checkout endpoints exist Needs skill WS-S12: Manage user accounts Keycloak admin + API Needs skill WS-S13: View/manage schedule Not built Not built WS-S14: AI sponsor outreach Sponsor model + endpoints shipped Needs skill WS-S15: 501(c)(3) registration Ops — not agent-automatable In progress (human) Superadmin (Ava) — Lucas's Representative
Story Capability Status WS-S1: Deploy via IaC tofu plan/apply, ArgoCD READY (manual) WS-S2: Monitor health Grafana dashboards, blackbox probes READY WS-S3: Manage Keycloak Keycloak admin API READY (manual) WS-S4: Serve static assets MinIO + minio-api READY WS-S5: CNPG database CNPG operator + backup In progress Architecture
User (GroupMe / CLI) → ~/westside-agency/ (front door — user never picks an agent) → NEMO (westside-ai-assistant, Qwen 3.5:4b on Ollama, deployed in k8s) → Agent Index (structured routing, 10 pathways) 1. westside-email-agent — email campaigns (ACTIVE) 2. roster-agent — player/team management 3. contract-agent — contract status/offers 4. payment-agent — billing/subscriptions 5. schedule-agent — practices/tournaments 6. player-data-agent — profile management 7. coach-agent — coach assignments 8. sponsor-agent — sponsorship outreach 9. report-agent — dashboard/audits 10. help-agent — "what can you do?"Directory Model
Directory Purpose Who uses it ~/westside-agency/Front door — unified entry point Admin user (Marcus, Lucas) ~/westside-email-agent/Email campaign agent dev/debug Developer ~/westside-ai-assistant/NEMO router service (k8s) GroupMe users, API consumers Current Blocker
westside-ai-assistant#35: NEMO_EMAIL_MODE gate. NEMO has the email_blast tool deployed but NO permission gate. A 4B model should not have unrestricted blast access. Must ship
NEMO_EMAIL_MODE=test_onlybefore NEMO email goes live. Priority: HIGH.Milestones
Milestone Description Status M1: First capability /send-email— admin can send branded emails via CLI agentDONE (2026-04-03) M2: NEMO email tool email_blast tool added to westside-ai-assistant DONE (2026-04-04) — GATED by #35 M3: Profile completion query incomplete_profiles query in email_queries.py DONE (2026-04-04) M4: Front door live ~/westside-agency/as unified entry pointDONE (2026-04-04) M5: NEMO permission gate NEMO_EMAIL_MODE env var (disabled/test_only/full) TICKETED — westside-ai-assistant#35 M6: Second agent Roster or contract agent — second pathway in the index Not started M7: Full 10-pathway index All 10 agent pathways routable via NEMO Not started Repos
Repo Role westside-ai-assistantNEMO router service (Qwen 3.5:4b, k8s) basketball-apiBackend endpoints that agents call claude-customSkills, hooks, agent definitions pal-e-docsSOPs, architecture notes, project state Status
Email agent is pathway #1 — validated by 36 contract reminder sends (2026-04-03). NEMO email_blast tool deployed but gated pending #35. Front door (
~/westside-agency/) established 2026-04-04. Next: ship permission gate, then profile completion campaign as second validation.Related
project-westside-basketball— parent project (user stories, board, architecture)arch-email— email system architecturesop-email-send— email send workflowagent-ava— Ava's personality and role definition