2026-05-08 — wow factor 1주 sprint v2 + 강제 의존성 hooks 완료
한 줄 요약
deep-research 4갈래 인사이트 반영한 v2 plan 으로 7일 + F1/F4/F5 풀 완료. 35+ task / 28 commit / 모든 BE staging PASS / 21 신규 FE 컴포넌트 / 7 신규 BE 모듈. 도메인 산 후 활성화 대기.
사토시 의도 (반영)
"가입하고 5초만에 와 씨빨~ 소리 나게 하고, 왜 결제를 해야하는가를 똑바로 때려박아야함" "AX SaaS 의 본질을 진짜 제대로 유지해야함, 쓸수록 매일 발전하는" "moat 가 있는 것 ≠ moat 를 안 쓰면 안 됨" "브레인은 다운로드 하게 해주면 안되지 않나" "PG 재판매 X 씨발 뭔 개소리야"
v1 → v2 변경 (외부 리서치)
| v1 가설 | v2 (deep-research 반영) | 출처 |
|---|---|---|
| 5질문 자유 텍스트 | 클릭 3 + 자유 2 hybrid | Pinterest survey conversion |
| 5초 카운트다운 | streaming reveal (AI 거짓말 X) | desisle 2026 / Reforge |
| 단순 progress bar | Devin plan→tasks 트리 | Cognition Devin docs |
| 결과물 한꺼번에 | 1개씩 sequential + 1.2s teaser | Reforge first habit loop |
| Free trial 14일 | Reverse Trial 7일 (Cursor 패턴) | OpenView 2026 |
| Hard paywall 단독 | Soft → Hard 2단 | Halo AI 16.5% (hard 10.7%) |
| 5 tier | 3 카드 (Pro/Business/Enterprise) | Linear/Notion 패턴 |
| ⌘K 메인 | 검색바 1차 + ⌘K 보조 | 한국 SMB UX |
| 30일 daily streak | 주 5일 + freeze pass | Duolingo 압박 비판 |
| brain raw export O | raw export X, 미리보기만 | 사토시 5/7 결정 |
Day 별 commit
Day 1 — Pinterest 5질문 wizard
db6f693D1-T1 schema (companies 6컬럼 + onboarding_answers)0b6d4e2D1-T2 API 4 endpoint5a22180D1-T3 8업종 templates config88d34b0USE wai_board; sweep (staging hijack 사고 수습)e19f89dD1-T4 TemplateGallery.jsx7e9b596D1-T5 SurveyWizard.jsx (276라인)fced84eD1-T6 OnboardingFlow + App.jsx 강제 redirect
Day 2 — first_results chain + SSE + 트리 + reveal
976190eD2-T3 first_results chain config0d7fb16D2-T1 onboarding-stream-api.js (SSE)15c4919D2-T1 hotfix (req._body — bridge body 이중 등록)79298aaD2-T2 AgentTreeViz.jsx1e225a8D2-T4 SequentialReveal.jsx3d489e4D2-T6 GeneratingScreen wrapper
Day 3 — 다운로드 + 자동 라우트
e574727D3-T1 SwotPdfButton (FE jsPDF, 서버 OOM 회피)75d0473D3-T3 onboarding-deploy.js (landing 1-click prod URL)d9309b2D3-T3 hotfix (폴백 output 차단)dee3340D3-T4 CitationLabel (Notion AI Q&A 패턴)
Day 4 — habit loop + 24h push + 톤
5c3d9a0D4-T1 HabitLoopCTA "1번만 더"e2a3a32D4-T2 onboarding-followup.js (24h cron)6ec109cD4-T3 microcopy polish
Day 5 — Reverse Trial + 토스 v2 + Pricing + Paywall
baec242D5-T1 Reverse Trial 7일 + trial-expiry-cron1e58907토스 v2 BE (billing-toss.js)2671fe2토스 v2 FE (TossCheckoutButton + TossReturnPage)da81e67D5-T2 ROI 카운터 (billing-roi.js)ea6772eD5-T3..T7 (PricingTable / CompareChatGPT / Soft / Hard / CancelLockIn)
Day 6 — Help v2 + streak + nudge + nginx CSP
80f9e3aD6-T5 streak + D6-T6 nudge cron4dfaa4fD6-T5 hotfix (KST UTC drift)5b3fb51D6-T1/T2/T4 GlobalSearchBar + HelpIconButton + Coach 톤- (server) nginx CSP 토스 도메인 (Report-Only 유지)
Day 7 — Lock-in
c44f8c8D7-T1 BE brain-summarybf09764D7-T1 BE hotfix (GET → POST)060a505D7-T1/T2/T3 FE (BrainGraph + WorkflowArchive + TeamInviteCTA)544a0f0D7-T1 FE hotfix
F1/F4/F5 — 강제 의존성
804e05eF1 alimtalk-routes + F4 daily-report + F5 토스 결제→세금계산서 자동
사고 + hotfix 5건
- USE wai_board; staging hijack (5/7) —
mysql ... wai_board_staging < onboarding-schema.sql로 staging 명시했는데 파일 첫 줄USE wai_board;가 prod 로 redirect. 7 마이그 파일 sweep +feedback_sql_no_use_clause.md메모리. 다행히 멱등 안전. - bridge body 이중 등록 hang (D2-T1) — 4/30 csp-report 504 패턴.
req.on('data')새 등록 = event 안 발화.req._body사용으로 fix. - D3-T3 폴백 deploy — chain 폴백 실패 output ("[전체 폴백 실패]") 도 그대로 deploy. 폴백 마커 차단 + HTML validity 422.
- streak KST UTC drift (D6-T5) — mysql2 가 DATE 컬럼을 UTC 00:00 Date 로 반환.
dateOnly헬퍼 +9h 보정. - dispatch GET body 안 받음 (D7-T1) — agent-detail GET 으로 body 못 받음 → POST 변경.
사토시 외부 액션 (도메인 산 후)
- 도메인 결정 + DNS (nexus.[company-domain] 또는 독립)
- Resend DNS 3 records (mailer 활성)
- Kakao OAuth Developers 등록
- 토스 가맹점 등록 (사장님 명의) + secretKey .env (staging 이미 박힘 — prod 만)
- 알리고 비즈니스 채널 ([company] 명의) + ALIGO_API_KEY .env
- popbill 가입 + POPBILL_LINK_ID .env
- 사장님 가입 시 business_number 컬럼 저장 (signup.js 후속 1줄)
남은 backlog
- #195 D2-T5 Playwright e2e — mkcert 자체 인증서 + staging HTTPS 30분 셋업이면 가능. 또는 NODE_ENV='staging' 분기로 cookie Secure 떼기 1줄 (도메인 사면 자동 제거 부채). 사토시 결정.
- #225 D6-T3 Empty state sweep — 5-10 화면 일관성 sweep. 새 onboarding 컴포넌트는 이미 적용. PostList empty / Notifications empty 등 사이트-와이드.
핵심 디자인 결정 (사토시 5/7~5/8)
- brain raw 다운로드 X — D7 BrainGraph + WorkflowArchive + CancelLockInModal 모두 명시
- PG 재판매 X — F3 task description 변경, 토스는 사장님 명의 가맹점만, Nexus = SDK/UI/webhook 흡수
- Reverse Trial 7일 (사토시 short Cursor 패턴 선호)
- 3 카드 압축 (5 tier 결정 마비 회피)
- microcopy 사장님 1:1 카톡 톤 — AI 티 0건 review 통과
- 검색바 1차 / ⌘K 보조 — 사장님 단축키 학습 X 가정
moat 4묶음 (SaaStr "prompts are portable")
- 회사 brain 데이터 영구 학습 (Notion AI Q&A 패턴 — 인용 source 라벨)
- 한국 통합 6 특수 (사업자/카카오/토스/한국어/PIPA/KISA)
- 누적 ROI 카운터 (해지 시 자산 폐기 모달)
- 팀 협업 history (5명 = 이탈 비용 5배)
누적 코드 통계
- BE: 7 신규 모듈 (modules/onboarding-stream-api / onboarding-followup / nudge-scheduler / trial-expiry-cron / daily-report) + 7 board plugin (onboarding / onboarding-deploy / billing-toss / billing-roi / brain-summary / streak / alimtalk-routes)
- FE: 21 신규 컴포넌트 (onboarding 7 + billing 7 + brain 2 + team 1 + ui 3 + 1 wrapper)
- 마이그: 7 컬럼 + 4 신규 테이블 (onboarding_answers / billing_orders / streak_pings / alimtalk_logs)
- 모두 500라인 미만 / 모두 staging PASS / 빌드 32~39s 0 error
- main bundle 686KB → jspdf lazy chunk 분리 후 678KB
메모리
project_2026_05_07_wow_factor_sprint.md(v2 plan)project_2026_05_07_08_sprint_done.md(완료 archive — 본 DevLog 와 cross-reference)feedback_sql_no_use_clause.md(USE 절 hijack 사고 학습)feedback_research_before_implement.md(deep-research 먼저 학습)
2026-05-08 (저녁) — UX-fix + 모바일 sweep + Phase A/B/C + 뉴런 진화 + Codex 보안 sweep
한 줄 요약
오전 sprint v2 + 강제 의존성 완료 후 저녁에 사토시 검수 5건 → UX-fix → 모바일 sweep → Phase A (chain rerun) → Phase B (custom_context) → Phase C (C1C13) → 뉴런 진화 N1N5 → Codex 외부 점검 + S/U batch 7건. 1세션 누적 30+ task / 19 commit / 4 마이그.
사토시 의도
"정보를 넣어주고 재실행을 시켜야하는데 그 칸이 없음" → Phase A (chain rerun + feedback) "지피티처럼 개인 맞춤 설정, 본인의 정보 넣어달라 이런 템플릿" → Phase B (10 템플릿 + custom_context) "구성원 직책마다 데이터가 존나 많이 쌓이겠노" → Phase C 13 task (PIPA + onboarding + relevance + versioning + monitoring) "개인뉴런이 좋으면 공통뉴런, 좆같으면 밤시키고, 진짜 좋은 건 회사 뉴런(최고관리자)" → N1~N5 자동 진화 인프라 완성 "Codex 점검 결과" carbon-copy → S/U batch 7건 (Codex high 2 / medium 2 / low 1 + 정리 2)
Day 별 commit (저녁 batch)
UX-fix 5건 (사토시 검수 P0/P2-1, oldest first)
- 검색바 중복 통합 + AgentChat select 줄바꿈
- BrainGraph + WorkflowArchive 카피·CTA
- 모바일 sweep — TabBar overflow / PostList stat / AgentList grid
- BE chain 빈응답 retry + 매출분석 demo 추정 + WebCrafter agent ID mismatch (4섹션 instruction)
- iframe srcDoc 미리보기
Phase A — Chain rerun + feedback
2e0ccacBE — DB 마이그 + executeChain opts + rerunChain + POST /chain/rerund73ee4eFE — ChainRerunWithFeedback + ChainDetail + GeneratingScreen mount
Phase B — Custom context + 10 템플릿
3ede5b1BE — companies/users.custom_context 마이그 + me/context.js + getCompanyContext 확장5f1d254FE — MyContextPanel + 10 템플릿 + applyTemplateToContext 함수
Phase C — C1~C13 (PIPA + onboarding + relevance + versioning + monitoring)
72acea8BE — C1 (share 컬럼) C2 (export 확장) C3 (탈퇴 cascade) C5 (audit) C7 (chain hint) C8 (length 가드) C9 (history) C10 (export/import) C12 (admin history) C13 (NeuronFS 동기화)12c3e72FE — C4 (UserOnboardingPrompt) C6 (promotion 체크박스) C9 (HistoryModal) C10 (download/upload) C11 (impactLabel) C12 (admin/회사 토글)
뉴런 진화 N1~N5
b574bb9N1 — co{id}-{NNN}-{slug} sequence (neuron-naming.js)bb26e21N2 — 별점 → success/error 뉴런 (agent-feedback.js)a5d5bfaN3 — auto-promote cron 03:30 (neuron-auto-promote.js)f77f5e4N4 — auto-archive cron 04:00 (neuron-auto-archive.js)ae17694+88fcdb2N5 — POST /neuron/archive + NeuronBulkReview.jsx (BrainHub 'review' 탭)
Codex 보안 sweep (외부 점검 5건 + 정리 2건)
be41e4aU1 — GeneratingScreen api.request 죽은 코드 (FE)- (rm) U3 — root package.json 잡파일 정리
c15027bS5 — /memory/recent await 누락 fix + saveContext companyId998ec2bS4 — /neuron/count cross-tenant override super_admin only6a0fa58S3 — neuron-evolution-lock.js + rename 직전 재검증48cc881S2 — chain-executor 조립 후 prompt-injection-guard1dc7d6dS1 — 저장 시점 guard 4 곳 (custom_context PUT / import / chain rerun / onboarding)
마이그 (4 신규)
2026-05-08-chain-rerun-feedback.sql— chain_executions.parent_execution_id + chain_feedback_inputs2026-05-08-custom-context.sql— companies/users.custom_context2026-05-08-context-share-column.sql— users.custom_context_share ENUM (PIPA opt-in 안전장치)2026-05-08-context-history.sql— context_history (versioning + restore)
누적 코드 통계 (저녁 batch)
- BE: 4 신규 모듈 (neuron-naming / neuron-auto-promote / neuron-auto-archive / neuron-evolution-lock) + 1 신규 plugin (me/context.js)
- FE: 4 신규 컴포넌트 (MyContextPanel / ContextTemplateGrid / TemplateModal / HistoryModal / NeuronBulkReview / UserOnboardingPrompt / ChainRerunWithFeedback)
- 모두 500 라인 미만 (neuron.js 508 → naming 분리해서 475 로 회복)
- 모두 prod 라이브 확인 (bridge restart uptime 2초 ok=true / nip.io 200 / endpoint auth gate 401)
- main bundle 686KB → 696KB (Phase B + N5 추가)
차별화 카피 (사토시 발견)
"하네스는 도구를 엮지만, Nexus 는 사장님 회사를 학습합니다." "Cursor·Devin 은 개발자가 코드 짤 때. Nexus 는 사장님이 회사 운영할 때." "다른 곳은 도구만 연결합니다. Nexus 는 사장님 회사가 똑똑해집니다."
→ Hero / Pricing / 해지 모달 3 곳에 일관 적용 후보 (다음 batch L1)
메모리 (저녁 batch)
project_2026_05_08_chain_rerun.md— Phase A + B + C 통합 archiveproject_2026_05_08_neuron_evolution.md(신규) — N1~N5 archiveproject_2026_05_08_security_sweep.md(신규) — Codex S/U batch archivefeedback_no_concurrent_batch.md— 5/8 클라리피케이션 추가 (research/grep 병렬 OK / implementation 순차)
Codex 협업 패턴 학습
사토시가 다른 PC / Codex CLI 로 코드 점검 의뢰 → 결과 carbon-copy 로 공유 → 내가 fix 진행. 외부 시각이 발견한 약점 = 내가 못 본 표면.
- await 누락 (S5) — 내 자체 점검 X
- /neuron/count cross-tenant query — 내 점검 (C18) 안 닿은 영역
- promote/archive race — cron 모듈 동시성 구조 의식 못함
→ 다음에도 큰 batch 후 Codex 외부 점검 1회 거치는 게 가치 있음.
다음 batch 후보 (M-batch)
뉴런 시스템 약점 보완:
- M1: counter 가중 (chain importance × user role × 시간 decay)
- M2: 시간 decay 부패 (90일 미사용 = -1)
- M3: chain ↔ 뉴런 인용 추적 (chain_steps.referenced_neurons JSON)
- M4: universal contributor metadata (_metadata.json: co_id 기록)
- M5: super_admin 텔레그램 daily summary (promote/archive 결과)
- M6: proprietary 승격 점수 컬럼 (counter × dopamine × 회사 다양성)
- M7: universal 뉴런 PII auto-redact
L-batch (고급화 톤):
- L1: Hero / Pricing / Dashboard prestige (Apple Vision Pro 톤)
- L2: 영역별 tone 분리 (chrome=Apple, 사장님 입력=KakaoTalk warm)
- L3: "220개 회사 검증된 패턴" 인용 라벨 (chain 결과)
T-batch (어필):
- T1: Hero "ChatGPT 1명 vs Nexus 22명" 직접 비교
- T2: Dashboard 첫 줄 "이번 주 chain N회 / brain M 뉴런" prestige 카드
- T3: Pricing 비교 표 (vs ChatGPT / Cursor / Zapier / Devin)