본문으로 건너뛰기

EP11. 구조 기반 생성 스킬

Cocrates Generation Skills


Ep7부터 Ep10까지, 우리는 Cocrates의 내부 구조를 깊이 탐구했다. Agent가 어떻게 라우팅하는지, Skill이 어떻게 동작하는지, Architecture-Driven Generation의 원리와 Intent-To-Skill Routing의 메커니즘을 살펴봤다.

원리(Why)는 충분히 이해했다.

그렇다면 이제 질문이 바뀐다.

"원리는 알겠다. 그런데 Cocrates는 실제로 어떤 스킬들을 가지고 있고, 각각은 언제 어떻게 사용되는 걸까?"

오늘은 그 질문에 답한다. Ep11부터 Ep13까지는 구조 기반 생성 파이프라인을 구성하는 핵심 스킬들을 하나씩 해부한다. 오늘은 그중에서도 가장 중요한 4대 핵심 스킬과 전체 흐름을 조망한다.


🎯 "A를 생성해줘" — Cocrates의 내부 판단

Cocrates가 "A를 생성해줘"라는 요청을 받았을 때, 내부적으로 어떤 판단을 할까?

첫 번째 질문: "A를 생성하는 전용 스킬이 있는가?"

예를 들어, "블로그 시리즈를 생성해줘" 라고 요청했다면 blog-series-authoring 스킬이 있다. 있으면 그 스킬을 사용한다. 간단하다.

두 번째 질문: "전용 스킬이 없다면?"

이때 Cocrates는 spec-driven-generation이라는 범용 스킬로 폴백(fallback)한다. 이 스킬이 바로 구조 기반 생성 파이프라인의 핵심이다.

그런데 spec-driven-generation은 단순히 "자, 만들어!"가 아니다. 내부적으로 더 세밀한 판단을 한다.

세 번째 질문: "Spec이 명확한가?"

명확하지 않다면? 여기서부터 진짜가 시작된다. Cocrates는 사용자와 함께 다음 과정을 밟는다.

  1. ASR(Architecturally Significant Requirements) 식별 — 이 생성물의 구조에 영향을 미치는 핵심 요구사항이 무엇인지 찾는다.
  2. ADR 작성 — 각 ASR에 대해 후보 대안을 검토하고 결정을 내린다.
  3. Spec 작성 — 모든 ADR의 결정을 하나의 자체 완결적인 문서로 통합한다.
  4. Spec 완성 확인 — Spec이 충분히 구체화되었는지 검증한다.
  5. 비로소 생성 — Spec이 완성된 후에야 생성 단계로 넘어간다.

이 과정이 바로 Cocrates가 "일단 만들어 보고 보자"를 절대 허용하지 않는 이유다.


🏛️ 4대 핵심 스킬 — Cocrates 생성 엔진의 4개 기둥

Cocrates의 구조 기반 생성 파이프라인은 4개의 스킬로 구성된다. 이 4개가 Cocrates 생성 엔진의 핵심이다.

① adr-writing — 결정을 설계하라

ADR(Architecture Decision Record)은 단순한 의사결정 문서가 아니다. 하나의 Concern = 하나의 ADR이라는 원칙 아래, 설계 결정을 기록하고 감사 추적을 남긴다.

핵심 규칙:

  • 최소 2~3개의 실질적 대안을 비교한다.
  • 각 대안의 장단점을 명확히 분석한다.
  • 상태는 proposed → 승인 → approved로 전환된다.
  • 거절된 대안도 기록에 남긴다. *"왜 이 방법을 선택하지 않았는가"*가 미래의 소중한 자산이 된다.

왜 중요한가? ADR이 없으면 결정의 근거가 사라진다. 나중에 *"왜 이렇게 만들었지?"*라는 질문에 답할 수 없게 된다.

② spec-writing — 살아있는 명세서

Spec은 ADR의 결정을 통합한 자체 완결적인(Self-Contained) 문서다.

핵심 규칙:

  • ADR 링크 금지. Spec 하나만 읽으면 전체를 이해할 수 있어야 한다. *"ADR 3번을 보세요"*는 안 된다.
  • 검증 가능한 문장. *"성능이 좋아야 한다"*가 아니라 *"1초에 1000건의 요청을 처리해야 한다"*처럼 통과/실패를 판단할 수 있어야 한다.
  • 살아있는 문서. 요구사항이 변하면 Spec도 변한다. Spec은 한 번 쓰고 버리는 문서가 아니다.

③ spec-driven-generation — Spec만이 유일한 근거

생성 단계의 철칙은 단 하나다. Spec만이 유일한 근거다.

Spec에 없는 내용은 생성하지 않는다. AI의 직감이나 경험으로 추가하지 않는다. Spec이 부족하면 Spec을 보강할 뿐, 임의로 생성하지 않는다.

이 철칙을 지키기 위해 Cocrates는 ASR Readiness Gate를 운영한다. 8가지 보편 범주를 점검하여 Spec이 충분히 준비되었는지 확인한다.

Spec > 프롬프트. 프롬프트가 아무리 정교해도 Spec을 대체할 수 없다. Spec은 검증 가능하고, 변경 이력이 있으며, 재현 가능하다. 프롬프트는 휘발성이다.

④ spec-driven-verification — 생성의 끝이 아니라 순환의 시작

검증은 단순한 테스트가 아니다. 두 가지 목적을 가진다.

목적 1 — Deviation 확인: 생성된 결과물이 Spec과 일치하는가? 일치하지 않는 부분(Deviation)을 찾아낸다.

목적 2 — Undocumented ASR 발견: Spec에 명시되지 않았지만 생성 결과에 구현된 구조적 결정을 찾아낸다. 이것은 실패가 아니다. 오히려 Spec을 더 완벽하게 만들 기회다.

그리고 검증이 끝난 후에도 사용자 검토 게이트가 기다린다. AI가 검증했다고 끝이 아니다. 사용자가 최종 승인해야 한다.


💡 오늘의 깨달음: 스킬은 AI의 전문화된 역할

Cocrates의 스킬 시스템을 이해하면서 얻는 가장 큰 깨달음은 이것이다.

스킬은 AI에게 전문화된 역할을 부여한다.

  • adr-writing이 있다는 것은 AI가 아키텍트로서 결정을 설계할 수 있다는 뜻이다.
  • spec-writing이 있다는 것은 AI가 명세서 작성자로서 문서화할 수 있다는 뜻이다.
  • spec-driven-generation이 있다는 것은 AI가 엔지니어로서 명세에 따라 구현할 수 있다는 뜻이다.
  • spec-driven-verification이 있다는 것은 AI가 QA 엔지니어로서 검증할 수 있다는 뜻이다.

하나의 AI에게 모든 역할을 맡기는 것이 아니라, 역할별로 전문화된 스킬을 부여하고, 그 스킬이 정해진 절차에 따라 일한다. 이렇게 함으로써 일관된 품질과 예측 가능한 결과를 보장한다.


📌 오늘의 핵심

  1. Cocrates의 생성 파이프라인은 2단계 판단을 거친다. A 전용 스킬이 있는가? → 있다면 사용, 없다면 spec-driven-generation 폴백 → Spec이 명확한가? → 명확하지 않다면 ASR → ADR → Spec 작성 선행
  2. 4대 핵심 스킬이 생성 엔진의 4개 기둥이다. adr-writing(결정 설계), spec-writing(명세 통합), spec-driven-generation(명세 기반 생성), spec-driven-verification(검증과 순환)
  3. Spec > 프롬프트. 명세는 검증 가능하고, 변경 이력이 있으며, 재현 가능하다. 프롬프트는 휘발성이다.

스스로에게 질문하자.

  • Cocrates의 4대 핵심 스킬을 말할 수 있는가?
  • spec-driven-generation이 폴백으로 동작할 때의 내부 판단 과정을 설명할 수 있는가?
  • Spec이 ADR 링크를 금지하는 이유는 무엇인가?

🎬 다음 편 예고

오늘 우리는 Cocrates가 어떤 스킬들로 구조 기반 생성 파이프라인을 구성하는지 전체를 조망했다.

그런데 한 가지 의문이 남는다.

"만약 내가 필요한 스킬이 Cocrates에 존재하지 않는다면 어떻게 해야 할까?"

예를 들어, "정기적인 코드 리뷰 리포트를 생성하는 스킬" 이 필요하다고 해보자. Cocrates에 그런 스킬은 없다. 어떻게 해야 할까?

다음 편, Ep12의 주제는 바로 이것이다. "스킬 자체가 없을 때, 스킬을 만드는 방법."

Cocrates는 이것을 위해 generating-skill-creation이라는 메타-스킬을 제공한다. 스킬을 만드는 스킬의 더 깊은 세계로, 다음 편에서 함께 들어가 보자.


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