Quest OS — 퀘스트 기반 단체 관리 시스템
작성 2026-08-10 · 제품 미출시. 이 폴더는 설계 청사진과 인터뷰용 자료다. 이 작업은
docs/quest-os/밖의 파일을 쓰지 않았다 — empire-routes 게임 코드(source/)는 건드리지 않았다. (같은 시각 다른 세션이source/를 수정 중이므로 파일 타임스탬프로는 구분되지 않는다.)
한 장 요약
학원·교회·동호회 리더가 구성원의 출석·활동·성장을 퀘스트 여정으로 관리하는 SaaS. 리더는 기성 여정을 고르거나 질문 8개에 답해 만들고, 시행 중에도 퀘스트·보상을 고칠 수 있다.
- 첫 목표 고객: 사설 학원 (구매자 = 원장)
- 첫 파일럿 대상: 중·고등부 (만 14세 이상 — 개인정보보호법 제22조의2 회피)
- 제품 정체: 관리 도구가 본체, 게임은 옷. empire-routes 대항해 세계관은 테마 #1일 뿐이다
- 현재 상태: 고객 인터뷰 0건. 가격·수요는 전부 가설이다
이 제품의 급소
위저드가 아니라 "누가 매일 데이터를 입력하는가"다. 강사가 100명을 매일 체크하면 못 버티고, 학생 자기보고는 신뢰가 없어 보상이 무의미해지고, 자동화하려면 무료 경쟁자의 영역인 출결 기기 연동이 필요하다. 가장 가까운 경쟁 제품 Classcraft가 2024년 6월 죽었고, 후속 제품에서 행동관리 기능이 통째로 빠졌다.
문서
| 파일 | 무엇인가 | 언제 읽나 |
|---|---|---|
| 지식 베이스 | 지식 베이스. 행동·동기 이론, 게이미피케이션 프레임워크, 교육 실증, 경쟁·시장, 법규를 출처와 함께. 여기서 도출한 설계 규칙 35개가 이후 모든 판단의 근거다 | 판단이 필요할 때마다 |
| 여정 설계 | 핵심 IP. 템플릿 6종 → 위저드 8문항 → 결정적 생성 규칙 → 표 편집 → 시행 중 수정 규칙. dry-run 3건 포함 | 제품을 설명할 때 |
| 입력 부담 | 급소. 입력 방식 4안 비교와 권장 조합, 측정 결과와 반증 조건 | 설계 결정 전에 |
| 인터뷰 킷 | 학원 인터뷰 실행 킷. 소개 기반 눈덩이, 킬 퀘스천 순서 질문지, 판정 게이트, 중단 신호 | 다음에 할 일 |
| 원장용 한 장 | 원장에게 보여줄 한 장. 프린트 가능 | 인터뷰 자리에서 |
| 출석 명단 목업 | 출석 명단 그리드 + 소요 시간 측정기 내장 | 인터뷰 Q5 |
| 여정 만들기 목업 | 템플릿 6종 + 위저드 8문항 + 생성 결과표 | 인터뷰 Q6 |
| 학생 화면 목업 | 학생이 보는 화면 (대항해 테마) | 인터뷰 Q7·Q9 |
목업은 정적 HTML이다. 로직·백엔드·데이터 저장이 없다. 브라우저에서 파일을 직접 열면 된다.
다음에 할 일
- 지인 원장 3곳 약속을 잡는다 — 인터뷰 킷 §2
- 인터뷰 5건을 마치고 판정 게이트에서 킬 퀘스천 3개를 판정한다 (§7)
- 통과하면 6~20건 진행, 하나라도 죽으면 멈추고 설계·타깃을 다시 잡는다
문서를 더 쓰는 것은 이 순서 뒤다. 지금 도메인 모델이나 아키텍처를 확정하면 Group(반) 전제가 *"우리는 1:1 개인 수업입니다"* 한마디로 무너진다.
기존 트랙과의 관계
docs/business-education-sales/는 게임 자체를 교육상품으로 파는 포지션이었다 (4주 프로젝트 수업 키트 · 청소년 리더십 캠프 · 1일 전략 워크숍, 목표 고객 KDT 훈련기관).
이 폴더는 방향 전환이다. SaaS 관리도구를 학원에 팔고 게임은 표현층이 된다.
| 기존 자료 | 처분 |
|---|---|
| PSST 사업계획서 초안 (정부지원사업 조건·규제 확인분) | 살린다 — 법인 요건·중복지원·등급분류 근거는 그대로 유효 |
| 인터뷰 킷 (KDT 타깃) | 재조준 — 인터뷰 킷로 학원판을 새로 썼다. 원문은 수정하지 않았다 |
| 아이디어 100개 HTML | 보류 — 게임을 파는 아이디어라 이 트랙과 층위가 다르다 |
| KDT 수료율 가설 | 버린다 — 첫 고객이 학원으로 바뀌었다. 성인 트랙은 2차 교두보로 남긴다 |
검증 기록 (2026-08-10)
독립 적대 검수 — codex(gpt-5.2) 읽기 전용. 치명적 3건·높음 8건·보통 2건을 지적받았고, 그중 코드 버그 6건과 문서 결함 6건을 고쳤다. 고친 내용:
| 지적 | 조치 |
|---|---|
챕터 구간 라벨이 4주·24주에서 깨짐 (5~4주, 21~24주 누락) | 기간 균등 분할로 수정, 3개 기간에서 연속성 확인 |
| 학생 화면에서 강사 확인·점수 입력 항목까지 학생이 완료 | 읽기 전용으로 분리, 클릭 무효 확인 |
템플릿이 대상 반을 못 고르고 answers를 오염시킴 | 반 선택 추가 + structuredClone + 재시작 시 초기화 |
| T6 템플릿이 문서(주5회·격주)와 다르게 생성 | 빈도 선택지에 주5회·격주 추가, 문서와 일치 확인 |
| 완료 후에도 값이 바뀌어 측정 결과가 낡음 | 완료 후 입력 차단 |
| 토글 상태가 보조기술에 전달 안 됨 | aria-pressed·aria-label 추가 |
| 본문 색 대비 2.96:1 (기준 4.5:1 미달) | 5.33:1로 수정, 실측 확인 |
| 입력 KPI가 30초/60초/평균 60초로 갈라짐 | "강사 1인 100명 60초" 하나로 통일 |
[사실] 라벨인데 1차 출처가 없는 수치 3건 | [미확인]으로 강등 (Locke r값, g≈.257·d=1.12, "10명 중 6명") |
| 4주 여정 템플릿과 4주 파일럿 금지가 모순처럼 보임 | 여정 기간 ≠ 파일럿 기간임을 명시 |
| "동의 모듈 없이 합법적인 유일한 경로" 과잉 단정 | 제22조의2 회피일 뿐이며 나머지 의무는 그대로임을 명시 |
| 원페이퍼가 스스로 금지한 단정("스스로 하게 만드는") | 표현 완화 + ClassDojo 단일 사례임을 명시 |
남은 지적 (고치지 않고 명시) — 위저드 명세와 목업의 기능 차이는 여정 설계 §8에 표로 남겼다(목업은 인터뷰용이라 일부만 구현). 권한 모델(학생·강사·데스크·원장·학부모)과 검증 게이트의 "발언 대신 행동" 강화는 인터뷰 후 2단계로 미룬다.
자동 검증 — 목업 3종 + 원페이퍼: 콘솔 에러 0, 데스크톱·모바일 가로 스크롤 0, 엣지 케이스 10건 통과(행동 추가·삭제, 최대 3개 제한, 탭 전환 상태 보존, 3단계 순환, 완료 후 잠금 등).
디자인 점검 (design-check, 375px·1440px) — 대비·겹침·오버플로우·정렬. 추가로 고친 것:
| 지적 | 조치 |
|---|---|
wizard.html 본문 대비 2.96:1 (10곳) | --muted 를 #6b6b6b로 → PASS(오류 0) |
student.html 어두운 배경 대비 미달 5곳 (본문 4.27:1, 강조 파랑 3.18:1) | 어두운 배경용 밝은 색으로 분리 → PASS(오류 0) |
04-onepager.html 종이색 배경 대비 12곳 (본문 4.21:1, 강조 3.03:1) | --muted·--gold 를 어둡게, 테두리용 색 분리 → 모바일 오류 0 |
roster.html 모바일에서 탭이 가로 스크롤돼 5번째 반이 숨음 | 좁은 화면에서 탭을 접어 전부 보이게 → 5개 전부 뷰포트 안 확인 |
오탐으로 판정한 것 2종 (기하학적으로 반증)
roster.html의 "고정 푸터가 본문을 덮음" — 마지막 카드 하단 687px, 푸터 상단 756px로 69px 여유.position:fixed요소는 스크롤 컨테이너의 박스와 항상 교차하므로 검사기가 잡지만 실제 가림은 없다.04-onepager.html의 "같은 항목 안 두 강조가 겹침" — 줄 단위getClientRects()로 비교하니 시각적 겹침 없음. 여러 줄로 접힌 인라인 요소의 단일 바운딩 박스가 합쳐져 생긴 오탐이다.
뒤늦게 도착한 병렬 조사 5기 반영 (2026-08-10) — 세션 초반에 띄운 서브에이전트들이 작업 종료 후 돌아왔다. 각 주장을 직접 재확인한 뒤 반영했다.
| 지적 | 직접 확인 결과 | 조치 | |
|---|---|---|---|
"localServer.ts는 정적 서빙일 뿐" 이 거짓 | 맞다 — API 라우트 4개 + source/api·functions에 OpenAI 핸들러 | 지식 베이스 §G에 정정 기재. 백엔드를 맨바닥에서 세울 필요는 없다는 실무 함의도 추가 | |
"components/quest가 16개" | 틀렸다 — `ls \ | wc -l` = 14개(다른 동료는 15개라 했다) | 원래 수치 유지, 세 값이 갈린 사실을 명시 |
| "AIP 2025: 고등학교급 효과 없음" | 오도 소지 — 학회 프로시딩·Google Scholar 단독·학습성과 측정. 저널 메타분석은 고등 g=0.821로 정반대 | 상충 주장으로 병기. 대신 학년별 분해(중등 1.015 / 고등 0.821 / 초등 0.309)를 새로 확보 — 파일럿을 중·고등부로 잡은 결정이 효과 크기로도 뒷받침된다 | |
| 클래스업 무료판에 수업 5개 제한 + 100명당 5,000원 | 미대조 | 조건과 함께 표기, 공식 요금 페이지 확인 필요로 남김 | |
| 미성년자 결제·확률형 제33조·GPS/얼굴인식·재위탁 동의 | 미대조(동료 조사) | 지식 베이스 §F-4~F-6로 신설, 규칙 29~32 추가. 원문 대조 필요를 명시 | |
| Balci 2026(배지는 유능감 실패, 선택권은 자율성 충족) | 미대조 | 지식 베이스 §B-3, 규칙 33 | |
| 위저드 규칙 "4주 → 챕터 1개"가 범위 밖 | 플랜 문서의 모호함이었고 최종 설계는 clamp(...,2,5)로 이미 해결 | 조치 불요 |
알려진 한계
- 검수는 받았으나 codex는 샌드박스 제약으로 브라우저 렌더를 직접 보지 못했다 — 화면 관찰은 메인 세션이 했다. 서브에이전트 5기(탐색 1·리서치 3·plan-verifier 1)는 이 세션에서 전부 미응답이었다.
- 지식 베이스 끝의 미확인 목록은 추정으로 채우지 않고 비워뒀다. 검수 후 3건이 추가로
[미확인]으로 강등됐다. roster.html의 사람 소요 시간은 아직 미측정이다. 자동화 0.38초는 사람 시간이 아니다. 인터뷰 Q5에서 원장·강사가 직접 눌러야 실측이 나온다.- ⚠️ 이 디렉토리는 git 저장소가 아니다 (
git rev-parse→ *not a git repository*). 투자·지원사업 자료로 쓰려면 버전 이력이 필요하다. 여기는 임시 거처이고 별도 저장소로 옮겨야 한다. - F-4~F-6(결제·확률형·출석 방식)과 B-3·B-4는 동료 세션 조사이고 메인 세션이 원문을 대조하지 않았다. 조문 번호와 수치를 외부에 인용하기 전에 국가법령정보센터·원 논문 확인이 필요하다.
- 시장 조사(기업용 게이미피케이션·교회 ChMS·한국 조달 경로)는 담당 세션이 보고 없이 종료해 미확보다.