ai-startup-skills
创业公司做 AI 产品的 7 步 Agent Skill 合集:验证 → BP → 政策 → 路演 → 获客 → 定价 → 注册。
Translation pending
SoA Platform monorepo — pipeline + API + React frontend
Translation pending
OtherPython · JavaScriptGitHub @elton-parleoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Agent Commerce Command Center.
Measures Share of Algorithm across AI shopping agents.
The API and pipeline communicate ONLY through the database.Read the full README ↗Agent Commerce Command Center. Measures Share of Algorithm across AI shopping agents.
packages/
shared/ Python package shared by both apps
soa_shared/ Models, database, config
→ pip install -e packages/shared
apps/
api/ FastAPI + React frontend → Deploy to Vercel
api/
index.py Vercel serverless entry point (imports app only)
app/
app.py FastAPI application
schemas.py Pydantic request/response models
routers/
studies.py GET /api/studies, /api/studies/{type}/queries
entities.py GET/POST /api/entities
cycles.py GET/POST /api/cycles, /api/cycles/check
web/ React/Vite frontend
src/
App.jsx View routing (dashboard ↔ wizard)
api.js API client
components/
CycleDashboard.jsx Cycle management page
NewCycleWizard.jsx 5-step new cycle wizard
requirements.txt
vercel.json
pipeline/ Pipeline runner + worker → Deploy to Railway
orchestrator/ PipelineOrchestrator (runner → coding → metrics)
runners/ ChatGPT, Gemini, Claude, Perplexity runners
parser/ Response coding and validation
metrics/ Metrics calculation and xlsx export
seeds/ Query and entity seed scripts
alembic/ Database migrations
worker.py Polling worker (polls soa_cycles every 30s)
main.py CLI entry point
railway.toml
requirements.txt
The API and pipeline communicate ONLY through the database.
Browser → Vercel (apps/api)
POST /api/cycles
→ writes soa_cycles status='planned'
→ returns 201 immediately
Railway (apps/pipeline/worker.py)
→ polls soa_cycles every 30s
→ picks up status='planned'
→ runs PipelineOrchestrator
→ updates status='complete'
cd packages/shared
pip install -e . --break-system-packages
cd apps/pipeline
pip install -r requirements.txt --break-system-packages
cp .env.example .env # fill DATABASE_URL
python worker.py # start polling
# or use CLI directly:
python main.py pipeline --cycle 2026-05 --study-type retailer_sephora
cd apps/api
pip install -r requirements.txt --break-system-packages
cp .env.example .env # fill DATABASE_URL
uvicorn app.app:app --reload --port 8000 &
cd web && npm install && npm run dev
# Frontend: http://localhost:5173
# API: http://localhost:8000/api
apps/apiDATABASE_URL_POOLED (Supabase Transaction pooler URL)USE_POOLED_DB=trueBoth outbound senders in apps/api (app/services/demo_request_email.py
and app/services/lead_notification_email.py) post to Resend's HTTP API
directly. Neither ever raises: if RESEND_API_KEY or EMAIL_FROM is
missing they log a warning, return False, and the request they hang off
succeeds anyway — so a missing var degrades to "no notification", never to
a failed submission.
| Var | Used by | Default if unset |
|---|---|---|
RESEND_API_KEY | both senders | none — no email is sent |
EMAIL_FROM | both senders | none — no email is sent |
LEAD_NOTIFY_EMAIL | both audit notifications — audit-started (a visitor starts an audit run) and new-audit-lead (they later enter their email) | falls back to DEMO_REQUEST_NOTIFY, then [email protected] |
DEMO_REQUEST_NOTIFY | demo-request notification (the "Book your walkthrough" / "Talk to us about TrueSync" form) | [email protected] |
PUBLIC_AUDIT_BASE_URL | the report link inside every notification | https://parleo.io/audit |
LEAD_NOTIFY_EMAIL exists so audit notifications can be routed to a
different alias than demo requests; leave it unset to send both to the
same place.
Note on volume: an audit-started email goes out for every accepted
POST /api/public/soa-lite, not only for runs that become leads. The
per-IP and global rate limits in public_lite.py are the only cap on
how many that can be. They're configurable via env vars
RATE_LIMIT_PER_IP_HOUR (default 3), RATE_LIMIT_PER_IP_DAY (default
10) and GLOBAL_RATE_LIMIT_PER_HOUR (default 20).
Rejected requests — failed captcha, tripped rate limit — send nothing,
since they raise before the row is written.
apps/pipelinepython worker.pyDATABASE_URL (Supabase direct connection)USE_POOLED_DB=falseOPEN_AI_API_KEYGEMINI_API_KEYPERPLEXITY_API_KEYANTHROPIC_CLAUDE_API_KEY