8만 개 가까운 스타를 받은 Superpowers 오픈소스 프로젝트: AI 코딩 어시스턴트에 운영체제를 장착하다
AI 코딩 어시스턴트는 때로는 시니어 엔지니어처럼 똑똑하지만, 때로는 키보드를 부수고 싶을 정도로 어리석게 행동할까요?
같은 Claude라도 한 순간에는 우아하게 코드를 리팩토링하다가, 다음 순간에는 “데모부터 만들어 보자”며 테스트 없이 하드코딩만 가득한 코드를 작성합니다. 코드만 실행되면 성공이라고 생각하죠. AI가 엔지니어링을 모를까요? 사실 잘 압니다. 다만 누군가 “언제 무엇을 해야 하는지” 알려주지 않았을 뿐입니다.
Superpowers 프로젝트는 바로 이 문제를 해결합니다. 이 프로젝트는 AI에게 “언제 무엇을 해야 하는지”를 가르치며, 적절한 순간에 적절한 방법론을 상기시켜주는 보이지 않는 테크리드(Tech Lead) 역할을 합니다.
이 프로젝트는 무엇인가요?
한 마디로 요약하면: AI 코딩 에이전트를 위한 “운영체제”로, 요구사항 명확화부터 코드 배포까지 전체 개발 프로세스를 아우르는 14개의 조합 가능한 스킬 모듈로 구성되어 있습니다.
비유하자면: AI의 코딩 능력은 “CPU”이고, Superpowers는 “운영체제”입니다. 계산 능력을 향상시키지는 않지만, 리소스를 어떻게 스케줄링하고, 작업을 어떻게 오케스트레이션하며, 오류를 어떻게 처리할지를 결정합니다.
시장에 나와 있는 “시니어 개발자처럼 행동해줘…” 같은 프롬프트 템플릿들과 달리, Superpowers는 강제적인 워크플로우 제약을 제공합니다.
핵심 워크플로우: “바로 시작하기”에서 “먼저 생각하기”로
Superpowers는 명확한 워크플로우 파이프라인을 정의합니다.
브레인스토밍(Brainstorming)
이 시스템에서 가장 중요한 설계입니다: AI는 직접 코드를 작성할 수 없습니다.
예를 들어 “사용자 인증 시스템을 만들어줘”라는 요구사항을 제시하면, AI의 첫 번째 반응은 에디터를 여는 것이 아니라 질문을 시작하는 것입니다:
- 이 인증 시스템은 어떤 로그인 방식을 지원해야 하나요?
- 예상 사용자 수는 얼마나 되며, 분산 세션을 고려해야 하나요?
- 기존 사용자 테이블이 있나요, 아니면 처음부터 설계해야 하나요?
강제 규칙: 설계가 확인되기 전까지는 구현 관련 스킬을 호출할 수 없습니다.
이는 흔한 골칫거리인 “요구사항이 명확하지 않은 상태에서 AI가 코드 작성을 시작하여 방향이 잘못되었음을 나중에 깨닫는” 문제를 해결합니다.
계획 작성(Writing Plans)
요구사항이 확인된 후, AI는 상세한 실행 계획을 작성합니다. 이 계획은 다음과 같이 구체적입니다:
- 각 단계에서 어떤 파일을 조작할지
- 각 단계에서 어떤 테스트를 작성할지
- 각 단계에서 어떤 명령어로 검증할지
- 각 단계의 커밋 메시지를 어떻게 작성할지
작업 단위는 2~5분 내에 완료할 수 있는 크기로 제한됩니다. 예를 들어:
- [ ] Step 1: 실패하는 테스트 케이스 작성
- [ ] Step 2: 테스트 실행하여 실패 확인
- [ ] Step 3: 최소 구현 코드 작성
- [ ] Step 4: 테스트 실행하여 통과 확인
- [ ] Step 5: 커밋
서브에이전트 기반 개발(Subagent-Driven Development)
이것이 Superpowers에서 가장 핵심적인 부분입니다.
계획이 작성된 후, 메인 에이전트는 직접 실행하지 않고 각 작업을 서브에이전트에게 할당합니다. 각 서브에이전트는 자신의 작업에 대한 컨텍스트만 알고, 작업 완료 후 소멸됩니다(컨텍스트 격리). 결과는 두 단계의 검토를 거칩니다: 먼저 스펙을 만족하는지 확인하고, 그 다음 코드 품질을 점검합니다.
왜 이런 설계를 했을까요? 컨텍스트 오염(Context Pollution)은 AI 오류의 주요 원인입니다. 전체 대화 기록을 상속받은 서브에이전트는 이전의 “가정”에 쉽게 휘둘릴 수 있습니다. 컨텍스트를 격리함으로써 오히려 품질을 높일 수 있습니다.
테스트 주도 개발(Test-Driven Development, TDD)
Superpowers의 TDD에 대한 집착은 거의 광적인 수준입니다.
핵심 규칙:
실패하는 테스트 없이 프로덕션 코드를 작성해서는 안 된다
테스트 전에 코드를 작성했다면? 삭제하고 처음부터 다시 시작하세요. 테스트를 보충하는 것으로는 충분하지 않습니다. 반드시 코드를 삭제하고 테스트부터 시작해야 합니다.
더 극단적인 것은 테스트 실패를 직접 확인하도록 요구한다는 점입니다:
- RED: 테스트 작성 → 실행 → 실패 원인 정확히 확인
- GREEN: 최소 코드 작성 → 실행 → 통과 확인
- REFACTOR: 리팩토링 → 실행 → 여전히 통과 확인
왜 “테스트 실패를 직접 확인”하는 것을 이렇게 강조할까요? 테스트가 실제로 오류를 포착할 수 있다는 것을 확인해야만 테스트를 신뢰할 수 있기 때문입니다. 때때로 테스트가 통과되는 이유가 코드가 올바르기 때문이 아니라 테스트 자체가 잘못 작성되었기 때문일 수 있습니다.
14개 스킬 모듈 개요
Superpowers는 방법론을 14개의 독립적인 스킬로 분해했습니다:
- 개발 프로세스 관련: brainstorming(요구사항 명확화 및 설계), writing-plans(실행 계획 작성), subagent-driven-development(서브에이전트 병렬 실행), executing-plans(일괄 실행 및 체크포인트), test-driven-development(TDD 사이클)
- 디버깅 및 품질 관련: systematic-debugging(4단계 근본 원인 조사), verification-before-completion(완료 전 검증), requesting-code-review(코드 리뷰 요청), receiving-code-review(리뷰 피드백 대응)
- 협업 및 브랜치 관리 관련: using-git-worktrees(병렬 개발 브랜치 관리), finishing-a-development-branch(브랜치 마무리 프로세스), dispatching-parallel-agents(병렬 서브에이전트 스케줄링)
- 메타 스킬: writing-skills(새로운 스킬 작성), using-superpowers(시스템 사용 가이드)
각 스킬에는 명확한 트리거 조건이 있습니다. 예를 들어 systematic-debugging의 트리거 조건은 “버그, 테스트 실패 또는 예상치 못한 동작을 만났을 때”입니다. AI는 자동으로 상황을 인식하여 수동으로 트리거할 필요 없이 해당 스킬을 사용합니다.
체계적 디버깅: 추측하지 말고 찾아라
systematic-debugging 스킬은 Superpowers의 핵심 철학을 잘 보여줍니다: 즉흥적인 추측보다 체계성이 우선입니다.
버그를 마주쳤을 때, 네 가지 엄격한 단계를 정의합니다:
- Phase 1 근본 원인 조사: 오류 메시지를 신중히 읽고, 문제를 신뢰성 있게 재현하며, 최근 변경 사항을 확인하고, 다중 컴포넌트 시스템에 진단 로그를 추가
- Phase 2 패턴 분석: 정상적으로 작동하는 유사한 코드를 찾고, 작동 버전과 오류 버전을 비교하며, 모든 차이점을 식별
- Phase 3 가설 및 검증: 단일 가설을 세우고, 최소 변경으로 가설을 검증하며, 한 번에 하나의 변수만 변경
- Phase 4 구현: 먼저 실패하는 테스트 케이스를 작성하고, 근본 원인(증상)을 수정하며, 수정이 효과적인지 검증
철칙: Phase 1을 완료하기 전까지는 어떤 수정 방안도 제시해서는 안 됩니다.
이는 흔한 안티패턴인 “추측해서 고치기(Guess-and-fix)”를 해결합니다. 많은 사람(심지어 AI도)이 오류 메시지를 보자마자 코드를 수정하기 시작하고, 안 되면 또 수정하면서 더 많은 버그를 도입합니다. Superpowers는 근본 원인을 먼저 찾은 후 손을 대도록 강제합니다.
세 가지 판단
판단 1: 이것은 AI 코딩이 “장난감”에서 “엔지니어링”으로 발전하는 핵심적인 한 걸음이다
현재의 AI 코딩 도구는 두 가지 모드가 있습니다: Copilot 모드(당신이 작성하고 AI가 완성해주는, 매우 똑똑하지만 단편적인)와 에이전트 모드(요구사항만 말하면 직접 결과물을 만들어주는, 매우 화려하지만 품질이 불안정한).
Superpowers는 에이전트 모드를 엔지니어링화합니다. “어떻게 코드를 작성할지”가 아니라 “프로세스를 어떻게 진행할지”를 정의합니다. AI에게 코딩을 가르치는 것보다 훨씬 어렵지만, 그만큼 가치도 큽니다.
판단 2: 서브에이전트 아키텍처는 에이전트 협업의 방향성을 나타낸다
하나의 AI가 모든 일을 하는 것은 과도기적인 형태입니다. 미래는 반드시 다중 에이전트 협업이 될 것입니다: 일부는 작업 분해를 담당하고, 일부는 실행을 담당하며, 일부는 검토를 담당할 것입니다. Superpowers의 서브에이전트 아키텍처는 바로 이 방향성의 초기 실천 사례입니다.
다만 현재 이 메커니즘은 하부 플랫폼에 대한 요구사항이 있으며(서브에이전트 지원 필요), Claude Code에서 가장 좋은 효과를 발휘하고 다른 플랫폼들은 아직 적응 중입니다.
판단 3: 이 방법론은 인간에게도同样한 가치가 있다
Superpowers의 스킬 문서를 자세히 읽어보면, 이것이 단순히 “AI에게 어떻게 일하게 할지”만 설명하는 것이 아니라 “어떻게 올바르게 일해야 하는지”를 설명하고 있다는 것을 알 수 있습니다. TDD, 체계적 디버깅, 요구사항 명확화…这些都是 소프트웨어 엔지니어링이 수십 년간 축적해온 최고의 실천 방법입니다.
Superpowers는 본질적으로 소프트웨어 엔지니어링 방법론을 실행 가능한 형태로 코딩한 것입니다. AI 코딩을 사용하지 않더라도, 이 방법론은 배울 가치가 충분합니다.
사용 방법
Superpowers는 여러 플랫폼을 지원합니다:
Claude Code(권장):
/plugin install superpowers@claude-plugins-official
Cursor:
/add-plugin superpowers
Codex / OpenCode: 수동 설정이 필요하며, 저장소 문서에 따라操作해야 합니다.
설치 후 새 세션에서 요구사항을 제시해보세요. AI가 바로 코드를 작성하는 대신 명확화 질문을 시작한다면, Superpowers가 정상 작동하고 있는 것입니다.
마무리하며
소프트웨어 엔지니어링의 본질은 항상 “언제 무엇을 해야 하는지”에 있습니다. 코드 작성은 그중 한 부분일 뿐입니다.
Superpowers는 이 단순한 진리를 실행 가능한 규칙 집합으로 만들었습니다. AI의 코드 생성 능력을 향상시키지는 않지만, AI의 능력을 활용하는 방식을 향상시킵니다—마치 최고의 운동선수가 최고의 코치와 만나야 비로소 자신의 잠재력을 완전히 발휘할 수 있는 것처럼 말입니다.
AI를 이용해 진지하게 소프트웨어 개발을 하고 싶다면, 단순히 “데모나 한번 만들어봐”라고 하지 않고 싶다면, Superpowers를 한번 시도해볼 가치가 있습니다. 8만 개에 가까운 스타를 받은 커뮤니티의 선택은 결코 틀리지 않았을 것입니다.
참고