본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 05. 19. 22:56

MBTI 16가지 성격 유형이 토론하게 만드는 Claude Code 플러그인 『16-minds』를 만들었다

요약

Claude Code의 subagent 기능을 활용하여 16가지 MBTI 성격 유형이 서로 토론하게 만드는 플러그인 '16-minds'를 소개합니다. 이 도구는 단일 모델의 평균적이고 무난한 답변에서 벗어나, 다양한 인격의 편향된 의견과 그 사이의 충돌을 통해 더 깊이 있고 입체적인 통찰을 제공합니다.

핵심 포인트

  • Claude Code의 subagent 기능을 사용하여 16가지 MBTI 인격을 병렬로 소환함
  • 단일 모델의 뭉뚱그려진 답변 대신, 다양한 관점의 충돌과 구조화된 합의안을 도출함
  • 특정 유형 지정, 인원 제한, 출력 깊이(light/middle/heavy) 조절 등 다양한 명령어와 옵션 지원
  • 코드 리뷰, API 설계 검토, 아이디어 도출 등 다각도의 분석이 필요한 작업에 최적화

Claude에게 코드 리뷰를 부탁하면 무난하고 평균적인 답변이 돌아온다.

"대체로 문제없어 보입니다만, ◯◯에는 주의가 필요할지도 모르겠습니다."

곤란하지는 않지만, 가슴에 와닿지는 않는다. 파장을 일으키지 않는 스타일.

아이디어 도출도 마찬가지로 현실적이지만, 엉뚱한 아이디어 사이의 중간 지점 같은 것이 좀처럼 나오지 않는다.

내가 정말로 원하는 것은, 입장이 다른 인간들이 진지하게 부딪힌 뒤의 "아, 그 관점에서 보면 이거 위험한 거 아냐?"", "이 아이디어 대박인데?" 와 같이, 토론의 잔해 속에서 건져 올릴 수 있는 발견이었다.

그래서 "아, MBTI의 모든 인격으로 토론하게 하면 되겠구나"라고 문득 생각이 떠올랐고, Claude Code의 subagent 기능을 사용하여 16가지 유형의 인격을 병렬로 소환해 토론하게 하는 플러그인을 만들었다. 그것이 16-minds이다.

이미지:

리포지토리는 다음과 같습니다.

사용자: /minds 이 API 설계, 장기적으로 파탄 나지 않을까?
│
▼
...

돌아오는 답변이 "16명분의 편향된 의견의 덩어리" + "그것을 구조화한 착지안"이 되기 때문에, Claude 단독으로 물었을 때의 "뭉뚱그려진 느낌"이 사라진다.

명령어는 3개. 시그니처는 다음과 같다:

/mind <type> [--mode=light|middle|heavy] <topic>
/pair <a> <b> [--mode=light|middle|heavy] <topic>
/minds [--mode=light|middle|heavy] [--types=a,b,...] [--n=N] [--save] [--out=<path>] <topic>

각각의 역할:

명령어용도병렬도주요 사용처
/mind1가지 유형의 의견만 원할 때1특정 인격에 집중해서 묻고 싶을 때
/pair2가지 유형이 디베이트 (입론 → 반론 → 재반론/착지)2대립 구조를 명확히 보고 싶을 때
/minds16가지 유형 전원 소환 + 합의최대 16다양한 관점을 한꺼번에 모아 구조화하고 싶을 때
옵션대응기본값설명
--mode=light|middle|heavy모든 명령어middle출력의 깊이 (후술)
--types=a,b,.../minds전 16가지 유형쉼표로 구분하여 대상 유형을 좁힘
--n=N/minds없음목록 순서의 앞 N개로 제한 (--types 미지정 시에만 적용)
--save/mindsoffOutputs/<timestamp>-minds-<mode>.md에 결과 저장
--out=<path>/minds없음저장 위치를 명시적으로 지정 (지정하면 --save도 자동으로 활성화)

--types가 자주 사용된다. 예를 들어 "논리계 3명만 소환"하는 것처럼 무게감을 조절하고 싶을 때 편리하다:

/minds --types=intj,intp,entj 다음에 채용할 DB 어떤 게 좋을까
/minds --mode=heavy --types=intj,enfp,istp 이 아키텍처 안 리뷰해줘
/minds --n=4 아이디어 도출을 위한 워밍업 액티비티 생각해줘
...
모드1가지 유형의 출력전체 플로우용도
light4행 (score / stance / axis / concern)Phase 1만 수행다양성을 빠르게 확인 · 토큰 절약
middle (기본값)입장 + 이유 + watchpointPhase 1 → 2 → 3 (합의)첫인상을 충족하는 표준 경로
heavy+ 반론 라운드 + 합의 재작성Phase 1 → 2 → 3 → 4 → 합의 (최종)무거운 의사결정 · 기사 소재

light는 Phase 1의 표만으로 끝나고, middle은 합의까지, heavy는 16명이 반론 라운드를 거쳐 합의를 다시 쓰는 단계까지 돌아간다. 무게와 해상도의 트레이드오프 (trade-off)를 호출 측에서 선택할 수 있도록 설계했다.

성격 유형을 다루는 이상, 최소한 "누가 누구인지"에 대한 지도는 있는 편이 좋다.

그룹유형캐릭터 경향
분석가 (NT)INTJ / INTP / ENTJ / ENTP논리・전략・반증・전제에 의문을 제기함
외교관 (NF)INFJ / INFP / ENFJ / ENFP의미・가치・사람・이야기
관리자 (SJ)ISTJ / ISFJ / ESTJ / ESFJ실증・전통・책임・전례
탐험가 (SP)ISTP / ISFP / ESTP / ESFP체험・실물・지금 이 순간

/minds를 한 번 실행하면, 이 4개 그룹으로부터 16명분의 의견이 돌아온다.

middle 모드는 Phase 3까지, heavy는 Phase 4 → 다시 쓰기(rewriting)까지 실행된다.

수수한 부분이지만, 아마 여기가 가장 중요하다.

"가치관 벡터 표"와 같은 중앙 집중식 데이터 구조는 갖지 않는다. agents/intj.md의 Markdown 파일에 인지 기능・가치관・강점・약점・말투・전형적인 표현을 전부 직접 적어두었다.

별도 파일로 구조화하고 싶은 마음은 있지만, 그렇게 하면 agent 정의와 이중 관리(double management)가 되어 반드시 붕괴된다.

/minds는 최대 16개 병렬(parallel)로 확장된다. 이를 순차적(sequential)으로 바꾸는 순간, 레이턴시(latency)가 현실적이지 않게 된다.

방식소요 시간 (개산)
순차t × 16 (1개 유형당 7초라면 2분 미만)
병렬max(t_i) ≒ 7~10초

Task 도구를 "동일 메시지 내에서 여러 번 호출한다"라는 Claude Code의 방식을 따르고 있을 뿐이지만, 이것을 할 수 없으면 플러그인으로서 성립하지 않는다.

agent 측에는 포맷 사양을 갖게 하지 않는다.

이유: 16개 유형 × 3개 모드 × 포맷 지정 = 48가지의 조합 폭발 (combinatorial explosion)

agent는 인격 표현에 전념하고, 포맷은 command 측에서 일원 관리한다. 이렇게 하면 "light 모드를 늘린다"와 같은 변경이 agent 16개 파일에 파급되지 않는다.

이것도 명시적인 금지 사항으로 적혀 있다.

요약이나 바꿔 말하기는 금지

INTJ의 건조하고 단정적인 말투나 ENFP의 "진짜 좋다"라는 텐션을 메인 assistant가 임의로 평준화하면, 인격을 16개로 나눈 의미가 없어진다. 있는 그대로 붙여넣는다.

처음에 이것을 적어두지 않았을 때, 합의(consensus) 파트가 매번 엉망으로 발산했다. LLM은 자유롭게 두면 진심으로 무엇이든 써버린다.

그래서 /minds의 합의는 아래의 4개 섹션으로 고정했다:

#섹션내용
1score 분포최저・최빈・최고를 한 문장으로
2주요 대립축 (2~3개)각 축의 대표 유형군을 병기
3간과하기 쉬운 관점 (1~3개)출처 유형을 명기
4타협안 후보 (2~3안)각 안에는 반드시 "찬성할 법한 유형/적성/리스크"를 붙임

이것이 있으면, Phase 1~2의 날것 그대로의 의견 덩어리가 반드시 "대립 → 사각지대 → 착지안"의 형태로 압축된다. 형식이 정해져 있는 것이 토론의 질을 담보한다.

사실, 이 Qiita 기사의 제목 후보도 /minds가 결정하게 했다. 완전한 로그는 리포지토리의 Outputs/qiita-title-discussion.md에 놓여 있다.

Phase 1의 표에서 재미있었던 4명을 발췌:

typescore제안 제목
ESTP5「Claude Code에 16인격을 동시 소환해 보았다. 회의는 순식간에 끝난다」
ENTP4「회의는 무능」이라는 말을 계속 들어온 우리가, AI로 16인격에게 회의를 시켜본 건에 대하여
INTJ4Claude Code에 16인격을 병렬 소환한다 ― MBTI×subagent로 「합의」를 설계하기
ISFP316명의 내가 말을 하기 시작한 밤의 이야기

같은 주제를 던져도 이 정도로 흩어진다. ESTP는 만점으로 올인한 "해 보았다" 느낌, ISFP는 시적이며 도구 이름조차 언급하지 않는 극단적인 해답이다.

합의 파트에서 나온 타협안은:

메인에 구체적인 훅(hook) + 숫자, 부제로 기술 키워드(KW)를 보강하는 2단 구성이 가장 놓치는 것이 적다.

과연, 하고 이 기사의 제목도 결과적으로 그 지침대로 되었다. 자신의 플러그인에게 자신의 기사 제목을 결정하게 하는 것은 생각했던 것보다 꽤 도움이 된다. (결국 채택하지 않아서 미안..)

16minds-plugin/
├── .claude-plugin/
│ └── plugin.json # 플러그인 메타 정보
...

agent는 16개 파일, command는 3개 파일. 그게 전부다.

구현 중 자주 넘어졌던 포인트.

문제점해결 방법
agent 측에 포맷 지시를 작성할 뻔함command 측에서 일원 관리하도록 함. 조합 폭발 (Combinatorial Explosion) 방지
...4섹션 고정 루브릭 (Rubric)을 도입하여 안정화

마지막의 '4섹션 고정'이 가장 효과적이었다. 프롬프트는 구조로 압도하라는 격언을 실천한 셈이다.

상황예시
설계 의사결정/minds 이 API 설계, 장기적으로 파탄 나지 않을까?
...

반대로 **'답이 하나로 정해지는 기술적 사실에 대한 조회'**에는 적합하지 않다. Math.PI 값을 16명에게 물어봐도 소용없다. 의견이 갈릴 여지가 있는 주제일 때 비로소 빛을 발한다.

/plugin marketplace add yukurash/16minds-plugin
/plugin install 16-minds

로컬에서 사용하고 싶다면:

git clone https://github.com/yukurash/16minds-plugin
/plugin marketplace add <클론한 경로>
/plugin install 16-minds

Claude의 리뷰가 무난해서 아쉽다고 느끼는 사람에게 잘 맞을 것 같다.

**'평균적으로 옳은 1명'보다 '편향된 16명의 싸움 속에서 건져 올리는 것'**이, 자신이 생각하지 못했던 각도를 만날 확률이 명확히 높다. 실제로 이 글을 쓰는 동안에도, 고민될 때마다 /minds에 던져서 시야를 넓힐 수 있었다.

리포지토리는 MIT 라이선스로 공개되어 있다. 마음이 내킨다면 한번 써보길 바란다.

이 플러그인은 Myers-Briggs Type Indicator® (MBTI®)의 권리자인 The Myers & Briggs Foundation, 그리고 16Personalities®를 제공하는 NERIS Analytics와 무관하며, 이들로부터 인가 또는 권장받은 것이 아닙니다. 본 기사 및 플러그인에서 '16가지 유형'이라고 표기하는 것은 심리학 일반에서 널리 참조되는 유형 표현으로서의 용법입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0