README.ko.md

April 2, 2026 · View on GitHub

Swing logo

Swing

Stars Version License Commits Twitter
6 Firewalls Claude Code Codex CLI PRs Welcome

English · 한국어 (Korean)

Swing 터미널 설치 화면

너의 AI는 전혀 swing 하고 있지 않아.

안전한 기본값만 고르고, 반박 대신 동의하고, 출처를 밝히지 않고, 추론을 숨기고, 모든 게 잘 될 거라 가정한다. 여섯 가지 인지 실패. 여섯 개의 방화벽. Make it swing.

npx skills add thestack-ai/swing-skills --all

Claude Code 전용 | Agent Skills 오픈 표준으로 다른 AI 에이전트 호환 Created by @thestack_ai


차이를 확인하세요

Before: 기본 AI 리서치

당신: SQLite가 동시 유저 1000명인 앱에 적합한가요?

AI: 아뇨, SQLite는 고동시성 애플리케이션에 적합하지 않습니다. 프로덕션 워크로드에는 PostgreSQL이나 MySQL을 사용하세요.

After: swing-research 적용

당신: /swing-research SQLite가 동시 유저 1000명인 앱에 적합한가요?

AI: 가능합니다. 단, 조건이 있습니다. 동시 유저 1000명 ≠ 동시 쓰기 1000건. 일반적인 웹 앱에서 이 규모면 동시 쓰기 트랜잭션은 ~30건입니다. SQLite는 WAL 모드에서 ~120 쓰기 트랜잭션/초를 처리합니다 (검증: sqlite.org 벤치마크 + Expensify 프로덕션 사례 — SQLite로 1000만+ 유저 서빙). 진짜 제약은 유저 수가 아니라 ~100 동시 writer 이상에서의 쓰기 경합입니다.

출처: 🏛️ sqlite.org WAL 문서, 🛡️ Expensify 엔지니어링 블로그 (2024), ⚠️ HN 토론 (교차 확인됨)

기본 응답은 잘못된 답을 자신 있게 내놨습니다. 스킬은 출처 검증을 강제하여 반대 — 그리고 정확한 — 결론에 도달했습니다.

Before: 기본 AI 코드 리뷰

당신: 이 JWT 인증 모듈을 리뷰해줘

AI: 코드 구조가 잘 되어 있습니다. 주석을 좀 더 추가하고 TypeScript를 쓰면 타입 안전성이 올라갈 것 같습니다. 일부 변수명 개선 여지가 있습니다.

After: swing-review 적용

당신: /swing-review 이 JWT 인증 모듈을 리뷰해줘

AI: Steel-man: JWT 기반 무상태 인증은 수평 확장을 위해 선택됨. 15분 액세스 + 7일 리프레시 분리는 보안과 UX의 균형.

🔴 Critical: 리프레시 토큰 로테이션 없음. 탈취된 토큰으로 7일간 탐지 불가 상태로 접근 가능. 수정: 토큰 패밀리 체인 로테이션 구현.

🟠 Major: Rate limiting이 인메모리 Map() 사용. 재시작 시 초기화, 멀티 인스턴스 배포에서 우회됨. 수정: Redis + TTL로 이전.

판정: 조건부 통과 — 토큰 로테이션 수정 후 배포 필수.

기본 응답은 아무것도 못 찾았습니다. 스킬은 Critical 보안 취약점을 발견했습니다.


6가지 실패, 6개 방화벽

인지 실패증상방화벽강제하는 것
조기 결론AI가 모호한 요청을 즉시 실행swing-clarify실행 전 구조화된 명확화
환각검증 없이 주장swing-research출처 추적, 교차 검증, S/A/B/C 소스 등급제
고착 편향첫 번째 "뻔한" 답에 고정swing-options확률 가중치 5개 옵션 + 비관습적 대안 강제
확증 편향반론 대신 동의swing-reviewSteel-man 후 3벡터 공격. "괜찮다"는 구조적으로 불가
블랙박스 사고근거 없이 결론만 제시swing-trace가정 목록, 신뢰도 분해, 최약점 분석
낙관 편향계획이 성공할 거라 가정swing-mortem실패 가정 후 역추적, 5개 시나리오 + 회로 차단기

스킬

swing-clarify

모호한 요청에 대한 조기 실행을 방지합니다.

요청 → 5W1H 분해 → 모호성 점수 → 명확화 또는 실행
  • 모든 요청을 6개 차원으로 분해: What, Who, Where, When, Why, How
  • 모호성 점수(0-6) — 명확한 요청은 즉시 진행, 모호한 요청은 최대 3개 질문
  • 모든 질문에 객관식 옵션과 기본 가정을 명시
  • 체인의 맨 처음에 실행하도록 설계
사용: /swing-clarify 인증 시스템 만들어줘

swing-research

4단계 검증 리서치 파이프라인. 반환각 방어.

분해 → 검색 & 수집 → 교차 검증 → 합성
  • 모든 주장은 인용 가능한 출처에 추적 가능해야 함 — 아니면 Unverified 표시
  • 소스 등급: S(학술/스펙), A(공식 문서), B(커뮤니티 — 경고 표시), C(일반)
  • 교차 검증: 핵심 주장은 2개 이상 독립 출처 필요 (같은 원본 재작성은 불인정)
  • 적응적 깊이: 좁은 질문 2-3쿼리, 넓은 조사 8+쿼리
사용: /swing-research 모바일 백엔드에 gRPC가 REST보다 나은가?

swing-options

고착 편향 방어. 확률 가중치 옵션 생성기.

  • 기본 5개 옵션, 각각 전형성 존 배정 (Conventional → Wild card)
  • 최소 1개는 비관습적/와일드카드 존에서 — AI가 평소 억제하는 아이디어
  • Hidden Assumptions 섹션: "뻔한" 답이 뻔해 보이는 이유를 명시적으로 해부
  • 제약 조건 기반 의사결정 매트릭스 + 사용자가 놓친 1개 숨겨진 기준
사용: /swing-options 실시간 리더보드에 어떤 데이터베이스?

swing-review

확증 편향 방어. 구조화된 악마의 변호인.

  • Steel-man 우선: 공격 전에 현재 접근법의 최강 정당화를 먼저 명시
  • 3개 독립 벡터: 논리적 건전성 / 엣지 케이스 공격 / 구조적 무결성
  • 심각도 분류: Critical(반드시 수정) / Major(수정 권장) / Minor / Note
  • Critical/Major는 반드시 트레이드오프 분석 포함 대안 제시
  • 명시적 판정 기준: 완화 불가 Critical = FAIL
사용: /swing-review 3인 스타트업에서 Kubernetes를 선택했다

swing-trace

블랙박스 방어. AI 추론을 투명하게.

  • 가정 목록: 모든 가정 번호 매기기, 중요도/검증가능성 평가
  • 결정 트리: 각 분기에서 어떤 대안을 고려했고 왜 기각했는지
  • 신뢰도 분해: 전체 신뢰도를 하위 구성요소로 분해 + 근거
  • 최약점: 하나의 가정이 틀리면 결론이 가장 크게 바뀌는 지점
  • 대안 결론: "만약 [최약 가정]이 틀리면, 결론은 [X]로 바뀐다"
사용: /swing-trace 이 프로젝트에 마이크로서비스를 추천하는 이유는?

swing-mortem

낙관 편향 방어. 전향적 실패 분석.

  • "6개월 후, 이 계획은 완전히 실패했다. 무엇이 잘못됐는가?"
  • 5개 카테고리별 실패 시나리오: 기술/조직/외부/시간/가정
  • 가능성 x 영향도 매트릭스 → 상위 3개 집중 분석
  • 선행 지표: 각 상위 리스크의 측정 가능한 조기 경보 신호
  • 회로 차단기: 멈추고 방향을 바꿔야 할 구체적 트리거 조건
사용: /swing-mortem Q3에 모놀리스를 마이크로서비스로 마이그레이션 예정

어떤 스킬을 써야 할까?

일상 사용 (주력)

상황스킬예시
요청이 모호하거나 암묵적 가정이 있을 때swing-clarify"인증 시스템 만들어줘" → SSO? RBAC? OAuth? 명확화
기술 조사 또는 사실 검증swing-research"모바일에 gRPC가 REST보다 나은가?"
코드, 아키텍처, 결정 리뷰swing-review"3인 스타트업에서 Kubernetes를 선택했다"

중요한 순간

상황스킬예시
옵션 사이에서 선택할 때swing-options"실시간 리더보드에 어떤 데이터베이스?"
프로젝트 착수 전 리스크 제거swing-mortem"Q3에 마이크로서비스 마이그레이션 예정"

심층 분석

상황스킬예시
AI가 왜 그렇게 추천하는지 알고 싶을 때swing-trace"이 프로젝트에 왜 마이크로서비스?"
전체 감사 추적이 필요할 때swing-trace --full아키텍처 결정 기록

추천 체인

  • 모든 작업: swing-clarify → [다른 스킬] (항상 명확화 먼저)
  • 기술 의사결정: swing-clarifyswing-optionsswing-researchswing-review
  • 아키텍처 리뷰: swing-traceswing-review
  • 프로젝트 킥오프: swing-mortemswing-options (완화책용)

작동 구조

AI의 기본 추론:

  [질문] ──→ [첫 번째 그럴듯한 답] ──→ [그대로 사용]


Swing 적용 시:

  [요청]

       ├──→ swing-clarify ──→ "정확히 뭘 원하시나요?"  (조기 결론 방지)

       ├──→ swing-options ──→ "선택지가 전부 뭐야?"  (고착 방어)

       ├──→ swing-research ──→ "이거 진짜야?"  (환각 차단)

       ├──→ swing-trace ──→ "왜 이걸 믿어?"  (가정 노출)

       ├──→ swing-review ──→ "뭐가 잘못됐어?"  (확증 편향 제거)

       └──→ swing-mortem ──→ "어떻게 실패해?"  (낙관 편향 방어)

각 방화벽은 독립적 — 하나만 쓰거나, 체이닝 가능.


왜 스킬인가?

이 지시를 CLAUDE.md나 시스템 프롬프트에 붙여넣을 수도 있습니다. 하지만:

  1. 컨텍스트 효율성 — 스킬은 트리거될 때만 로드됩니다 (~100 토큰 스캔, 호출 시에만 전체 지시). 시스템 프롬프트는 매 메시지마다 토큰 비용을 지불합니다.
  2. 조합 가능성 — 스킬은 체이닝됩니다: swing-clarifyswing-researchswing-review. 단일 프롬프트는 선택적 호출이 불가능합니다.
  3. 이식성npx skills add는 Claude Code, Cursor, Copilot에서 동작합니다. 시스템 프롬프트는 하나의 도구에 종속됩니다.
  4. 커뮤니티 — 스킬은 공유, 포크, 개선할 수 있습니다. dotfiles의 프롬프트는 본인만 도움됩니다.

설치

빠른 설치 (npx)

npx skills add thestack-ai/swing-skills --all

개별 설치

npx skills add thestack-ai/swing-skills@swing-clarify
npx skills add thestack-ai/swing-skills@swing-research
npx skills add thestack-ai/swing-skills@swing-review
npx skills add thestack-ai/swing-skills@swing-options
npx skills add thestack-ai/swing-skills@swing-trace
npx skills add thestack-ai/swing-skills@swing-mortem

수동 설치

git clone https://github.com/thestack-ai/swing-skills.git
cp -r swing-skills/skills/* ~/.claude/skills/

프로젝트별 설치

cp -r swing-skills/skills/swing-review .claude/skills/

호환성

플랫폼상태
Claude Code완전 지원
Cursor호환 (Agent Skills 표준)
GitHub Copilot호환 (Agent Skills 표준)
Codex CLI호환 (Agent Skills 표준)

라이선스

MIT License. LICENSE 참조.


Swing by @thestack_ai — AI를 위한 6개의 인지 방화벽.