← 목록
기타 2026-06-13 4KB 읽기 3분

크라우니인베스트 교육이수뱃지 + 초대/소개자

개요

인베스트에 사람을 초대해(초대자=소개자 기록) 9과목×9학년 학습을 이수하면 교육이수뱃지를 부여하고, 소개자 네트워크가 자라면 마을→타운→시티로 승격하는 서브시스템. 울트라 5에이전트(설계오푸스/코딩소넷/글밥하이쿠/검증오푸스) 착수 → 세션 한도로 Wire·Verify 중단 → 메인(Opus)이 직접 결선·검증·정리 완료.

무엇을 했는지

  • 모듈(소넷 생성, 47/47·40/40 테스트):
  • 핵심/교육.한선 — 9과목(크라우니사고/투자기초/리스크관리/포트폴리오/딜분석/가치평가/거시경제/투자심리규율/크라우니생태계)×9학년(기초~마스터). 교육_이수등록(id,과목코드,학년수)(중복=이미이수 멱등), 교육_JSON(이수수·진도 그리드·뱃지), 뱃지레이블. 영속 data/이수.dat append-only "id|과목|학년|등록".
  • 핵심/소개.한선 — 초대/소개자 엣지 소개_등록(소개자id,피초대자id)(자기소개금지·중복=이미있음), 소개_등급코어(마을 1~8 / 타운 9~26 / 시티 27+, 3^n), 소개_JSON(초대수·등급·다음임계까지·피초대자목록·내소개자). 영속 data/소개.dat.
  • 순수 코어 + 라이브 래퍼 분리(비격리 테스트 교훈 반영).
  • 메인 직접 결선: 투자서버.한선 가져오기 2 + 라우트 4종 — POST /api/invite(초대·소개자), POST /api/referrer(소개자 현황·등급), POST /api/learn(이수→뱃지), POST /api/edu(진도·뱃지). 한글 별칭 병기.
  • 인트라넷 UI: data-v="edu" 교육·초대 섹션(초대 폼·소개자 현황·학습 이수 select·교육 진도 칩 그리드), nav·titles·로드 함수 결선.
  • 랜딩 UI: index.html id="academy" 소개 섹션(9과목/9학년/소개자/마을·타운·시티 capgrid).
  • 글밥 하이쿠(과목명/학년/뱃지/카피) — 과목명은 모듈에 이미 하드코딩되어 백엔드 무영향.
  • 검증 (메인 직접 — 실패한 Verify 대체)

    • 초대→소개자 기록(EDUTEST_A 내소개자=EDUTEST_소개), 멱등(이미있음)·자기소개금지.
    • 학습 이수→뱃지 [크라우니사고-기초], 중복=이미이수, 9과목 진도 그리드.
    • 승격 라이브: 27명 초대→등급 시티(다음임계 0). 임계 9=타운/27=시티 확인.
    • 9×9 진급: 크라우니사고 9학년까지, 9뱃지(기초~마스터), 이수수 9.
    • 무파괴: D4 델타핀 무손상, 딜.dat 51행 불변.
    • 빈 상태 무크래시(0초대=미활동, 0이수). 단일 launchd 인스턴스. 회귀 7/7(status·ops·brief·patrol·deals·proposals·agentfeed).
    • 검증 데이터(EDUTEST_·UICHK)는 백업(소개.bak.검증/이수.bak.검증) 후 리셋 → 프로덕션 빈 슬레이트.

    관련 파일

    • 핵심/교육.한선·소개.한선, _t_교육.한선·_t_초대.한선
    • 투자서버.한선(라우트 4+별칭), public/intranet.html(edu 섹션), public/index.html(academy 섹션)
    • 데이터: data/이수.dat·소개.dat(append-only)

    잔여 이슈

    • Verify(독립 적대검증)는 세션 한도로 미실행 — 메인 직접 검증으로 대체(다음 세션 적대 재검 권장).
    • 인터페이스.md/CLAUDE.md에 4 신규 라우트 계약 반영 미완(모듈 인라인 계약은 존재) — 다음 세션 보완.
    • 학습자 수백+ 시 이수.dat/소개.dat char·1023 한계 → 샤딩 필요(설계엔 반영, 미구현).
    • 뱃지 부여는 자기신고형(이수 API 호출) — 실제 학습 콘텐츠/퀴즈 게이트는 후속.