Learn Something Framework
모든 주제를 대화형 LLM 세션을 통해 구조화된 커리큘럼으로 전환합니다. CLI를 통한 학습: 레슨 읽기, 설명하기, 객관식 문제 풀이, 간격 반복.
1. 교수법
세 가지 이론 융합:
| 이론 | AI 역할 | 해결하는 문제 |
|---|---|---|
| 마바 콜린스 | 소크라테스식 튜터. 엄격한 Q&A, 높은 기대, 끝없는 인내심 | 훌륭한 교사 필요. AI는 지치지 않음. |
| 파인만 기법 | 격차 탐지기. 학습자가 단순히 설명하면 AI가 구멍을 찾음 | 이해했다는 착각 |
| 바람직한 어려움 | 간격 스케줄러. FSRS 인출 + 혼합 연습 | 수동적 재독서 |
세션 단계 → 이론 매핑
| 단계 | 이론 | 학습자 | AI/CLI |
|---|---|---|---|
| 읽기 | 마바 | 레슨 학습 | 명확한 콘텐츠 작성 |
| 설명 | 파인만 | 개념을 간단히 설명 | 질문: "X라고 했는데, Y는 어떻게 설명?" |
| 문제 풀이 | 마바 + 바람직함 | MCQ에 답하고 정당화 | 채점, 오답 해설 |
| 판단 | 마바 | 비판하고 의견 형성 | 소크라테스식 후속 질문 |
| 복습 | 바람직함 | FSRS를 통한 능동적 인출 | 최적 간격 스케줄링 |
시간 예산
- 주제: 최대 40시간 (13주 × 3시간/주)
- 모듈: 1.5-3시간, 주제당 약 15-20개
- SRS 복습: 하루 약 10-15분
2. 콘텐츠 구조
<topic>/
├── syllabus.yaml # 과정 명세
├── modules/
│ ├── NN-name/
│ │ ├── lesson.md # 핵심 콘텐츠 + 연습 문제
│ │ ├── quiz.yaml # 8-10개 MCQ
│ │ └── cloze.yaml # 8-10개 클로즈 문제
│ └── ...
└── srs/
├── deck.json # FSRS-5 카드
└── stats.json # 이력
전체 템플릿은 templates/ 경로에 있습니다. 핵심: syllabus.yaml (20개 모듈 뼈대), module.md (레슨 구조), quiz.yaml (4지선다 MCQ 형식).
3. 콘텐츠 제작 프로토콜
워크플로우
- 범위 설정 (5분): 도메인/수준/시간 예산/언어/사용 사례 질문. 강의 계획 제안.
- 개요 단계: 모듈 DAG 및 선수 조건 연결 확인. 시간 예산 확인.
- 모듈별 (10분):
learn.sh create-module <topic> NN-name으로 모듈 생성. 0으로 채워진 두 자리 숫자 + 케밥 케이스 이름 (예:01-intro,02-core-concepts). lesson.md + quiz.yaml 작성. 16가지 품질 규칙을 즉시 적용. lesson.md를 12,000자 이하로 유지. 내용이 넘칠 경우 추가 모듈로 분할하고 syllabus 업데이트. 사용자 검토. 진행. 3.5. 구문 검증:learn.sh validate-content <topic> [module]실행. 진행 전 모든 마크다운 + Mermaid 오류 수정. - 출판 전:
content-verify.md로드. 체크리스트 실행. 위반 사항 수정. - SRS 컴파일 (2분): MCQ 추출 → FSRS-5 덱 생성.
- 누적 퀴즈: 3-5개 모듈마다 주제 루트에
cumulative_quiz.yaml생성. 클로즈, MCQ, 참/거짓 혼합 8-10개 문제. 각 문제에source_modules태그. 답변은 A-D로 분산.
콘텐츠 원칙
- CILO 정렬: 모든 모듈은 최소 1개의 학습 목표를 충족. 빈 내용 없음.
- 언어: 모든 콘텐츠는 syllabus.yaml 언어(
en/zh/yue)로 작성. - 실용 우선: 추상적 정의보다 구체적 예제 먼저.
- 도메인 관련: 학습자 업계 시나리오 활용.
- 클로즈 삭제: 모든 모듈에 3-5개의 클로즈 빈칸(
{term}) 포함. 학습자는 진행 전에 먼저 채움. 읽는 중 인출 강제. - 다음 예측: 모든 인과 관계 체인에 2-3개의 예측 블록 포함. 학습자는 공개 전에 결과를 결정.
- 오류 찾기: 모든 모듈에 1-2개의