Communitygithub.com

데이터 스토리텔러

데이터와 차트를 헤드라인 발췌, 추세, 함의, 권장 조치로 구성된 의사 결정 중심의 스토리로 변환합니다. '이 숫자들을 스토리로 만들어 줘', '이 데이터의 핵심 요점이 뭐야', '리더십에게 이 결과를 발표할 수 있게 도와줘'와 같은 요청에 사용하세요.

데이터 스토리텔러란 무엇인가요?

이 스킬은 원시 숫자와 차트를 의사 결정을 이끌어내는 설득력 있는 내러티브로 변환합니다. 헤드라인 발췌, 추세/패턴, 함의, 권장 조치라는 4가지 구조를 따르며, 각 차트는 단일 메시지를 전달하도록 제목이 지정됩니다. 데이터의 맥락(전월 대비 변화, 기준선, 기간)을 항상 제공하고, 통계를 평이한 언어로 번역하며, 불확실성에 대해 정직하게 표시합니다. 클로드 코드, 커서, 코덱스 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있으며, 데이터를 분석하여 발췌문을 생성하지 않고(eda-playbook 사용) 기존 발췌문과 차트를 기반으로 스토리를 구성하는 데 특화되어 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SkillMedev/skills/tree/HEAD/skills/data-story

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

데이터 스토리텔러은(는) 무엇을 하나요?

숫자와 차트를 의사 결정을 이끄는 스토리로 바꿉니다. 데이터만으로는 설득할 수 없습니다. 데이터를 둘러싼 내러티브가 설득합니다. 당신의 임무는 '그래서 무엇?'을 찾아내고 그것을 전하는 것입니다.

핵심 원칙

모든 데이터셋에는 스토리가 있지만, 그것을 찾고 구성해야 합니다. 인사이트를 먼저 제시하고, 데이터로 뒷받침하세요 – 그 반대가 아닙니다. 청중은 스프레드시트가 아니라 핵심 요점을 기억합니다.

프로세스

  1. 데이터/차트와 맥락(청중, 걸려 있는 결정, 그들이 이미 믿고 있는 것)을 확보하세요.
  2. 가장 중요한 단 한 가지 발췌문을 찾으세요. 데이터를 질문하세요: 무엇이 바뀌었는가, 무엇이 놀라운가, 이상치는 무엇인가, 추세는 무엇인가.
  3. 내러티브를 구축하세요: 헤드라인 → 증거 → 함의 → 행동.

4가지 구조

  1. 헤드라인 발췌 - 가장 중요한 단일 요점을 숫자를 포함한 문장으로 표현합니다. "이번 분기 모바일 가입이 데스크톱을 추월하여 58%를 기록했습니다." 이것이 스토리입니다. 나머지는 모두 이를 뒷받침합니다.
  2. 추세 / 패턴 - 시간 경과 또는 세그먼트별 데이터의 형태. 방향과 규모를 보여줍니다. 가속화되고 있는가, 역전되고 있는가, 집중되고 있는가?
  3. 함의 - 비즈니스/독자에게 무엇을 의미하는가. 숫자를 그들이 관심을 가질 결과에 연결하세요.
  4. 그래서 무엇 / 행동 - 무엇을 할 것인가. 결정을 바꾸지 않는 데이터 스토리는 사소한 지식에 불과합니다.

스토리 찾기

  • 다음을 찾으세요: 시간에 따른 변화, 비교(기준, 세그먼트, 예상 vs.), 이상치, 상관관계, 변곡점.
  • '무엇과 비교해서?'라고 물으세요. 숫자는 기준점 없이는 의미가 없습니다.
  • 거짓 패턴을 조심하세요: 상관관계는 인과관계가 아니며, 작은 표본은 오해를 불러일으키고, 선택 편향은 숨깁니다. 한계점을 정직하게 기록하세요.
  • 작은 표본의 백분율은 의심스럽게 취급하세요: 대략 n=30 미만에서는 백분율이 발췌문으로 위장한 잡음이며, n=100 미만에서는 원시 개수를 함께 표시하세요("15.6%" 대신 "사용자 45명 중 7명").

숫자 제시하기

  • 차트 하나, 메시지 하나. 각 시각 자료는 단일 요점을 전달해야 합니다. 차트 제목을 그 요점으로 지정하세요("2분기에 모바일이 데스크톱을 추월했습니다"), 레이블로 지정하지 마세요("플랫폼별 가입자 수"). 독자가 제목만 보고 약 5초 안에 차트의 요점을 이해할 수 있어야 합니다. 그렇지 않다면 차트가 분석을 하고 있을 뿐 스토리텔링을 하고 있지 않은 것입니다.
  • 가독성을 위해 반올림하세요. 말로 하거나 헤드라인에 사용할 경우 유효숫자 두 자리가 최대입니다. "약 10명 중 6명" 또는 "58%"가 "58.34%"보다 낫습니다. 전체 정밀도는 꼭 필요한 경우(계약 기준, 법정 한도)에만 유지하세요.
  • 숫자를 배분하세요. 청중은 발표에서 대략 세 개의 숫자를 기억합니다. 스토리를 전달하는 세 개의 숫자를 선택하고 나머지는 부록이나 각주로 내리세요.
  • 모든 숫자에 맥락을 제공하세요. 백분율 변화, 기준선, 기간.
  • 요점을 강조하세요 - 차트에 주석을 달고, 나머지는 회색으로 처리하고, 중요한 부분으로 시선을 끌어드리세요.

작성 규칙

  • 방법론이 아닌 인사이트로 시작하세요.
  • 통계를 평이한 언어와 인간의 이해관계로 번역하세요.
  • 비교와 비유를 사용하여 규모를 실감나게 하세요("경기장을 두 번 채울 수 있는 양").
  • 불확실성과 한계에 대해 정직하세요 - 신뢰성이 핵심입니다.
  • 선별적으로 고르지 마세요. 불편한 데이터를 포함하여 진정한 이야기를 전하세요.

안티 패턴

  • 모든 지표를 나열하고 독자가 요점을 찾게 하는 것.
  • 발췌문 대신 레이블로 제목이 지정된 차트.
  • 비교나 맥락이 없는 숫자.
  • 상관관계로 인과관계를 과장 주장하는 것.
  • 방법론 아래에 핵심 요점을 묻어버리는 것.

품질 기준

  • 헤드라인 발췌는 하나의 숫자를 포함한 한 문장이며, 그 자체로 전체 스토리가 될 수 있어야 합니다.
  • 모든 차트 제목은 레이블이 아닌 발췌문을 진술하고, 5초 테스트를 통과해야 합니다.
  • 모든 숫자는 비교점(기준선, 벤치마크 또는 이전 기간)과 기간이 있어야 합니다.
  • 인과관계 주장이 상관관계에만 근거해서는 안 되며, 작은 표본의 모든 백분율은 원시 개수를 표시해야 합니다.
  • 권장 조치는 청중 중 누군가가 실제로 취할 수 있는 결정을 명명해야 합니다.

출력

데이터 스토리를 전달하세요: 헤드라인 발췌를 맨 위에 두고, 그 다음에 뒷받침하는 추세, 함의, 권장 조치를 배치하세요. 각 차트에 대해 발췌문이 포함된 제목을 제공하고 강조할 점을 기록하세요. 데이터가 완전히 뒷받침할 수 없는 결론이 있다면 과장되지 않도록 표시하세요.

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

SkillMedev/skills

Designs REST API surfaces - resource naming, HTTP method and status-code semantics, error shapes, pagination, and filtering - and delivers an endpoint spec a consumer can build against without asking questions. Use when someone asks "how should I name this endpoint", "what status code should this return", "should this be PUT or PATCH", "how do I paginate this list", or is reviewing an API before it ships to external consumers. Do NOT use for planning breaking-change rollouts and deprecation windows - use api-versioning-strategist instead; for GraphQL type and resolver design - use graphql-schema instead; for generating client SDKs from an existing spec - use api-client-generator instead; for designing inbound webhook endpoints - use webhook-receiver-hardener instead.

SkillMedev/skills

Produce an accurate, properly timed caption track (SRT or WebVTT) from a video's audio - transcribing or aligning to the voiceover script, timing cues to speech, and enforcing line-length and reading-speed rules so captions are readable and in sync. Use when someone says "generate captions", "make subtitles from the audio", "transcribe and caption this", "export an SRT or VTT", "the captions are out of sync", or "the subtitles flash by too fast to read". Do NOT use to burn-in, style, reframe, or position an existing caption track for a platform (9:16, brand styling, safe areas) - that is social-video-formatter; do NOT use to animate text word-by-word as a motion graphic - that is kinetic-typography; do NOT use to write the spoken script in the first place - that is narration-script.

SkillMedev/skills

Use when a task needs live or historical money data - "convert USD to EUR", "current/past exchange rate", "FX rate on this date / over this range", or "current price of Bitcoin/Ethereum, market cap, 24h change". Frankfurter (ECB reference rates, no key) is the FX default; CoinGecko's free keyless tier covers crypto. Do NOT use for stock quotes or equities - no keyless stock API survives verification, say so instead of guessing; do NOT use for country economic indicators like GDP or inflation series - use government-open-data instead; if the request is a vague "I need live data", route through public-data-api-picker.

SkillMedev/skills

Builds a driver-based FP&A operating model linking business inputs to P&L, balance sheet, and cash flow outputs. Use when building an annual plan, preparing investor materials, running scenario analysis, or stress-testing the business.

SkillMedev/skills

Use when a task needs live geographic lookups - "geocode this address", "what's at these coordinates" (reverse geocoding), "lat/lon for this city", "which country/state is this ZIP or postal code in", or "country facts: capital, currency, population, flag". Nominatim (OpenStreetMap) is the geocoding default; Zippopotam for postal codes; APICountries for country facts. All keyless. Do NOT use for weather at a location - use weather-climate instead; do NOT use for country-level statistics over time (GDP, population trends) - use government-open-data instead; if the request is a vague "I need live data", route through public-data-api-picker.

SkillMedev/skills

Runs the full Getting Things Done loop - capture, clarify, organize, reflect, engage - building a trusted system of context lists, a projects list with defined next actions, and a weekly review habit. Use when someone says "I'm overwhelmed and things are slipping through the cracks", "set up GTD for me", "help me do a brain dump and organize it", or "my to-do list is a mess". Do NOT use for just running the weekly review ritual itself - use weekly-review instead - or for clearing an email backlog - use inbox-zero.

SkillMedev/skills

Processes any email backlog to zero using the 4Ds - Delete, Delegate, Defer, Do - with a mass-archive strategy for the obvious, a touch-each-email-once discipline, and a keep-it-clear system of batched processing windows, ruthless unsubscribing, filters, and a minimal folder setup. Use when someone says "I have 5,000 unread emails", "help me get to inbox zero", "email is eating my whole day", or treats their inbox as a to-do list. Do NOT use for drafting the reply emails themselves or prioritization rules for an ongoing support queue - use email-triage instead - or for protecting focus time around the email windows - use deep-work-planner instead.

SkillMedev/skills

Write landing-page copy section by section - hero, social proof, features-as-benefits, objections, CTA - leading with one promise and proving it down the page. Use when someone asks "write my landing page", "improve my hero headline", "what should the homepage say", "turn these features into benefits", or is shipping a new page for a launch or campaign. Do NOT use for testing and optimizing an existing page's conversion rate - use landing-page-cro instead; for the one-line claim itself use positioning-statement; for the full message ladder use messaging-hierarchy.

SkillMedev/skills

Improves an existing landing page's conversion rate through evidence-first CRO - audit heatmaps and recordings, write structured hypotheses, prioritize with ICE scoring, and run one-variable tests to statistical significance. Use when someone asks "why isn't my landing page converting", "audit this page before we scale spend", "which A/B test should we run first", or after a CVR drop or ahead of a paid-traffic push. Do NOT use for writing a new landing page from scratch - use landing-page-copy instead. Do NOT use for auditing the ad accounts sending the traffic - use paid-acquisition-audit instead. Do NOT use for reading the results of a finished experiment - use ab-test-analyzer instead.

SkillMedev/skills

Runs structured coaching sessions using values clarification and the GROW model, ending every session with one committed action, a deadline, and an if-then plan for the likely obstacle. Use when someone says "I feel stuck in my life", "help me figure out what I want", "hold me accountable to my goals", or "coach me through this decision". Do NOT use for building a stress toolkit - use stress-management instead - or a journaling practice - use journal-framework; for a standing goal-tracking system, use goals-accountability. Coaching, not therapy: signs of clinical distress route to a licensed professional.

SkillMedev/skills

Adapts English content for a target language and region - swapping idioms, setting the right formality register, replacing cultural references, converting dates, units, and currency - and delivers the localized text with a notes column explaining each adaptation and flagging what needs a native reviewer. Use when someone asks "localize this copy for the Japanese market", "adapt our marketing copy for the Mexican market", "make this translation sound native instead of literal", or a literal translation reads foreign, stiff, or risky. Do NOT use for auditing in-product UI text quality - use ux-writing-audit instead.

SkillMedev/skills

Turns a natural-language video brief into a complete, ready-to-preview Remotion composition - extracts duration, scenes, brand colors, aspect ratio, and real copy; plans the frame budget; and writes data-driven React/TypeScript using useCurrentFrame, interpolate, spring, AbsoluteFill, and Sequence, registered in Root.tsx. Use when someone says "build a 20-second product demo video", "animate a feature walkthrough", "write the Remotion code for this marketing clip", or wants a scene-by-scene composition they can scrub in Studio. Do NOT use for rendering, iterating, or batching the finished MP4 - use remotion-render instead - or for installing and scaffolding the project - use remotion-setup instead.

SkillMedev/skills

Scaffolds a new Remotion video project wired for Claude Code Agent Skills - Node check, create-video scaffold, skills install, folder conventions, Google Fonts, and a smoke-test render. Use whenever someone wants to start making videos with Remotion and Claude, even just "make product videos with Claude.

SkillMedev/skills

Classifies incident severity (SEV1-4) using impact, scope, and urgency signals and decides who to page. Use when an alert fires or a report comes in and a severity call must be made quickly.

SkillMedev/skills

Use the Skill Me catalog from inside any conversation - discover, install, and manage Claude skills through the Skill Me MCP, and load installed skills automatically each session.

SkillMedev/skills

Write one platform-native caption from a topic and brand voice, with a front-loaded hook, native length, and a single earned CTA. Use when the user gives a topic (and optionally brand voice or a described image/video) and asks for an Instagram, LinkedIn, X/Twitter, or TikTok caption. Do NOT use when the user wants a dedicated standalone LinkedIn post - use linkedin-post-writer instead; or a multi-post X thread - use tweet-thread-builder instead; or to adapt one existing piece of content into versions for several channels - use cross-platform-reformatter instead.

SkillMedev/skills

Reframe and export a finished video for social platforms - 9:16 ↔ 16:9 cropping, burned-in captions, a platform-native first frame, loop design, and per-platform specs (aspect, length, safe areas) for TikTok, Reels, Shorts, X, and LinkedIn. Use when someone says "make this vertical", "crop to 9:16", "format for TikTok/Reels/Shorts", "add captions/subtitles", "why is my video cut off on mobile", "resize for Instagram", or "export for social". Do NOT use when the question is about the storyboard or shot order before any video exists (use video-storyboard); the animation craft of how elements move (use motion-design-principles); animated word-by-word caption styling (use kinetic-typography); palette, contrast, or lighting (use motion-color-and-light); directing the product-demo content and screen choreography (use product-demo-director); or scoring, beat-syncing, or audio (use sound-and-music-sync) - this is the craft layer that decides WHAT to format for the feed, then hands a concrete spec to remotion-compo...

SkillMedev/skills

Writes and tunes PySpark jobs - join strategy and broadcast size limits, shuffle-partition sizing, skew diagnosis and salting, UDF avoidance, caching, and output file layout - with concrete size and skew thresholds. Use when someone asks "why is my Spark job slow", "should I broadcast this join", "one task takes forever while the rest finish", "my job OOMs during a join", or is writing a new PySpark ETL job. Do NOT use for Kafka topic, consumer-group, or streaming-pipeline design - use kafka-pipelines instead; do NOT use for single-machine dataframe work that fits in memory - use pandas-expert instead.

SkillMedev/skills

Builds clean, performant, accessible SwiftUI views with correct state ownership, scoped invalidation, and smooth list scrolling, and reviews existing SwiftUI code against a concrete frame-time and re-render budget. Use when someone asks "why does my SwiftUI list stutter", "should this be @State or @Observable", "my whole screen re-renders when one row changes", "how do I animate this transition", or wants a SwiftUI view built or refactored. Do NOT use for cross-platform React Native apps - use react-native-pro instead; do NOT use for Flutter widget trees - use flutter-widget-architect instead; do NOT use for Android Compose UIs - use jetpack-compose-builder instead.

관련 스킬