Work · Affinity Group
claude-forge
Python (stdlib-first) Supabase Postgres Azure Functions Microsoft Graph Freshservice API AdminDroid API ScreenConnect API Claude API
claude-forge is the AI-augmented IT operations platform I'm architecting and building at Affinity Group. It unifies data pipelines, a Cowork tech skill, and webhook automations on a Supabase Postgres backbone, and exposes a curated set of named, audited functions to IT techs.
What it does
- Pulls cached / derived data from Freshservice, AdminDroid, ScreenConnect, and Microsoft Graph into Supabase tables on a scheduled cadence.
- Exposes a curated tech-facing skill (Cowork): search past tickets, requester history, asset state, live API lookups, reply drafts. Each function is named, audited, and bounded; techs never see raw SQL or arbitrary tool access.
- Accepts webhook events from Freshservice and ScreenConnect, calls the Claude API for auto-triage, reply drafts, asset enrichment, and duplicate detection.
Architecture conventions
- stdlib-first Python. Add a dependency only when stdlib genuinely won't do.
- Idempotent and resumable jobs. Anything that can break midway can be safely re-run.
- Rate-limit aware. Every external API client respects published limits and degrades gracefully.
- RLS on Supabase tables. Per-source-system table prefixes, audit columns, Row-Level Security policies.
- Secrets in Bitwarden, delivered via env vars. No secrets in code or config files.
- Audited surface for techs. Curated named functions, never raw SQL or arbitrary tool execution.
Status
Stage 1 is in production: Freshservice analytics-export refresh plus per-ticket enrichment with conversations and custom fields, running on Windows Task Scheduler at 9:05 AM weekdays.
Stage 2 brings the Supabase migration and Azure Functions timer triggers, the Cowork tech-skill rollout, and the webhook-driven Claude automations for triage and reply drafts.