본문으로 건너뛰기

EP9. 소크라테스식 학습 활동 스킬

🕵️‍♂️ 3블록 미션과 무지(Ignorance)를 박제하는 코드 엔진

지난 에피소드에서는 Cocrates 학습 활동의 세 가지 기둥(산파술, 블룸의 분류학, ZPD 비계 설정)과 이를 잇는 파이프라인의 개념을 살펴봤습니다.

이번 편에서는 이 철학들이 Cocrates 내부의 실제 스킬 명세 파일(.opencode/skills/*/SKILL.md) 속에서 어떻게 정교한 행동 지침(Workflow)으로 구현되어 작동하는지 그 속살을 들여다보겠습니다.


🧗‍♂️ Education Skill: No Spoon-feeding과 3블록 엔진

  • 실제 파일 경로: .opencode/skills/education/SKILL.md

Education 스킬의 최상위 헌법은 명확합니다. "절대 한 턴에 완전한 정답이나 전체 해결책을 떠먹여 주지 않는다(No Spoon-feeding)." 사용자가 지식을 수동적으로 흡수하는 상태를 방지하기 위해, 모든 응답은 철저하게 3블록 구조에 맞춰 생성됩니다.

### 💡 [Concept Briefing]
- 핵심 원리를 단 1~3문장 이내의 일상적인 비유로 전달 (전체 분량의 20% 이하)

### 💻 [Thought Lab]
- 일부러 결함(Flaw)을 심어두었거나 비어있는 불완전한 실용 예시/시나리오 제시

### 🔥 [MISSION]
- 사용자가 다음 턴에 생각하고 답해야 할 '정확히 하나'의 인지적 과제

Cocrates는 미션의 정답이나 다음 단계의 힌트를 절대 미리 스포일러하지 않으며, 사용자가 주도적으로 빈칸을 채울 때까지 끈질기게 대화를 불완전한 상태(Incomplete State)로 묶어둡니다.

📊 Bloom's 2D Matrix 기반 난이도 조절

또한, Cocrates는 블룸의 분류학을 Y축(인지 과정: 기억 → 창조)과 X축(지식 차원: 사실 → 메타인지)이 결합한 2차원 매트릭스로 다룹니다.

  • 동시 격상 금지: 인지 깊이와 지식 차원의 두 축을 동시에 올리지 않습니다. 같은 지식 차원 내에서 인지 깊이를 한 단계 높이거나, 같은 인지 과정에서 지식 차원을 넓히는 방식을 취합니다.
  • Push & Pull 전략: 기본적으로 높은 수준의 도전을 툭 던져 사용자가 지식을 끌어당기게 만들지만(Pull), 사용자에게 인지적 붕괴나 혼란이 감지되면 즉시 단계를 낮추어 징검다리를 놓아주는 상태(Push)로 유연하게 전환합니다.

💾 Knowledge Capture Skill: 오답과 무지를 박제하는 법

  • 실제 파일 경로: .opencode/skills/knowledge-capture/SKILL.md

미션을 해결하며 배운 통찰은 "정리해줘"라는 명령을 통해 kb/ 폴더 내에 마크다운 파일로 영구 저장됩니다. 이때 핵심 원칙은 "강의 노트처럼 길고 장황한 텍스트나 전체 코드는 일절 저장하지 않는다"는 것입니다. 나중에 뇌가 단서를 끄집어낼 수 있는 최소한의 단위만 기록합니다.

특히 이 스킬의 백미는 바로 ## Wrong Assumptions / Gaps 섹션입니다.

"무지의 기록." 내가 무엇을 새로 배웠는지보다, 내가 기존에 어떤 오개념을 가지고 있었고 어떻게 틀렸었는지를 박제하는 것이 장기 기억으로 가는 가장 강력한 도구이기 때문입니다.

🔄 지식 중복을 막는 병합 전략

새로운 파일을 무분별하게 양산하지 않습니다. 저장 요청이 들어오면 검색을 통해 동일 주제의 기존 KB가 있는지 확인하고, 만약 존재한다면 기존 내용을 덮어쓰지 않은 채 새로운 인사이트만 ## Update History와 함께 정교하게 추가합니다.


🕵️‍♂️ Reflection Skill: 가혹하지만 객관적인 면접관의 등장

  • 실제 파일 경로: .opencode/skills/reflection/SKILL.md

"평가해줘", "시험해줘"라는 요청이 들어오면, Cocrates는 친절한 코치의 가면을 벗고 엄격한 면접관 페르소나로 돌변합니다.

Reflection 스킬은 앞서 저장된 kb/{topic}.md 파일을 평가 기준으로 삼아 사용자의 뇌를 흔들기 시작합니다. 단순히 "DIP의 정의가 무엇인가요?" 같은 암기식 질문은 사절입니다.

  • "이 원칙을 완전히 다른 도메인(예: 결제 시스템)의 예시를 들어 설명해 보세요."
  • "이 코드 시나리오에서 원칙이 깨지는 경계 조건은 어디인가요?"
  • "KB에 기록하셨던 과거의 그 '틀렸던 가정(Gap)', 지금 코드에서도 똑같이 실수하고 계시지 않나요?"

🛑 공백(Gap) 발견 시의 행동령: "가르치지 않는다"

Reflection 도중 사용자가 말문이 막히거나 모순을 보이면, Cocrates는 그 자리에서 강의를 시작하지 않습니다. 평가 단계의 본질을 흐리지 않기 위함입니다.

발견된 공백은 덤덤하게 ⚠️ 제대로 알지 못했던 것 리스트로 관찰 및 기록만 한 뒤, 세션 마무리에 이르러 "이 부분에 대해 별도의 교육 세션을 따로 오픈하시겠습니까?"라며 사용자의 동의를 구하는 정중한 제안으로 연결합니다.


📝 세 줄 요약

  1. Education 스킬은 3블록 구조(Briefing → Lab → MISSION)의 턴제 미션 시스템으로 사용자를 incomplete 상태로 묶어두며 능동적 사고를 강제합니다.
  2. Knowledge Capture 스킬은 요약본 생성을 거부하고, 사용자가 과거에 착각했던 오개념을 박제하여 회상 중심의 KB를 구축합니다.
  3. Reflection 스킬은 구축된 KB를 루브릭 삼아 가혹한 면접관 역할을 수행하며, 적용과 반례 검증을 통해 진짜 지식 영역을 발라냅니다.

🎬 다음 편 예고

"질문과 답변"이라는 긴밀한 흐름 속에서 인간의 메타인지를 극한으로 끌어올리는 Learning 파이프라인의 핵심 명세들을 모두 정복했습니다.

그렇다면 Cocrates Harness의 또 다른 거대한 축, '구조 기반 산출물 생성 활동'은 어떻게 돌아갈까요? "당장 멋진 보고서 한 장 써내라"는 사용자의 요구에 Cocrates는 왜 생성 버튼을 누르지 않고 아키텍처부터 설계하자며 빗장을 걸어 잠그는지, 다음 편에서 그 이유를 파헤쳐 봅니다!

"답을 아는 것과, 그 답이 무너지지 않도록 구조화하는 것은 완전히 다른 차원의 도달입니다."


이 시리즈는 Cocrates Harness 프레임워크를 소개합니다. Cocrates는 소크라테스식 대화로 사용자가 주도권을 잡고 성장하도록 설계된 에이전트 하네스입니다.