ai-startup-skills
AI 제품을 만드는 스타트업을 위한 7단계 에이전트 스킬: 검증 → 비즈플랜 → 정책 → 로드쇼 → 고객 확보 → 가격 책정 → 등록
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Agent Commerce Command Center.
Measures Share of Algorithm across AI shopping agents.
The API and pipeline communicate ONLY through the database.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