project-page active Westside Agency
project-westside-agency updated 2026-04-06

Westside 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-email skill + sop-email-send + NEMO email_blast tool READY (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_only before NEMO email goes live. Priority: HIGH.

Milestones

Milestone Description Status
M1: First capability /send-email — admin can send branded emails via CLI agent DONE (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 point DONE (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-assistant NEMO router service (Qwen 3.5:4b, k8s)
basketball-api Backend endpoints that agents call
claude-custom Skills, hooks, agent definitions
pal-e-docs SOPs, 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.

  • project-westside-basketball — parent project (user stories, board, architecture)
  • arch-email — email system architecture
  • sop-email-send — email send workflow
  • agent-ava — Ava's personality and role definition