Cofoundy Systems Inventory
Last audited: 2026-04-06
External Services
| Service | URL | What it does | Config location | Managed by |
|---|---|---|---|---|
| Railway | railway.app | Hosting backends, databases, full-stack apps | plugins/cofoundy-toolkit/skills/deployment/references/railway-projects.md | Andre (CEO) |
| Cloudflare | cloudflare.com | DNS (cofoundy.dev zone), Pages (static deploys), email routing | Zone ID: 2787baa6dbc79985dd0195dd8f1563e6. API token in ~/.claude/settings.json as CLOUDFLARE_API_TOKEN | Andre |
| GitHub | github.com/cofoundy | Source repos, Actions CI/CD, GitHub Pages (portfolio deploys) | Org: cofoundy. Secrets: CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID, CHROMATIC_PROJECT_TOKEN | Andre |
| Discord | discord.com | Internal team comms, automated notifications | Bot token in ~/.claude/settings.json as DISCORD_TOKEN. Channel IDs in plugins/cofoundy-toolkit/skills/discord/scripts/discord_send.py | Andre |
| Cal.com | cal.cofoundy.dev | Self-hosted scheduling for discovery calls + meetings | Railway project cal-cofoundy. Webhook secret in Railway env CALCOM_WEBHOOK_SECRET | Andre |
| Vikunja | vikunja.cofoundy.dev | Self-hosted project/task management (replaces Linear) | Railway project 0bf5c608-b259-48f6-876a-d0b8bff576be. API token in ~/.claude/settings.json as VIKUNJA_TOKEN | Andre |
| Recall.ai | us-west-2.recall.ai | Meeting bot — joins Google Meet, records, real-time transcription | API key in Meeting Hub Railway env as RECALL_API_KEY. Dashboard webhooks configured via Svix | Andre |
| Vaultwarden | vault.cofoundy.dev | Self-hosted password manager (secrets, API keys) | Railway project eafa5b1b-59a4-468f-ae73-c348b7960abe. Volume-backed | Andre |
| Supabase | gcqdsrbjmgaiztrtnmow.supabase.co | Auth provider for InboxAI | Keys in InboxAI Railway env vars (NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_JWT_SECRET) | Andre |
| Google Calendar | calendar.google.com | Team calendars, milestone events, follow-ups | OAuth via gcal.py script. Client ID/Secret in ~/.claude/settings.json as GCALCLI_CLIENT_ID/GCALCLI_CLIENT_SECRET. Token at ~/.gcal_token.pickle | Andre |
| Namecheap | namecheap.com | Domain registration and management | API creds in Vaultwarden “AI Keys” collection (NAMECHEAP_API_USER, NAMECHEAP_API_KEY) | Andre |
| Chromatic | chromatic.com | Visual regression testing for @cofoundy/ui | CHROMATIC_PROJECT_TOKEN in GitHub secrets | Andre |
| Cloudflare Email Routing | — | info@cofoundy.dev routes to Gmail | Cloudflare DNS zone | Andre |
| Imgur | imgur.com | Image hosting for generated images | IMGUR_CLIENT_ID + IMGUR_CLIENT_SECRET in ~/.claude/settings.json | Andre |
| Deepgram | deepgram.com | Speech-to-text (nova-3 model, used by Recall.ai for transcription) | Configured in Recall.ai dashboard, not stored locally | Andre |
| Formspree | formspree.io | Contact form backend for cofoundy.dev | Endpoint ID in landing-page-v2 .env | Andre |
| Meta/WhatsApp Cloud API | graph.facebook.com | WhatsApp message sending (reminders — WIP, blocked on creds) | WHATSAPP_API_KEY + WHATSAPP_PHONE_NUMBER_ID — NOT yet configured for Cofoundy | Andre |
| Alegra | alegra.com | Accounting/invoicing (planned, billing skill is experiment) | ALEGRA_API_USER + ALEGRA_API_TOKEN — TBD | Andre |
Railway Deployments
cal-cofoundy
- Project ID:
6f0e6bc3-1f03-4226-bf6d-4d5b8cd940ee - Production env:
10fadf9d-c98f-42d0-807c-6aa69429180e
| Service | Service ID | URL | What it runs |
|---|---|---|---|
| Cal.com Web App | 7ce0d87a-e669-44f5-b944-786115abec6b | cal.cofoundy.dev | Self-hosted Cal.com scheduling |
| Meeting Hub (webhook) | 1e088998-7dc2-4458-911f-9864820d7dfc | webhook-production-7c67.up.railway.app | Recall.ai transcripts + Cal.com webhooks + Discord notifications |
Env vars (Meeting Hub): RECALL_API_KEY, RECALL_REGION, RECALL_WEBHOOK_SECRET, FIREFLIES_API_KEY, DISCORD_WEBHOOK_URL, WEBHOOK_SECRET, CALCOM_WEBHOOK_SECRET, CONSULTANT_DISCORD_MAP, WHATSAPP_API_KEY (not set), WHATSAPP_PHONE_NUMBER_ID (not set)
Vikunja
- Project ID:
0bf5c608-b259-48f6-876a-d0b8bff576be - Vikunja service:
20f84f33-37e2-4f89-9e44-ffe2fe795efd - Postgres service:
0be4cd2b-4150-46c2-8379-68f423b0aee8 - Production env:
a9bc8090-3c89-4e49-8115-968a778ee3dc - URL: vikunja.cofoundy.dev
- GitHub repo:
cofoundy/vikunja-railway(custom Dockerfile — distroless multi-stage build) - Teams: Delivery (id=1), Founders (id=2)
- Labels: payment(1), milestone(2), follow-up(3), phase-discovery(4), phase-dev(5), phase-qa(6), phase-deploy(7)
Vaultwarden
- Project ID:
eafa5b1b-59a4-468f-ae73-c348b7960abe - Service:
9ba2d3a5-e8c5-4c3f-aaaa-b0e88f0a7c28 - Production env:
bd799d7d-a6fc-4ed9-83e6-596b4a11d701 - Volume:
7ded3e0f-41ba-4456-8c62-ecc619f78c27 - URL: vault.cofoundy.dev
Landing Page (cofoundy.dev)
- Project ID:
b21a7320-9f11-470c-948c-bfb09d115499 - Service:
c1781e29-862d-4ce6-b916-feb64484f72d - Production env:
4c8d54e3-39ba-4098-8339-4b4b74f1117b - URL: cofoundy.dev
- Staging: landing-stag.cofoundy.dev
- Deploy: GitHub Actions → GitHub Pages (
.github/workflows/deploy.yaml) - Env vars:
NEXT_PUBLIC_INBOXAI_API_URL,NEXT_PUBLIC_INBOXAI_TENANT_ID,NEXT_PUBLIC_TIMELY_WS_URL
InboxAI
- Project ID:
555c7aa5-4661-4a8b-ab7b-093cd4957d9b - Backend service:
90da9cee-f050-4d04-8cfc-06608065eef0→ backend-production-171e.up.railway.app - Frontend service:
4e6f2160-4c2a-4c81-a84d-063a4fdf6904→ frontend-production-1634.up.railway.app - Postgres:
f0848a96-8d19-4472-8f3d-33da64b2771c - Redis:
9f04fb2f-8b1d-4bef-a8c9-4b5f9bf0d802 - Production env:
05365ef0-a461-4a53-997a-fcde9f9b2cbd - Tenant:
ten_cofoundy
TimelyAI (renamed from Agenda AI)
- Project ID:
547db65a-05f8-4b56-ad1b-41888f108cb6 - Backend service:
53d91236-7ee0-4411-948e-40e81c0a595a→ backend-timely-ai.up.railway.app - Production env:
fcfe96bb-5b3e-4114-8304-4481f0b890ea
Sift (START Hack 2026 — showcase)
- Frontend: sourcai-frontend-production.up.railway.app → sift.cofoundy.dev
- Backend: sourcai-backend-production.up.railway.app → sift-api.cofoundy.dev
Koopa Notaria (client project)
- URL: koopa-notaria-server-production.up.railway.app
- Webhook: koopa-notaria-server-production.up.railway.app/webhook (Kapso integration)
- Deploy: GitHub source connected →
git push origin maintriggers build
Other Railway projects (referenced)
- n8n (automation workflows)
- Bilio Landing / bilio front (legacy client)
- Journy (client project)
Cloudflare Infrastructure
DNS Zone: cofoundy.dev
- Zone ID:
2787baa6dbc79985dd0195dd8f1563e6 - Wildcard:
*.cofoundy.dev → cofoundy.github.io(for portfolio subdomains via GitHub Pages) - Email routing:
info@cofoundy.dev→ Gmail
Cloudflare Pages Projects
| Project | URL | Source |
|---|---|---|
ui-storybook | ui.cofoundy.dev | packages/ui → GitHub Actions → wrangler pages deploy |
docs-ai | docs.cofoundy.dev | products/cofoundy-platform/docs-ai → Astro → Cloudflare Pages |
particle-wave-demo | particle-wave-demo.pages.dev | Demo landing |
deep-sea-landing | deep-sea-landing.pages.dev | Demo landing |
coffee-landing | coffee-landing.pages.dev | Demo/client landing |
| Various client landings | {name}.pages.dev | Static exports |
Custom Domains on Cloudflare (proxied to Railway)
- cofoundy.dev → Landing Page (Railway)
- cal.cofoundy.dev → Cal.com (Railway)
- vikunja.cofoundy.dev → Vikunja (Railway)
- vault.cofoundy.dev → Vaultwarden (Railway)
- sift.cofoundy.dev → Sift frontend (Railway)
- sift-api.cofoundy.dev → Sift backend (Railway)
- ui.cofoundy.dev → Cloudflare Pages (Storybook)
- docs.cofoundy.dev → Cloudflare Pages (DocsAI)
D1 Database
- docs-ai-analytics:
cec6b0fb-c485-4d79-8546-5e6fccf1eb63(bound to docs-ai)
Discord Infrastructure
Server: Cofoundy
Channels (name → ID):
| Channel | ID | Purpose |
|---|---|---|
| anuncios | 1458069517476303015 | Company announcements |
| general | 1458069522970972305 | General chat |
| standup | 1460013055940235304 | Async standups |
| random | 1458069525172850719 | Off-topic |
| genera | 1458069530189369417 | Client: GENERA |
| clientes-activos | 1458069532731113628 | Active client updates |
| leads | 1458069535151226933 | New leads, deal updates |
| ventas | 1458069537558892761 | Sales team |
| marketing | 1458069540289118355 | Marketing team |
| dev | 1458069542231085239 | Engineering |
| links-utiles | 1458069544244609260 | Useful links |
| templates | 1458069546387898369 | Templates |
| reportes | 1490549262692651089 | Reports |
| founders | (redacted — see core/infrastructure/discord.md) | Founders only — sensitive routing |
Bot: Custom bot (token in ~/.claude/settings.json as DISCORD_TOKEN). Used by discord_send.py script for automated notifications.
Webhook (Meeting Hub): DISCORD_WEBHOOK_URL env var on Railway — posts booking notifications (created/cancelled/rescheduled) to #leads with consultant @mentions via CONSULTANT_DISCORD_MAP.
Team Member Discord IDs:
- Andre:
233699499938152448 - Melissa:
962179627579748402 - Alvaro:
604797534174707713 - Percy:
627677887952060416 - Freddy:
749069760871792682 - Juan:
635285576760950824
Automation / Triggers / Hooks
Claude Code Hooks (cofoundy-toolkit plugin)
| Hook | Event | Script | What it does |
|---|---|---|---|
ensure-keys.sh | SessionStart | plugins/cofoundy-toolkit/hooks/scripts/ensure-keys.sh | Provisions API keys from Vaultwarden on every Claude Code session start. Checks: macOS Keychain → settings.json → keys.json bootstrap |
block-destructive.sh | PreToolUse (Bash) | plugins/cofoundy-toolkit/hooks/scripts/block-destructive.sh | Blocks dangerous bash commands |
enforce-version-bump.sh | PreToolUse (Bash) | plugins/cofoundy-toolkit/hooks/scripts/enforce-version-bump.sh | Ensures plugin version bump on commits |
guard-keys-json.sh | PreToolUse (Bash) | plugins/cofoundy-toolkit/hooks/scripts/guard-keys-json.sh | Prevents writing API keys directly to keys.json |
Claude Code Hooks (cofoundy-founders plugin)
| Hook | Event | Script | What it does |
|---|---|---|---|
enforce-version-bump.sh | PreToolUse (Bash) | plugins/cofoundy-founders/hooks/scripts/enforce-version-bump.sh | Ensures version bump on commits |
GitHub Actions Workflows
| Repo | Workflow | Trigger | What it does |
|---|---|---|---|
packages/ui | deploy.yml | Push to main | Build Storybook → Deploy to Cloudflare Pages (ui-storybook) |
packages/ui | chromatic.yml | Push to main + PRs | Visual regression testing via Chromatic |
projects/landing-page-v2 | deploy.yaml | Push to main | Build Next.js → Deploy to GitHub Pages |
products/cofoundy-platform/docs-ai | (Cloudflare auto-deploy) | Push to main | Astro build → Cloudflare Pages |
Claude Code Remote Triggers
| Trigger | ID | Schedule | What it does | Repos |
|---|---|---|---|---|
| Cofoundy Weekly Pipeline Health | trig_018USkxRTVT6AP4VD4g2hpD9 | 0 13 * * 1 (Mon 8am Lima) | Runs pipeline_health.py → posts health report to #clientes-activos + individual asset gate alerts + DM to Andre | cofoundy-toolkit, deals |
⚠️ Duplicate scripts: deals/scripts/pipeline_health.py (Vikunja-aware, current) and plugins/cofoundy-toolkit/scripts/pipeline-report.py (brief.yaml only, older). Trigger currently points to the deals version. Reconciliation pending.
Pending Cron (not yet active)
- Meeting Hub
/reminders/send— designed for external cron (WhatsApp reminders), blocked on WhatsApp credentials.
Scripts & Tools
deals/ scripts
| Script | Path | What it does | Invoked by |
|---|---|---|---|
compile.sh | deals/scripts/compile.sh | Validates brief.yaml then compiles LaTeX + HTML proposals to PDF | make compile/ClientName |
validate.py | deals/scripts/validate.py | Validates brief.yaml against JSON Schema + price minimums | make validate or make validate/ClientName |
pipeline_health.py | deals/scripts/pipeline_health.py | Weekly pipeline scan — checks Vikunja for overdue tasks, posts to Discord | uv run pipeline_health.py [--discord] |
backfill.py | deals/scripts/backfill.py | Migration helper for brief.yaml schema updates | Manual |
compress-pdfs.sh | deals/scripts/compress-pdfs.sh | Ghostscript PDF compression for oversized files (skips signed contracts) | make compress-pdfs |
cofoundy-toolkit skill scripts
| Script | Path | What it does | Dependencies |
|---|---|---|---|
discord_send.py | plugins/cofoundy-toolkit/skills/discord/scripts/discord_send.py | Send messages to Discord channels/DMs via REST API | httpx, DISCORD_TOKEN |
vikunja_cli.py | plugins/cofoundy-toolkit/skills/vikunja/scripts/vikunja_cli.py | Manage Vikunja projects/tasks/teams/labels | httpx, VIKUNJA_TOKEN |
gcal.py | plugins/cofoundy-toolkit/skills/calendar/scripts/gcal.py | Google Calendar CRUD (auth, create, search, delete events) | google-api-python-client, GCALCLI_CLIENT_ID/SECRET |
generate_image.py | plugins/cofoundy-toolkit/skills/image-gen/scripts/generate_image.py | Multi-model image generation (Gemini, GPT, Grok, Flux, NB2) | GEMINI_API_KEY, OPENAI_API_KEY |
transcribe.py | plugins/cofoundy-toolkit/skills/voice-transcribe/scripts/transcribe.py | Audio transcription | OPENAI_API_KEY |
send.py | plugins/cofoundy-toolkit/skills/comms/scripts/send.py | Queue + hotkey-based message sending (WhatsApp, etc.) | pynput |
comms-listener.py | plugins/cofoundy-toolkit/skills/comms/scripts/comms-listener.py | Keyboard listener for Ctrl+Alt+N send hotkey | pynput |
md2pdf.sh | plugins/cofoundy-toolkit/skills/md2pdf/scripts/md2pdf.sh | Markdown → PDF via LaTeX | LaTeX (pdflatex) |
preprocess.py | plugins/cofoundy-toolkit/skills/md2pdf/scripts/preprocess.py | Markdown preprocessing for LaTeX | pyyaml |
railway-api.sh | plugins/cofoundy-toolkit/skills/deployment/scripts/railway-api.sh | Railway GraphQL API wrapper (status, deploy, vars, domains) | RAILWAY_API_TOKEN |
screenshot.sh | plugins/cofoundy-toolkit/skills/visual-design/scripts/screenshot.sh | Browser screenshots for visual design QA | Playwright |
cofoundy-toolkit standalone scripts
| Script | Path | What it does |
|---|---|---|
pipeline-report.py | plugins/cofoundy-toolkit/scripts/pipeline-report.py | Pipeline health reporting |
setup-provisioner.py | plugins/cofoundy-toolkit/scripts/setup-provisioner.py | Vaultwarden provisioner setup |
add-team-member.py | plugins/cofoundy-toolkit/scripts/add-team-member.py | Onboard new team member |
cofoundy-business skill scripts
| Script | Path | What it does |
|---|---|---|
query_models.py | plugins/cofoundy-business/skills/seo-audit/scripts/query_models.py | Query AI models (GPT, Gemini, Claude, Perplexity) for SEO visibility |
score_responses.py | plugins/cofoundy-business/skills/seo-audit/scripts/score_responses.py | Score AI model responses for brand visibility |
cofoundy-founders skill scripts
| Script | Path | What it does |
|---|---|---|
namecheap.sh | plugins/cofoundy-founders/skills/namecheap/scripts/namecheap.sh | Domain check/buy/dns/list/info/price via Namecheap API |
Other scripts
| Script | Path | What it does |
|---|---|---|
dev-all.sh | projects/scripts/dev-all.sh | Start/stop all local dev services (TimelyAI + InboxAI + Landing) |
e2e-check.sh | projects/scripts/e2e-check.sh | Health check across all projects |
validate.py | leads/scripts/validate.py | Validate campaign/lead YAML schemas |
validate_contract.py | core/scripts/validate_contract.py | Contract template validation |
setup-mcp.sh | core/scripts/setup-mcp.sh | Set up MCP servers for core repo |
deploy.sh | projects/pollada/scripts/deploy.sh | Deploy portfolio to GitHub Pages (handles CNAME, cache, CV) |
cloudflare-dns.sh | projects/pollada/scripts/cloudflare-dns.sh | Add Cloudflare DNS records for portfolio subdomains |
qa-screenshot.js | projects/pollada/scripts/qa-screenshot.js | Playwright screenshots for portfolio QA (desktop + mobile) |
Webhooks (incoming — external services POST to us)
| Source | Endpoint | What it sends | Handler |
|---|---|---|---|
| Cal.com | webhook-production-7c67.up.railway.app/calcom | BOOKING_CREATED, BOOKING_CANCELLED, BOOKING_RESCHEDULED | Meeting Hub (server.py) — schedules Recall.ai bots, sends Discord notifications |
| Recall.ai | webhook-production-7c67.up.railway.app/recall | transcript.data, transcript.partial_data, RT transcript events | Meeting Hub — stores in-memory, queryable via GET |
| Recall.ai Calendar | webhook-production-7c67.up.railway.app/recall/calendar | Calendar sync events for auto-join | Meeting Hub |
| Fireflies | webhook-production-7c67.up.railway.app/fireflies | Transcript-ready webhook | Meeting Hub — fetches full transcript via GraphQL |
| Kapso | koopa-notaria-server-production.up.railway.app/webhook | WhatsApp messages for notaria document generation | Koopa Notaria agent |
| Chromatic | GitHub webhook | PR visual diffs | GitHub Actions |
Webhooks (outgoing — our services POST to external)
| Source | Target | What it sends |
|---|---|---|
| Meeting Hub | Discord webhook URL | Booking created/cancelled/rescheduled notifications to #leads |
| Meeting Hub | Recall.ai POST /api/v1/bot/ | Schedule recording bots for Cal.com bookings |
| Meeting Hub (planned) | Meta WhatsApp Cloud API | 24h + 1h meeting reminders (blocked on WHATSAPP_API_KEY) |
| discord_send.py | Discord REST API | Channel messages, DMs for deal updates, announcements |
| vikunja_cli.py | vikunja.cofoundy.dev API | Task/project/team CRUD |
| gcal.py | Google Calendar API | Event creation, deletion, search |
| railway-api.sh | Railway GraphQL API | Deploy, status, env vars, custom domains |
| pipeline_health.py | Discord REST API | Weekly pipeline health summaries |
| generate_image.py | Gemini/OpenAI/Grok/BFL APIs | Image generation requests |
| namecheap.sh | Namecheap API | Domain operations |
| seo-audit scripts | OpenAI/Gemini/Anthropic/Perplexity APIs | AI visibility queries |
MCP Servers
Active in ~/.claude/settings.json
- Railway MCP — auto-available via Claude Code (Railway project management tools)
- Chrome MCP — browser automation (chrome_navigate, chrome_screenshot, etc.)
- Gmail — gmail_search_messages, gmail_read_message, etc.
- Google Calendar — authenticate (MCP-level, separate from gcal.py)
Per-repo .mcp.json configs
| Repo | Server | Purpose |
|---|---|---|
leads/ | pencil (Pencil.app) | Design tool MCP |
projects/client-enmancha/ | figma-mcp | Figma API integration for En Mancha project |
plugins/cofoundy-toolkit/ | (empty) | No MCP — CLI > MCP by design |
deals/ | (empty) | No MCP |
core/ | (empty) | No MCP |
Legacy MCP servers (in core/mcp-servers/, mostly deprecated)
| Server | Path | Status |
|---|---|---|
discord | core/mcp-servers/discord/run.sh | Replaced by discord_send.py CLI script |
apollo | core/mcp-servers/apollo/ | Apollo.io lead enrichment (Node.js, Dockerfile) |
hubspot | core/mcp-servers/hubspot/ | HubSpot CRM (likely legacy) |
transcriber | core/mcp-servers/transcriber/ | Transcription (replaced by Recall.ai + Meeting Hub) |
vexa-mcp | core/mcp-servers/vexa-mcp/ | Vexa self-hosted transcription (legacy) |
Plugin Inventory
cofoundy-toolkit (v1.18.8)
Access: Everyone. Repo: ~/cofoundy/plugins/cofoundy-toolkit/
Skills (19):
| Skill | Script(s) | External deps |
|---|---|---|
image-gen | generate_image.py | Gemini, OpenAI, Grok, BFL, Imgur APIs |
landing-page | — | Next.js/Astro generation workflow |
voice-transcribe | transcribe.py | OpenAI Whisper API |
branding | — | Brand asset creation |
brand-guide | — | Brand guideline PDF generation (experiment) |
visual-design | screenshot.sh | Playwright, HTML/CSS design (experiment) |
deployment | railway-api.sh | Railway API, Cloudflare API |
md2pdf | md2pdf.sh, preprocess.py, install-latex.sh | LaTeX (pdflatex) |
discord | discord_send.py | Discord REST API |
calendar | gcal.py | Google Calendar API |
retro | — | Self-improvement retrospective |
vikunja | vikunja_cli.py | Vikunja REST API |
namecheap | — | (Read-only lookup; purchase via cofoundy-founders) |
browser | Playwright .venv | Playwright (persistent venv) |
comms | send.py, comms-listener.py | pynput (keyboard listener) |
presentation | — | Beamer/LaTeX slides (experiment) |
bitacora | — | Session logging |
publish | — | Markdown → docs.cofoundy.dev (Astro/Cloudflare Pages) |
icons | — | @cofoundy/icons manifest lookup |
Commands (10):
gitcommit, options, test, visual-audit, whatsapp (WIP), setup (keys provisioning), workspace-setup, research-build, store-key, skill-audit, keys
Agents (4):
landing-reviewer, browser-agent, asset-finder, visual-designer
Hooks (4):
ensure-keys.sh (SessionStart), block-destructive.sh (PreToolUse/Bash), enforce-version-bump.sh (PreToolUse/Bash), guard-keys-json.sh (PreToolUse/Bash)
API Keys managed (auto-provisioned from Vaultwarden):
GEMINI_API_KEY, OPENAI_API_KEY, IMGUR_CLIENT_ID, DISCORD_TOKEN, VIKUNJA_TOKEN, GCALCLI_CLIENT_ID, GCALCLI_CLIENT_SECRET
Infra keys (NOT in toolkit — founders only):
CLOUDFLARE_API_TOKEN, RAILWAY_API_TOKEN — in ~/.claude/settings.json
cofoundy-business (v0.4.4)
Access: Founders + closers + marketing. Repo: ~/cofoundy/plugins/cofoundy-business/
Skills (4):
| Skill | Script(s) | External deps |
|---|---|---|
hormozi-library | — | None (pure reference material) |
content-creation | — | None (self-contained principles) |
web-diagnosis | — | Chrome MCP, image-gen + md2pdf (from toolkit) |
seo-audit | query_models.py, score_responses.py | OpenAI, Gemini, Anthropic, Perplexity APIs |
No commands, agents, hooks, or MCP servers. Inherits all from toolkit.
cofoundy-founders (v0.1.1)
Access: Founders only. Repo: ~/cofoundy/plugins/cofoundy-founders/
Skills (2):
| Skill | Script(s) | Status |
|---|---|---|
namecheap | namecheap.sh | Production — domain check/buy/dns/list/info/price/full-setup |
billing | — | Experiment — Alegra invoicing + BCP/Shinkansen payment (skeleton) |
Hooks (1): enforce-version-bump.sh (PreToolUse/Bash)
Repo Inventory
deals/ (Deal Pipeline)
- Purpose: AI-first CRM. Git = database, YAML = schema, Claude Code = UI
- Key files:
clients/*/brief.yaml(SSOT per deal),schema/brief.schema.json,Makefile,templates/*.tex - Skills (11): lead-prep, lead-qualify, lead-close, kickoff, unit-economics, cronograma, brief-dev, project-status, project-close, meeting-report, deals-setup
- Connects to: Vikunja (project creation at kickoff), Discord (deal won notifications), Google Calendar (milestone events), LaTeX (PDF generation)
- Active clients: 47 folders in
clients/
handbook/ (Company Handbook)
- Purpose: What we sell, how we talk, how we execute. SSOT for offers + brand
- Key files:
offers/(pricing tiers),positioning/BRAND/BRAND_BOOK_MVP.md,sales/,team.md - No skills/scripts. Pure reference material read by other repos
core/ (Founder Vault)
- Purpose: Strategy, margins, legal, compensation, founder journal
- Skills (4): contabilidad, rt-coach, comms, onboarding
- Key files:
strategy/MONEY_MODEL.md,operations/TEAM.md,pricing/rates.md,log/(daily journal) - Legacy MCP servers in:
mcp-servers/(discord, apollo, hubspot, transcriber, vexa-mcp)
leads/ (Lead Generation)
- Purpose: Marketing campaigns, outreach, content, lead qualification
- Skills (7): leads-setup, campaign-plan, campaign-report, lead-capture, lead-handoff, content-calendar, content-post
- Connects to: deals/ (lead handoff creates brief.yaml), handbook/ (reads offers)
products/meeting-hub/ (Meeting Hub)
- Purpose: Recall.ai RT transcripts + Cal.com webhook integration + Discord notifications
- Runtime: FastAPI (Python, uvicorn) on Railway
- Version: 0.7.3
- Key file:
server.py(all endpoints) - Connects to: Recall.ai API, Cal.com webhooks, Discord webhooks, (planned) WhatsApp Cloud API
products/cofoundy-platform/ (White-label AI Platform)
- Purpose: Container for InboxAI, AgendaAI, VoxAI, DocsAI sub-repos
- Sub-repos: inbox-ai, agenda-ai, vox-ai, docs-ai
- Cross-product triggers: intent detection → scheduling → voice call → inbox resume
products/cofoundy-platform/inbox-ai/
- Purpose: Omnichannel messaging hub (WhatsApp, Telegram, IG, Email, Web Chat)
- Stack: NestJS backend + Next.js frontend + Supabase auth + Socket.IO
- Deploy: Railway (backend + frontend + Postgres + Redis)
products/cofoundy-platform/agenda-ai/ (formerly TimelyAI)
- Purpose: Conversational scheduling (natural language → Google Calendar)
- Stack: Python + LangGraph + Google Calendar integration
- Deploy: Railway
products/cofoundy-platform/vox-ai/ (formerly PulseAI)
- Purpose: AI voice agent — calls leads, BANT qualification, live transfer
- Stack: Python + Docker
- Deploy: Railway (planned)
products/cofoundy-platform/docs-ai/
- Purpose: Publish markdown as branded web pages
- Stack: Astro 6 + Cloudflare Pages + D1 analytics database
- URL: docs.cofoundy.dev
packages/ui/ (@cofoundy/ui)
- Purpose: Shared component library (chat widgets, messaging, analytics, UI primitives)
- Stack: React 19, TypeScript, Tailwind, CVA, Zustand, Storybook
- Deploy: Storybook → ui.cofoundy.dev (Cloudflare Pages via GitHub Actions)
- Used by: InboxAI, TimelyAI, Landing Page, VoxAI dashboards
packages/icons/ (@cofoundy/icons)
- Purpose: 99+ curated SVG/PNG brand icons (tech, companies, payments, universities)
- Key file:
manifest.json(SSOT),copy-icons.sh
projects/landing-page-v2/ (cofoundy.dev)
- Purpose: Main company website
- Stack: Next.js 16, React 19, Tailwind v4, GSAP, Lenis
- Deploy: GitHub Actions → GitHub Pages
- Integrations: InboxAI chat widget, TimelyAI scheduling, Formspree contact form
projects/landing-page-v3/ (next version)
- Purpose: Redesign of cofoundy.dev
- Status: In development
projects/pollada/ (Portfolio Factory)
- Purpose: Autonomous agent for producing 100+ client portfolio websites
- Stack: Astro, GitHub Pages, Cloudflare DNS
- Deploy:
./scripts/deploy.sh→ GitHub Pages (subdomains:*.cofoundy.dev) - Team: Alvaro (main dev), Melissa (dev + corrections), Freddy (sales), Andre (flows)
projects/client-koopa-notaria-agent/
- Purpose: WhatsApp agent for notary document generation (Koopa S.A.C.)
- Stack: FastAPI + python-docx, WhatsApp via Kapso
- Deploy: Railway (GitHub source, auto-deploy on push)
projects/client-enmancha/
- Purpose: Restaurant group meal offers platform (En Mancha)
- Stack: NestJS backend + Next.js frontend, PostgreSQL, Redis, MercadoPago, Firebase
projects/client-genera/
- Purpose: AI educational platform (GENERA — Startup Peru 12G winner)
- Stack: Next.js 15, Prisma, LangChain, multi-provider AI
projects/client-cinthiaarana/
- Purpose: Architecture portfolio (CAVP Arquitectos)
- Stack: Next.js 16, React 19, Tailwind 4
- Deploy: Vercel
projects/starthack-2026/
- Purpose: Sift — audit-ready autonomous sourcing agent (hackathon showcase)
- Stack: Next.js 14 frontend + FastAPI backend
- Deploy: Railway → sift.cofoundy.dev / sift-api.cofoundy.dev
projects/ralph-claude-code/
- Purpose: Autonomous AI development loop system (Ralph)
- Version: v0.9.1 (145 tests)
projects/demos/
- Purpose: Experimental landing pages and creative demos
tools/whatsapp-reader/
- Purpose: WhatsApp chat export reader (Node.js/TypeScript)
cotizations/vexa-selfhosted/
- Purpose: Vexa self-hosted transcription (legacy/experimental)
Secrets Management
Vaultwarden (vault.cofoundy.dev)
- Provisioner account:
provisioner@cofoundy.dev— dedicated read-only service account - “Toolkit Keys” collection: 7 low-risk keys (Gemini, OpenAI, Imgur, Discord, Vikunja, GCal)
- “Founders Keys” collection: High-risk keys (Railway, Cloudflare, Admin tokens) — founders only
- “AI Keys” collection: Namecheap API credentials
Bootstrap flow
keys.json (GitHub, private) → contains BW_SVC_CLIENT_ID + BW_SVC_CLIENT_SECRET
→ ensure-keys.sh reads on SessionStart
→ authenticates to Vaultwarden
→ provisions keys to ~/.claude/settings.json env block
→ cached in macOS Keychain for speed
Keys currently in ~/.claude/settings.json env block
GEMINI_API_KEY, OPENAI_API_KEY, PERPLEXITY_API_KEY, IMGUR_CLIENT_ID, IMGUR_CLIENT_SECRET, CLOUDFLARE_API_TOKEN, RAILWAY_API_TOKEN, DISCORD_TOKEN, GCALCLI_CLIENT_ID, GCALCLI_CLIENT_SECRET, VIKUNJA_TOKEN, ENABLE_EXPERIMENTAL_MCP_CLI
Data Flows
Lead → Deal → Kickoff → Delivery → Close
1. Lead captured in leads/ (campaign.yaml + lead.yaml)
2. MQL >= 60 → /lead-handoff creates deals/clients/{Name}/brief.yaml (estado: lead)
3. Discovery call booked via Cal.com → Recall.ai bot auto-joins → transcript stored
4. /lead-prep researches the lead, prepares discovery script
5. /lead-qualify evaluates BANT, creates cotizacion.tex or propuesta.html
6. Presentation gate: deal >= $3,000 → schedule live presentation first
7. /lead-close on payment confirmation → BITACORA update, Discord #leads announcement
8. /kickoff → creates Vikunja projects (Delivery + Founders), calendar events, estado → activo
9. Dev builds project, tasks tracked in Vikunja
10. /project-status checks task + payment progress
11. /project-close verifies completion, calculates real margin, generates case study, estado → completado
12. 30-day follow-up task + calendar event created
Cal.com Booking → Recall.ai Bot → Transcript → Discord
1. Client books via cal.cofoundy.dev (event types with consultant round-robin)
2. Cal.com fires BOOKING_CREATED webhook → Meeting Hub /calcom endpoint
3. Meeting Hub schedules Recall.ai bot via POST /api/v1/bot/ (V2 recording_config)
4. Meeting Hub posts Discord notification to #leads with consultant @mention
5. At meeting time, bot joins Google Meet, streams RT transcript
6. RT transcript stored in-memory at Meeting Hub, queryable via GET /recall/transcript/{bot_id}
7. BOOKING_CANCELLED/RESCHEDULED → Discord update
Pipeline Health Check → Discord
1. pipeline_health.py scans all deals/clients/*/brief.yaml where estado = activo
2. Queries Vikunja for overdue tasks per project
3. Checks payment hitos status
4. Posts summary to Discord #clientes-activos (or #leads with --channel flag)
Portfolio Factory (Pollada)
1. Client pays via voucher verification
2. F0: Take client → update TRACKER
3. F1-F6: Research → design → build Astro site
4. F7: Deploy via ./scripts/deploy.sh → GitHub Pages (subdomain.cofoundy.dev)
5. QA: Playwright screenshots (desktop + mobile) → review
6. F8: Deliver → WhatsApp message + link → update TRACKER
Secrets Provisioning
1. Claude Code session starts (any repo)
2. cofoundy-toolkit SessionStart hook fires ensure-keys.sh
3. Script checks macOS Keychain → ~/.claude/settings.json → keys.json bootstrap
4. Authenticates to Vaultwarden as service account
5. Fetches toolkit keys from "Toolkit Keys" collection
6. Writes to ~/.claude/settings.json env block
7. All skills/scripts can now read keys from environment
Storybook / UI Components Deployment
1. Push to packages/ui main branch
2. GitHub Actions deploy.yml: build Storybook → wrangler pages deploy → ui.cofoundy.dev
3. GitHub Actions chromatic.yml: Chromatic visual regression test
Document Publishing (DocsAI)
1. /publish skill copies .md file to docs-ai repo under src/content/docs/
2. Git push to main
3. Cloudflare Pages auto-deploys Astro build
4. Live at docs.cofoundy.dev/{project}/{slug}
Team Systems Mapping
| Person | GitHub | Discord ID | Vikunja ID | Cal.com user | Cal.com DB ID |
|---|---|---|---|---|---|
| Andre Pacheco | A-PachecoT | 233699499938152448 | 2 | andre | 4 |
| Melissa Iman | Melissa1221 | 962179627579748402 | 3 | melissa | 7 |
| Alvaro Gonzales | alvarogiozu | 604797534174707713 | 5 | alvaro.gio.zu | 2 |
| Percy Huaman | lepaccio | 627677887952060416 | 6 | percy | 6 |
| Freddy Nanez | Freddyx14 | 749069760871792682 | 4 | freddy | 8 |
| Juan Silva | JuanSilva2000 | 635285576760950824 | — | — | — |
Known Gaps / Blocked Items
- WhatsApp Reminders (Meeting Hub):
/reminders/sendendpoint exists butWHATSAPP_API_KEY+WHATSAPP_PHONE_NUMBER_IDnot configured. Needs Cofoundy WhatsApp Business number. - Billing skill (cofoundy-founders): Skeleton only. Alegra API integration not built. BCP/Shinkansen payment execution not built.
- gcalcli cleanup:
gcal.pyreplaces gcalcli but some skills still reference gcalcli (kickoff Step 9, project-close Step 10). - In-memory transcript store (Meeting Hub): RT transcripts reset on every Railway deploy. No persistent storage.
- n8n Railway project: Referenced but status unclear.
- Duplicate pipeline scripts:
deals/scripts/pipeline_health.pyandtoolkit/scripts/pipeline-report.pydo overlapping work. Need to merge into one.
Generated by Claude Code systems audit. Review quarterly.