Files
ax_document/AX 강의 - 1/generate_all.py

684 lines
73 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from __future__ import annotations
import json
import re
from dataclasses import dataclass
from pathlib import Path
from typing import Any
ROOT = Path(__file__).resolve().parent
COMMON = ROOT / "_common"
def dump_json(path: Path, obj: Any) -> None:
path.write_text(json.dumps(obj, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
def dump_text(path: Path, text: str) -> None:
path.write_text(text.rstrip() + "\n", encoding="utf-8")
def prompt_text(*, title: str, category: str, seed_prompt: str) -> str:
return f"""너는 기업 AX 전환 교육용 PPT를 설계하는 교육 콘텐츠 디자이너다.
주제(폴더명/PPT 제목): {title}
구분: {category}
요청(시드 프롬프트):
{seed_prompt}
목표:
- 리더십부터 실무자까지 "왜 이 주제를 이해해야 하는지"를 먼저 설득한다.
- 30분 교육으로 진행 가능하도록 구성한다.
- 최소 20장 이상(권장 22장) 슬라이드가 나오도록 한다.
- 예시(상황/결과/체크리스트/사례)가 풍부해야 한다.
- 발표자가 그대로 읽어도 자연스럽도록 슬라이드 흐름(도입→핵심→사례→리스크→정리)을 만든다.
- 발표 중 **참여형 활동 없이 진행한다.** (참여자에게 '직접 해보라'는 지시 금지)
- 프롬프트/템플릿은 "참고 예시"로만 제시하고, 단계별 따라하기 구성은 만들지 않는다.
출력 형식(반드시 준수):
- 최종 출력은 JSON 한 덩어리만 출력한다. (설명/문장/코드블록 금지)
- JSON은 아래 스키마를 만족해야 한다: slides.schema.json
- slides[0]은 반드시 type="cover"로 둔다. (표지는 meta.title/meta.subtitle/meta.badge로 자동 생성됨)
- 슬라이드 타입은 다음만 사용한다:
- cover, agenda, section, bullets, two_column, process, table
작성 규칙:
- bullets는 4~7개 내로, 한 줄은 60자 내로.
- 별도의 prompt(코드블록) 슬라이드를 만들지 않는다. (참여형 활동 유도로 오해될 수 있음)
- table 슬라이드는 열 3~4개, 행 3~6개 정도로 간결하게.
- 보안/윤리/환각 등 리스크가 있는 주제는 "Do & Don't" 또는 "리스크/완화"를 반드시 포함한다.
- 마지막은 요약 + 다음 행동(오늘부터 1개 실행)으로 끝낸다.
"""
def wrapper_make_ppt_py() -> str:
return """from __future__ import annotations
import subprocess
import sys
from pathlib import Path
def main() -> None:
base = Path(__file__).resolve().parent
common = base.parent / "_common" / "make_ppt.py"
spec = base / "slides.json"
out = base / f"{base.name}.pptx"
subprocess.check_call([sys.executable, str(common), "--spec", str(spec), "--out", str(out)])
if __name__ == "__main__":
main()
"""
@dataclass(frozen=True)
class Topic:
category: str
title: str
ppt_title: str | None
seed_prompt: str
leader_why: list[str]
worker_why: list[str]
myth: list[str]
reality: list[str]
effects: list[str]
concepts: list[str]
framework_steps: list[str]
good: list[str]
bad: list[str]
mistakes: list[str]
prompt1_title: str
prompt1: str
prompt1_tips: list[str]
prompt2_title: str
prompt2: str
prompt2_tips: list[str]
table_title: str
table_columns: list[str]
table_rows: list[list[str]]
risks: list[str]
mitigations: list[str]
checklist: list[str]
rollout: list[str]
summary: list[str]
def _title_without_practice_prefix(title: str) -> str:
t = title.strip()
t = re.sub(r"^\s*실습\s*\d+\)\s*", "", t)
t = re.sub(r"^\s*실습\s*\d+\.\s*", "", t)
return t.strip()
def _case_bullets(*, prompt: str, tips: list[str], max_tips: int = 3) -> list[str]:
"""
Convert a 'prompt template' into non-practice, lecture-friendly bullets:
- what to specify, why it matters, and a short example snippet (not an instruction to run).
"""
lines = [ln.strip() for ln in str(prompt).splitlines() if ln.strip()]
role = lines[0] if lines else ""
ex = " / ".join(lines[1:3]) if len(lines) >= 3 else (lines[1] if len(lines) >= 2 else "")
out = []
if role:
out.append(f"요청의 역할/관점: {role.replace('너는 ', '').replace('야.', '').replace('', '')[:40]}")
out.append("핵심 입력 요소: 목적·대상·제약·데이터·출력 형식(표/목차/분량)")
out.append("출력 통제: 결론 먼저, 근거/리스크를 함께 요청하면 품질이 안정화됨")
if ex:
out.append(f"짧은 예시 문장(참고): \"{ex[:55]}\"")
for t in tips[:max_tips]:
out.append(f"포인트: {t}")
# ensure 5~7 bullets
return out[:7]
def _sanitize_text(s: str) -> str:
# Phrase-level first
s = s.replace("실습 없이", "참여형 활동 없이")
s = s.replace("실습 유도로", "참여형 활동 유도로")
s = s.replace("실습 위주의", "강의형 중심의")
# Word-level
s = s.replace("워크숍", "강의")
s = s.replace("실습", "적용")
return s
def _sanitize_obj(obj: Any) -> Any:
if obj is None:
return None
if isinstance(obj, str):
return _sanitize_text(obj)
if isinstance(obj, list):
return [_sanitize_obj(x) for x in obj]
if isinstance(obj, dict):
return {k: _sanitize_obj(v) for k, v in obj.items()}
return obj
def _notes_for(slide: dict[str, Any], meta: dict[str, Any]) -> str:
title = str(meta.get("title") or "")
st = str(slide.get("type") or "")
slide_title = str(slide.get("title") or "")
if st == "cover":
return (
f"오프닝(10초): 오늘 주제는 '{title}'입니다.\n"
"운영 안내(10초): 오늘은 참여형 활동 없이, 사례와 체크리스트 중심으로 정리합니다.\n"
"목표(10초): 왜 중요한지 → 핵심 원칙 → 사례 해설 → 리스크/대응 → 다음 행동까지 30분에 끝냅니다."
)
if st == "agenda":
return (
"전체 구성(20초): 5파트로 진행합니다.\n"
"- 1) 왜 필요한가\n- 2) 핵심 개념/원칙\n- 3) 사례로 이해하는 적용 가이드\n- 4) 리스크/체크리스트\n- 5) 요약 & 다음 행동\n"
"안내(10초): 참여형 활동 없이, 바로 가져가 쓸 수 있는 요약/체크리스트 중심입니다."
)
if st == "section":
return f"전환(10초): 이제 '{slide_title}' 파트로 넘어갑니다.\n안내(15초): 핵심 메시지를 먼저 잡고, 사례/체크리스트로 연결하겠습니다."
if st == "bullets":
bullets = slide.get("bullets") or []
top = " / ".join([str(x) for x in bullets[:2]]) if isinstance(bullets, list) else ""
return f"핵심(10초): '{slide_title}' 슬라이드입니다.\n포인트(20초): {top}\n연결(10초): 다음 슬라이드에서 구조(원칙/사례/리스크)로 이어갑니다."
if st == "two_column":
return f"의도(10초): 좌/우 대비로 메시지를 빠르게 정렬합니다.\n정리(10초): 오른쪽(권장/현실/완화) 기준으로 팀 표준을 잡는 것이 목표입니다."
if st == "process":
steps = slide.get("steps") or []
top = "".join([str(x) for x in steps[:3]]) if isinstance(steps, list) else ""
return f"핵심(10초): '{slide_title}'는 실행 흐름(루틴)을 제시합니다.\n요약(20초): {top}\n팁(10초): 이 순서를 팀 템플릿으로 고정하면 재작업이 크게 줄어듭니다."
if st == "table":
cols = slide.get("columns") or []
return f"읽는 법(15초): 표는 {', '.join([str(c) for c in cols[:4]])} 기준으로 비교합니다.\n포인트(15초): 수치/정의/기간을 같이 확인해 오해를 줄입니다."
return ""
def spec_for(t: Topic) -> dict[str, Any]:
display_title = t.ppt_title or t.title
meta = {
"title": display_title,
"subtitle": "AX 전환 교육 (30분 / 20+ Slides)",
"badge": f"{t.category} 트랙",
"duration_minutes": 30,
"audience": "리더십 + 실무자",
"tone": "명확하고 실용적, 예시 중심",
"footer_left": "AX 전환 교육 | 2026.02",
}
slides: list[dict[str, Any]] = [
{"type": "cover"},
{
"type": "agenda",
"title": "오늘의 흐름 (30분)",
"items": ["1) 왜 필요한가", "2) 핵심 개념/원칙", "3) 사례로 이해하는 적용 가이드", "4) 리스크/체크리스트", "5) 요약 & 다음 행동"],
},
{"type": "section", "title": "1. 왜 이 주제를 이해해야 하나", "subtitle": "리더십부터 실무자까지"},
{"type": "bullets", "chapter": "Part 1", "title": "리더십 관점: 왜 중요한가", "bullets": t.leader_why},
{"type": "bullets", "chapter": "Part 1", "title": "실무자 관점: 무엇이 달라지나", "bullets": t.worker_why},
{
"type": "two_column",
"chapter": "Part 1",
"title": "흔한 오해 vs 현실",
"left_title": "오해",
"left_bullets": t.myth,
"right_title": "현실",
"right_bullets": t.reality,
},
{"type": "bullets", "chapter": "Part 1", "title": "기대 효과(정량/정성)", "bullets": t.effects},
{"type": "section", "title": "2. 핵심 개념과 원칙", "subtitle": "이것만 지키면 실패 확률이 줄어든다"},
{"type": "bullets", "chapter": "Part 2", "title": "핵심 개념 6가지", "bullets": t.concepts},
{"type": "process", "chapter": "Part 2", "title": "실행 프레임워크(권장 루틴)", "steps": t.framework_steps},
{
"type": "two_column",
"chapter": "Part 2",
"title": "좋은 예 vs 나쁜 예 (짧은 비교)",
"left_title": "좋은 예",
"left_bullets": t.good,
"right_title": "나쁜 예",
"right_bullets": t.bad,
},
{"type": "bullets", "chapter": "Part 2", "title": "자주 하는 실수", "bullets": t.mistakes},
{"type": "section", "title": "3. 사례로 이해하는 적용 가이드", "subtitle": "참여형 활동 없이도 이해되는 예시 중심"},
{
"type": "bullets",
"chapter": "Part 3",
"title": f"사례 1) {_title_without_practice_prefix(t.prompt1_title)}",
"bullets": _case_bullets(prompt=t.prompt1, tips=t.prompt1_tips),
},
{
"type": "bullets",
"chapter": "Part 3",
"title": f"사례 2) {_title_without_practice_prefix(t.prompt2_title)}",
"bullets": _case_bullets(prompt=t.prompt2, tips=t.prompt2_tips),
},
]
if t.table_columns and t.table_rows:
slides.append(
{
"type": "table",
"chapter": "Part 3",
"title": t.table_title,
"columns": t.table_columns,
"rows": t.table_rows,
}
)
else:
slides.append(
{
"type": "bullets",
"chapter": "Part 3",
"title": "적용 가이드(발표자 설명용)",
"bullets": ["핵심은 목적·대상·제약·형식 4요소", "예시 1개를 함께 보여주면 팀 표준이 빨리 잡힘", "중요 수치/규정/고유명사는 반드시 원문 대조", "결론을 ‘가설’로 두고 근거를 요구"],
}
)
slides += [
{"type": "bullets", "chapter": "Part 3", "title": "결과 품질 검증 체크", "bullets": ["사실/수치/고유명사는 원문 대조", "누락된 가정이 없는지 질문", "대안 2개 이상 비교 요청", "리스크/반론을 함께 요청"]},
{"type": "section", "title": "4. 리스크 & 체크리스트", "subtitle": "안전하게, 팀 단위로 굴리기"},
{
"type": "two_column",
"chapter": "Part 4",
"title": "리스크와 완화 전략",
"left_title": "리스크",
"left_bullets": t.risks,
"right_title": "완화",
"right_bullets": t.mitigations,
},
{"type": "bullets", "chapter": "Part 4", "title": "체크리스트(현업 적용용)", "bullets": t.checklist},
{"type": "bullets", "chapter": "Part 4", "title": "팀 적용(롤아웃) 방법", "bullets": t.rollout},
{"type": "section", "title": "5. 요약 & 다음 행동", "subtitle": "오늘부터 1개만 실행"},
{"type": "bullets", "chapter": "Part 5", "title": "핵심 요약", "bullets": t.summary},
]
# Attach speaker notes (no practice language)
for s in slides:
s["notes"] = _notes_for(s, meta)
out = {"meta": meta, "slides": slides}
return _sanitize_obj(out)
def topics() -> list[Topic]:
return [
Topic(
category="마인드셋",
title="AI는 내 자리를 뺏지 않는다, 내 시간을 벌어준다",
ppt_title=None,
seed_prompt='"AI와 인간의 협업 마인드셋"을 주제로 PPT 개요를 짜줘. AI가 일자리를 대체한다는 공포를 해소하고, \'인간의 창의성 + AI의 속도\'가 결합된 미래 업무 모습을 시각화해줘. 신뢰감 있고 희망찬 톤으로 작성해줘.',
leader_why=["AI 도입은 비용이 아니라 생산성 투자: KPI로 설계해야 함", "AI 활용 격차’가 성과 격차로 전이됨(조직 리스크)", "업무 프로세스 재설계 없이 툴만 깔면 실패 확률↑", "현장 저항/두려움은 변화관리의 핵심 변수", "작은 성공(Small Win)을 조직적으로 확산해야 함"],
worker_why=["AI는 반복 작업을 줄이고 ‘판단/소통’에 시간을 돌려줌", "내 업무를 잘 설명할수록 AI가 더 잘 도와줌", "초안→검토 루틴이 생기면 품질이 안정적으로 개선", "‘나만의 템플릿’이 곧 개인 경쟁력이 됨", "일/학습 속도가 빨라져 성장 체감이 생김"],
myth=["AI가 들어오면 내 일은 사라진다", "AI는 정답을 준다", "AI는 내가 알아서 잘 쓸 수 있다", "AI는 전문가만 쓰는 도구다"],
reality=["업무는 ‘대체’보다 ‘재배치’: 반복↓ 판단/협업↑", "AI는 ‘초안’에 강하고 검증은 사람 몫", "좋은 입력(목적/맥락/형식)이 성과를 결정", "초보도 ‘템플릿’으로 빠르게 숙련 가능"],
effects=["반복 문서(메일/요약/보고) 시간 30~70% 단축", "회의 후속 액션 누락 감소(체크리스트화)", "아이디어 발산 속도↑ → 의사결정 리드타임↓", "교육/온보딩 콘텐츠 제작 속도↑", "개인 단위로 ‘일하는 방식’이 표준화됨"],
concepts=["AI는 ‘확률 기반’ 언어 생성기: 그럴듯한 오류 가능", "입력 품질 = 출력 품질(맥락/제약/형식)", "AI는 초안 작성자, 사람은 검토자/의사결정자", "작게 시작해 반복 개선(Iterative)", "템플릿화(재사용)로 ROI를 만든다", "검증/보안은 습관으로 내재화"],
framework_steps=["업무 1개를 고른다(반복/시간소모)", "목적·대상·제약을 3줄로 정리", "형식(표/목차/분량/톤)을 지정", "초안 생성→내가 검토·수정", "좋은 결과는 템플릿으로 저장/공유", "주 1회 개선(예시 추가/실수 제거)"],
good=["목적/대상/형식이 명시된 요청", "‘결론 먼저 + 근거’ 구조", "예시 1개 제공(스타일 고정)", "검증 질문(반론/리스크) 포함"],
bad=["‘보고서 써줘’ 같은 모호한 지시", "데이터/기간/대상을 누락", "형식 지정 없이 장문 생성", "검증 없이 그대로 복붙"],
mistakes=["AI 답을 정답으로 취급(검증 생략)", "업무 목적 대신 ‘기능’만 요구", "회사/고객 민감정보를 그대로 입력", "결과물 책임 소재를 AI에 전가", "템플릿을 안 남겨 매번 처음부터 다시 함"],
prompt1_title="실습 1) 내 업무 1개를 AI 협업’으로 재설계",
prompt1="너는 나의 업무 코치야.\n내 업무는 [업무명]이고, 목표는 [목표]야.\n현재 문제는 [시간이 오래 걸리는 이유/병목]이야.\nAI로 줄일 수 있는 단계 3개를 제안하고,\n각 단계별로 내가 입력해야 할 정보(체크리스트)를 만들어줘.\n출력: 표(열: 단계, AI가 할 일, 내가 할 일, 입력 체크리스트, 예상 절감시간)",
prompt1_tips=["업무를 ‘단계’로 쪼개기", "절감시간은 분 단위로 가정해보기", "입력 체크리스트를 바로 템플릿화"],
prompt2_title="실습 2) ‘검증 질문’ 붙여서 품질 올리기",
prompt2="너는 꼼꼼한 리뷰어야.\n아래 AI 초안을 검토해줘.\n- 사실/수치/고유명사 오류 가능성이 있는 부분 표시\n- 누락된 전제/가정 5개 질문\n- 반론/리스크 3개 제시\n- 더 명확한 버전으로 1회 리라이팅\n[초안]\n(여기에 초안을 붙여넣기)",
prompt2_tips=["‘누락 질문’이 품질을 올린다", "반론/리스크를 먼저 받으면 안전", "리라이팅은 1회만, 과도한 편집 방지"],
table_title="시간을 버는 대표 업무(예시)",
table_columns=["업무", "기존 소요", "AI 협업", "핵심 조건"],
table_rows=[["메일 초안", "15~25분", "3~7분", "대상/목적/톤"], ["회의록 요약", "30~45분", "8~15분", "결정/액션 추출"], ["보고서 1p 요약", "60분+", "15~25분", "결론 먼저/표"]],
risks=["성과 압박으로 ‘무작정 도입’", "검증 없이 복붙(품질 리스크)", "개인별 방식 난립(표준 부재)", "AI 과신/의존"],
mitigations=["작은 성공을 KPI로 설계", "검증 체크리스트를 기본 탑재", "템플릿/예시로 표준화", "사람 책임/승인 프로세스 명확화"],
checklist=["목적/대상/제약이 3줄로 정리됐나", "입력 데이터는 충분한가", "출력 형식(표/목차/분량/톤)을 줬나", "검증 질문(반론/리스크)을 붙였나", "좋은 결과를 템플릿으로 저장했나"],
rollout=["팀 공통 템플릿 5개부터 시작", "주 1회 ‘좋은 프롬프트 공유’ 10분", "성과는 시간절감/품질지표로 기록", "실패 사례도 같이 공유(학습)"],
summary=["AI는 대체자가 아니라 증폭기(Amplifier)", "핵심은 목적·맥락·형식 + 검증", "작게 시작해 템플릿으로 확장", "오늘 행동: 내 업무 1개를 단계로 쪼개고 템플릿 1개 만들기"],
),
Topic(
category="윤리/보안",
title="회사의 비밀을 지키며 AI와 대화하는 법",
ppt_title=None,
seed_prompt='"기업용 AI 보안 및 가이드라인" 발표 자료를 만들어줘. 내부 데이터 유출 사례, 안전한 프롬프트 작성 규칙, 우리 회사만의 보안 수칙(Do\'s & Don\'ts)을 포함해줘. 경각심을 주되 명확한 행동 지침을 강조해줘.',
leader_why=["AI 활용은 ‘통제’가 없으면 보안 사고로 직결", "정책/도구/권한/감사(로그) 체계를 리더가 결정", "사고 1건의 비용은 도입 효익을 초과할 수 있음", "규정 준수(PII/저작권/계약) 책임은 조직에 있음", "현업이 이해하는 ‘행동 지침’이 있어야 실행됨"],
worker_why=["나도 모르게 기밀/개인정보를 넣기 쉬움", "보안 규칙은 복잡해 보여도 핵심은 단순(입력 금지)", "대안(가명화/요약/사내툴)만 알면 안전하게 쓸 수 있음", "안전한 프롬프트는 결과 품질도 더 좋아짐", "한 번의 실수가 개인/조직 리스크로 확대"],
myth=["‘내가 쓴 건 괜찮겠지’", "AI에 넣어도 어차피 저장 안 할 것", "민감정보만 빼면 원문을 넣어도 된다", "출처 없이 써도 문제 없다"],
reality=["실수는 항상 발생: 시스템으로 막아야 함", "도구/정책에 따라 저장/학습 여부가 다름", "원문 자체가 민감일 수 있음(계약/특허/환자)", "저작권/라이선스/규정은 ‘사람 책임’"],
effects=["데이터 유출 위험↓(입력 규칙 표준화)", "검증 가능한 활용만 남아 품질↑", "사고 대응 시간↓(로그/절차 명확)", "팀원 불안↓(허용/금지 기준 명확)", "AI 활용이 지속가능한 문화로 정착"],
concepts=["‘입력=외부 전송’으로 가정하고 설계", "PII/기밀/영업비밀/환자정보는 입력 금지", "가명화/요약/마스킹이 기본 대안", "출처/라이선스 확인(저작권)", "사내 승인된 도구 우선(계정/로그)", "결과물 검증·책임은 사용자/조직"],
framework_steps=["데이터 분류(공개/내부/기밀/PII)", "허용 도구 확인(사내/외부)", "입력 전 마스킹/요약", "출력 검증(사실/출처/저작권)", "저장/공유 기준 적용", "사고 시 보고 절차 실행"],
good=["가명화된 데이터로 질문", "규정/제약을 먼저 선언", "출처/근거를 요청", "최종 활용 전 ‘검증 체크’ 포함"],
bad=["고객/환자 원문 붙여넣기", "계약서/특허 원문 전체 입력", "사내 매출/단가/전략 수치 입력", "출처 없이 이미지/문구 그대로 사용"],
mistakes=["‘민감정보’ 정의를 협소하게 이해", "마스킹 없이 원문 그대로 입력", "도구별 정책(저장/학습) 미확인", "AI 생성물의 저작권/표절 리스크 무시", "결과물을 사내 공유 채널에 무단 게시"],
prompt1_title="실습 1) ‘안전하게 요약’ 프롬프트",
prompt1="너는 보안에 민감한 문서 요약 전문가야.\n아래 텍스트는 민감정보가 포함될 수 있으니,\n1) 민감정보로 추정되는 부분을 [REDACTED]로 표시하고\n2) 핵심 요지만 7줄로 요약해줘.\n3) 추가로 필요한 정보가 있으면 질문 3개를 해줘.\n[텍스트]\n(여기에 요약 대상 일부만 붙여넣기)",
prompt1_tips=["원문 전체가 아니라 ‘필요 최소’만", "REDACTED 표기 습관화", "추가 질문으로 누락 방지"],
prompt2_title="실습 2) Do & Don't 체크 생성",
prompt2="너는 기업용 AI 활용 가이드라인 작성자야.\n우리 팀 업무는 [업무영역]이고 다루는 데이터는 [데이터종류]야.\n이 팀에 적용할 AI 활용 Do 7개, Don't 7개를 만들어줘.\n각 항목마다 이유(1줄)와 예시(1줄)를 붙여줘.\n출력: 표(열: 구분, 규칙, 이유, 예시)",
prompt2_tips=["업무영역/데이터를 구체화", "규칙은 행동 단위로 쓰기", "예시는 실제 문장으로"],
table_title="입력 금지 vs 안전한 대안(예시)",
table_columns=["금지 입력", "왜 위험?", "대안"],
table_rows=[["개인식별정보(이름/연락처/주민번호)", "PII 유출", "가명화(ID치환) + 범위화"], ["계약서/특허 원문", "영업비밀/법적 리스크", "핵심 조항만 요약 + 비식별"], ["내부 매출/단가/전략", "경쟁/시장 리스크", "지표를 구간화 + 공개정보만"]],
risks=["기밀/PII 입력으로 인한 유출", "저작권/표절 이슈", "규정 위반(내부통제)", "환각으로 인한 오판"],
mitigations=["데이터 분류/입력 금지 리스트", "가명화/요약 템플릿 제공", "출처 표기/검증 프로세스", "승인된 도구만 사용 + 로그"],
checklist=["내가 넣는 데이터가 PII/기밀인가", "사내 승인 도구/계정인가", "원문 대신 요약/마스킹 했나", "출처/라이선스 확인했나", "결과물을 공유해도 되는가"],
rollout=["팀별 ‘금지 입력’ 사례집 만들기", "프롬프트 템플릿에 보안 문구 기본 삽입", "월 1회 사례 공유(사고/미스 포함)", "보안 담당과 채널 고정(질문/승인)"],
summary=["입력은 곧 외부 전송이라고 가정", "금지 리스트 + 대안(가명화/요약)만 지켜도 80% 해결", "출처/저작권/환각은 반드시 검증", "오늘 행동: 내 업무 ‘금지 입력 5개와 대안 5개 정리"],
),
Topic(
category="업무 효율",
title="칼퇴를 부르는 AI 비서 - 루틴 업무 1시간 단축하기",
ppt_title=None,
seed_prompt='"직장인 공통 업무 자동화(이메일, 요약, 일정)"를 주제로 슬라이드를 구성해줘. 비포&애프터 비교표를 넣어서 AI 활용 시 절약되는 시간을 수치로 보여줘. 실용적이고 에너제틱한 느낌의 레이아웃으로 제안해줘.',
leader_why=["개인 효율이 팀 생산성으로 이어지는 ‘확장 효과’", "반복 업무 표준화는 품질/리스크를 동시에 낮춤", "‘시간 절감’은 가장 빠르게 측정 가능한 KPI", "업무 인수인계/온보딩 속도 개선", "자동화는 프로세스 개선의 출발점"],
worker_why=["메일/요약/일정이 하루 시간을 갉아먹는 주범", "AI는 초안/정리/체크리스트에 특히 강함", "내 업무 스타일을 템플릿으로 만들면 반복이 줄어듦", "실수(누락/오타/톤) 감소로 스트레스↓", "매일 10분 절감이 1달이면 큰 차이를 만듦"],
myth=["자동화는 개발자만 한다", "AI 쓰면 오히려 시간이 더 든다", "메일은 사람이 직접 써야 한다", "회의록은 정리할 수밖에 없다"],
reality=["No-code/템플릿으로 누구나 가능", "초안→검토 루틴이면 오히려 빨라짐", "톤/대상/형식 지정하면 안정적으로 작성", "결정/액션만 뽑으면 ‘짧게’ 끝남"],
effects=["하루 10~20분 절감 → 월 3~6시간 확보", "회의 후속 액션 누락 감소", "메일 품질(명확성/톤) 표준화", "일정 충돌/우선순위 정리로 야근 감소", "반복 작업 스트레스↓"],
concepts=["반복 업무를 ‘템플릿’으로 바꾸기", "입력: 맥락(대상/목적/제약) 주기", "출력: 형식(표/체크리스트/메일 구조) 주기", "검증: 누락/반론/다음 액션 확인", "축적: 잘 된 결과를 라이브러리화", "자동화: 앱 연결(메일-슬랙-시트)"],
framework_steps=["업무 3개(메일/요약/일정)를 선정", "각 업무의 ‘좋은 예’ 1개 수집", "AI에 초안 생성(형식 지정)", "검토 체크리스트로 빠르게 수정", "템플릿 저장(제목/용도/변수)", "주 1회 성과 기록(분 단위)"],
good=["메일: 대상/목적/톤/요청사항이 명확", "요약: 결론+액션 아이템 중심", "일정: 우선순위/제약(가능시간) 포함", "체크리스트: 누락 질문 포함"],
bad=["‘메일 써줘’만 요청", "회의 원문 그대로 장문 요약", "일정 제약 없이 ‘잡아줘’", "검증 없이 바로 전송"],
mistakes=["형식 없이 장문 생성", "변수(대상/날짜/숫자) 관리 안 함", "검토 없이 외부 발송", "템플릿을 저장하지 않음", "자동화를 먼저 하고 목적을 놓침"],
prompt1_title="실습 1) 3분 만에 ‘메일 초안’ 만들기",
prompt1="너는 비즈니스 이메일 작성 전문가야.\n수신자는 [직급/관계], 목적은 [목적]이야.\n배경: [상황 2~3줄]\n요청사항: [항목 3개]\n톤: 정중하지만 간결\n출력: 제목/인사/핵심요청(3줄)/세부내용/마감일/감사 인사 순서로 작성",
prompt1_tips=["수신자 관계를 꼭 명시", "요청사항은 번호로", "마감일/다음 행동을 명확히"],
prompt2_title="실습 2) 회의록을 ‘결정+액션’으로 압축",
prompt2="너는 회의록 정리 비서야.\n아래 회의 메모를 읽고 다음 형식으로 정리해줘.\n1) 결론/결정사항(최대 5개)\n2) 액션 아이템(담당/기한 포함)\n3) 쟁점/리스크(최대 3개)\n4) 다음 회의 아젠다 제안(3개)\n[메모]\n(여기에 메모를 붙여넣기)",
prompt2_tips=["액션은 ‘담당/기한’이 핵심", "리스크를 같이 뽑으면 누락↓", "다음 아젠다로 회의 품질↑"],
table_title="Before / After (시간 절감 예시)",
table_columns=["업무", "기존", "AI 협업", "절감"],
table_rows=[["메일 초안", "20분", "5분", "15분"], ["회의록 요약", "40분", "12분", "28분"], ["일정 조율", "15분", "5분", "10분"], ["보고서 1p 요약", "60분", "20분", "40분"]],
risks=["품질 미검증 상태로 외부 전송", "민감정보 포함 가능", "톤/표현 오류로 오해 발생", "자동화 실패(중복/오작동)"],
mitigations=["발송 전 체크리스트(수신자/톤/숫자)", "가명화/요약 후 입력", "표준 템플릿 사용", "자동화는 작은 범위부터 단계적"],
checklist=["메일 목적/요청/기한이 명확한가", "수치/날짜/이름을 원문 대조했나", "민감정보가 포함되지 않았나", "액션 아이템 담당/기한이 있는가", "템플릿으로 저장했나"],
rollout=["팀 공통 템플릿(메일/회의록) 배포", "주간 ‘절감시간’ 공유", "좋은 결과는 예시로 축적", "오해/실수 사례도 같이 공유"],
summary=["루틴 업무는 AI가 가장 잘 도와주는 영역", "핵심은 ‘형식 지정 + 검증’", "절감시간을 측정하면 확산이 빨라진다", "오늘 행동: 메일/회의록 템플릿 1개씩 저장"],
),
Topic(
category="문제 해결",
title="질문이 경쟁력이다 - AI를 브레인스토밍 파트너로 쓰는 법",
ppt_title=None,
seed_prompt='"AI 성능을 200% 끌어올리는 질문의 기술(Prompting)"에 대해 설명해줘. 단순 명령과 구체적 명령의 차이, 논리적 사고를 돕는 프롬프트 프레임워크를 단계별로 구성해줘. 교육적인 전문성이 느껴지는 톤으로 작성해줘.',
leader_why=["문제 정의가 흔들리면 AI도 흔들림(결정 품질 저하)", "질문 프레임은 조직의 사고 체계를 표준화", "빠른 실험(가설-검증)으로 전략 속도↑", "회의 생산성이 ‘질문 품질’에 의해 결정", "리스크/반론까지 포함한 질문이 안전한 의사결정으로 연결"],
worker_why=["AI는 ‘무엇을’보다 ‘왜/어떻게’를 잘 물을 때 강해짐", "좋은 질문은 작업 재작업을 줄여줌", "프레임워크만 있으면 누구나 품질을 올릴 수 있음", "아이디어 발산이 막힐 때 강력한 파트너", "문서/기획 능력도 함께 상승"],
myth=["AI는 센스 있게 알아서 해준다", "질문은 길수록 좋다", "정답을 한 번에 받아야 한다", "브레인스토밍은 사람끼리만 한다"],
reality=["AI는 맥락이 없으면 ‘평균 답’", "핵심 조건을 구조화하면 짧아도 강함", "초안→추가 질문→정제 루프가 정답", "AI는 발산·정리·비판 역할에 강함"],
effects=["아이디어 발산 속도↑(대안 10개/5분)", "문제 정의 명확화로 실행 리스크↓", "회의 아젠다/의사결정 질문이 정교해짐", "기획서/제안서 품질 표준화", "개인 논리/표현력 향상"],
concepts=["Role: 역할 부여", "Goal: 목적/성공 기준", "Context: 배경/제약", "Format: 출력 형식", "Critique: 반론/리스크", "Iterate: 후속 질문으로 정제"],
framework_steps=["문제 한 줄 정의(무엇을/왜)", "성공 기준 3개 설정", "맥락(현황/제약/대상) 추가", "출력 형식(표/목차/단계) 지정", "반론/리스크 요청", "2회 반복 정제(추가 질문)"],
good=["‘목적+성공기준’이 있는 질문", "대안 3개 이상을 강제", "반론/리스크 포함", "출력 형식(표/프레임) 지정"],
bad=["‘아이디어 내줘’만 요청", "제약 없이 무한 발산", "결론만 달라고 함(근거 없음)", "반론/리스크를 배제"],
mistakes=["문제 정의 없이 해결책부터 요청", "대상/상황을 숨김(‘알아서’ 기대)", "한 번에 완벽을 기대", "출력 형식을 주지 않아 재작업", "비판(리스크) 질문을 생략"],
prompt1_title="실습 1) 5W1H로 문제 정의하기",
prompt1="너는 논리적 사고 코치야.\n내가 해결하려는 문제는: [문제]\n아래 5W1H 질문을 통해 누락된 정보를 찾아줘.\n- Who/What/Why/When-Where/How 각 2개씩\n그 다음, 내가 답한 내용을 반영해서\n문제 정의(1문장) + 성공 기준 3개 + 제약 조건 5개를 정리해줘.",
prompt1_tips=["답을 채우면 프롬프트가 완성된다", "성공 기준은 측정 가능하게", "제약(예산/기간/규정)을 명시"],
prompt2_title="실습 2) 브레인스토밍을 ‘발산→수렴’으로",
prompt2="너는 브레인스토밍 파트너야.\n목표: [목표]\n제약: [기간/예산/규정]\n1) 아이디어 12개를 내고(각 1줄)\n2) 4개로 묶어 카테고리화하고\n3) 평가 기준(효과/난이도/리스크)으로 점수화해서\n4) 상위 3개를 추천해줘.\n출력: 표 + 결론 먼저",
prompt2_tips=["발산은 ‘개수 강제’", "수렴은 ‘평가기준’", "리스크까지 같이 보자"],
table_title="질문 프레임워크(요약)",
table_columns=["요소", "의미", "예시"],
table_rows=[["Role", "관점 고정", "너는 10년차 PM이야"], ["Goal", "목표/성공기준", "시간 20% 단축"], ["Format", "산출물 형태", "표(열: 옵션/장단)"], ["Critique", "반론/리스크", "리스크 3개도"]],
risks=["평균 답변으로 시간 낭비", "편향된 결론(대안 부족)", "현실 제약 미반영", "환각으로 근거 왜곡"],
mitigations=["프레임(Goal/Context/Format) 고정", "대안 3개 이상 요청", "제약 조건 명시", "근거/출처/가정 확인"],
checklist=["문제 정의 1문장 있는가", "성공 기준 3개가 있는가", "제약 조건이 포함됐나", "출력 형식을 지정했나", "반론/리스크를 요청했나"],
rollout=["팀 공통 질문 템플릿(회의용) 만들기", "회의 아젠다는 ‘질문’으로 작성", "좋은 질문/나쁜 질문 사례 공유", "결과물은 표준 포맷으로 저장"],
summary=["질문 품질이 AI 성과를 결정", "프레임워크(Goal/Context/Format/Critique)로 표준화", "발산→수렴 루프가 핵심", "오늘 행동: 내 업무 1개를 5W1H로 재질문"],
),
Topic(
category="협업/공유",
title="우리 팀만의 AI 지식 창고 만들기",
ppt_title=None,
seed_prompt='"사내 AI 자산 공유 및 협업 문화"에 대한 발표 자료야. 팀원들이 발견한 좋은 프롬프트를 공유하는 방법과 사내 챗봇 활용법을 포함해줘. \'함께 성장하는 조직\'을 강조하는 따뜻하고 협력적인 톤으로 만들어줘.',
leader_why=["개인 역량이 아닌 ‘팀 자산’으로 전환해야 지속가능", "중복 작업(같은 프롬프트 재발명) 비용 절감", "검증된 템플릿은 품질/리스크를 동시에 관리", "사내 지식의 누적이 조직 경쟁력", "공유 문화는 변화관리의 핵심 장치"],
worker_why=["좋은 프롬프트를 공유하면 내 일이 쉬워짐", "남의 템플릿을 쓰면 빠르게 숙련 가능", "사내 챗봇/검색이 있으면 물어볼 곳이 생김", "실패 사례도 공유하면 같은 실수를 줄임", "함께 성장하는 경험이 동기부여가 됨"],
myth=["공유하면 내 경쟁력이 줄어든다", "프롬프트는 사람마다 달라서 공유가 무의미", "지식창고는 만들기만 하고 안 쓴다", "정리는 나중에 해도 된다"],
reality=["공유는 ‘표준’과 ‘시간 절감’을 만든다", "템플릿+변수로 재사용 가능", "검색 가능/업데이트 규칙이 핵심", "정리는 ‘업무 과정’에 붙여야 지속"],
effects=["템플릿 재사용으로 문서 품질 표준화", "신입/전배 온보딩 시간 단축", "보안/검증 규칙의 내재화", "아이디어/사례 축적으로 혁신 속도↑", "개인 만족도/협업 신뢰↑"],
concepts=["템플릿(목적/입력/출력/검증) 구조화", "태그/카테고리로 검색 가능하게", "예시(좋은 입력/좋은 출력) 포함", "버전 관리(업데이트 로그)", "검증 체크리스트를 함께 저장", "사내 챗봇은 Q&A + 자산 추천 허브"],
framework_steps=["팀 공통 업무 5개 선정", "각 업무 템플릿 1개씩 수집", "형식 통일(메타/변수/예시)", "검증/보안 규칙 삽입", "게시(위키/게시판) + 태그", "주 1회 ‘템플릿 개선’ 10분"],
good=["템플릿에 변수 자리 표시", "좋은 예시(입력/출력) 포함", "사용 시 주의사항/검증 포함", "태그로 검색 가능"],
bad=["본문만 덩어리로 공유", "사용 맥락(언제/누가)을 누락", "보안/검증 없이 공유", "중복 템플릿 난립"],
mistakes=["템플릿 표준 포맷이 없음", "업데이트/소유자 부재", "검색/태그 없이 저장", "공유가 ‘평가’가 되어 참여↓", "사내 챗봇과 연결하지 않음"],
prompt1_title="실습 1) 프롬프트를 ‘템플릿’으로 표준화",
prompt1="너는 프롬프트 라이브러리 편집자야.\n아래 프롬프트를 팀 공유용 템플릿으로 바꿔줘.\n- 목적(1줄)\n- 사용 상황(3줄)\n- 입력 변수 목록(표)\n- 최종 템플릿(복붙용)\n- 검증 체크리스트(5개)\n[원본 프롬프트]\n(여기에 붙여넣기)",
prompt1_tips=["변수는 [대괄호]로 표시", "검증 체크를 기본 포함", "사용 상황을 써야 재사용됨"],
prompt2_title="실습 2) 사내 챗봇용 Q&A/가이드 생성",
prompt2="너는 사내 챗봇 지식베이스 작성자야.\n주제: [주제]\n직원들이 자주 물을 질문 10개를 만들고,\n각 질문에 대해 1) 짧은 답 2) 주의사항 3) 관련 템플릿 링크(가상)\n형식으로 작성해줘.",
prompt2_tips=["질문은 실무자의 언어로", "주의사항(보안/검증)을 붙이기", "관련 템플릿을 추천하도록"],
table_title="지식 창고 카드(예시 포맷)",
table_columns=["필드", "예시"],
table_rows=[["제목", "회의록 요약(결정/액션)"], ["변수", "[메모], [참석자], [기한]"], ["출력", "표(결정/담당/기한)"], ["검증", "수치/이름 원문 대조"]],
risks=["기밀/민감정보가 공유됨", "품질 낮은 템플릿 확산", "관리 부재로 방치", "공유 문화 저항"],
mitigations=["공유 전 마스킹/가이드", "검증된 템플릿만 ‘추천’ 표시", "소유자/업데이트 주기 지정", "칭찬/학습 중심 운영"],
checklist=["템플릿에 목적/상황/변수가 있는가", "예시 입력/출력이 있는가", "검증/보안 체크가 있는가", "태그가 붙었는가", "소유자/버전이 있는가"],
rollout=["초기: 5개 템플릿으로 시작", "운영: 주간 공유 10분", "품질: 추천/검증 배지", "확장: 챗봇이 템플릿 추천"],
summary=["지식은 공유될 때 자산이 된다", "템플릿 표준화 + 검색 + 검증이 핵심", "운영(업데이트) 없으면 방치된다", "오늘 행동: 내 템플릿 1개를 표준 포맷으로 올리기"],
),
Topic(
category="데이터 활용",
title="엑셀 함수 몰라도 괜찮아 - 말로 하는 데이터 분석",
ppt_title=None,
seed_prompt='"비전공자를 위한 AI 데이터 분석"을 주제로 해줘. 복잡한 코딩 없이 자연어로 그래프를 그리고 인사이트를 뽑아내는 과정을 시연하듯 구성해줘. \'누구나 할 수 있다\'는 자신감을 주는 쉬운 용어로 작성해줘.',
leader_why=["현장 데이터가 의사결정으로 이어지려면 분석 장벽을 낮춰야 함", "간단한 분석 자동화로 보고 리드타임이 줄어듦", "분석 표준(정의/단위/기간)이 중요해짐", "잘못된 해석(환각/오류)은 리스크", "데이터 기반 문화는 도구보다 습관"],
worker_why=["함수/피벗 없이도 ‘질문’으로 시작 가능", "그래프/요약/이상치 탐지가 빠르게 됨", "보고서에 넣을 문장까지 자동 초안", "데이터 정의만 잘 주면 오류가 크게 줄어듦", "작게 분석 루틴을 만들면 자신감↑"],
myth=["데이터 분석은 코딩을 해야 한다", "AI가 알아서 정확히 분석한다", "데이터가 조금만 있어도 인사이트가 나온다", "그래프는 전문가 영역이다"],
reality=["질문(목표/정의/기간)이 핵심", "AI는 오류 가능: 검증이 필요", "데이터 품질/정의가 결과를 좌우", "기본 차트는 누구나 만들 수 있다"],
effects=["리포트 초안 작성 시간 단축", "반복 지표(월간/주간) 자동화", "이상치/트렌드 조기 발견", "시각화로 커뮤니케이션 개선", "데이터 활용 자신감 상승"],
concepts=["지표 정의(분모/분자/단위)", "기간/범위 명시", "데이터 품질 체크(누락/중복)", "기본 통계(평균/중앙값/추세)", "시각화(막대/선/분포)", "해석(가설→근거→다음 행동)"],
framework_steps=["목표 질문 1개 정하기", "데이터 컬럼/정의 확인", "품질 체크(누락/중복/이상치)", "그래프 1개로 트렌드 보기", "인사이트 3개 + 가설 2개", "다음 액션(추가 데이터/실험)"],
good=["컬럼/단위/기간을 지정", "보고 목적(누가/왜) 명시", "그래프 종류를 지정", "인사이트+가설+액션까지 요청"],
bad=["‘분석해줘’만 요청", "데이터 정의 없이 수치 해석", "기간이 섞인 데이터로 비교", "검증 없이 결론 확정"],
mistakes=["컬럼 의미(정의) 누락", "단위 혼동", "결측/이상치 미처리", "상관/인과 혼동", "결론만 뽑고 다음 행동이 없음"],
prompt1_title="실습 1) 데이터 품질 체크 요청",
prompt1="너는 데이터 분석가야.\n아래 표 데이터를 보고 먼저 '품질 체크'를 해줘.\n- 누락/중복/이상치 가능성\n- 컬럼 정의가 애매한 부분 질문 5개\n- 분석 전에 필요한 전처리 제안\n출력: 체크리스트 + 질문 목록\n[데이터]\n(여기에 표/CSV 일부를 붙여넣기)",
prompt1_tips=["품질 체크가 먼저", "정의 질문을 받아서 오류를 줄이기", "전처리 제안을 기록"],
prompt2_title="실습 2) 그래프 + 인사이트 + 다음 행동",
prompt2="너는 비전공자를 돕는 분석 코치야.\n목표: [목표]\n데이터 컬럼: [컬럼명/정의/단위]\n기간: [기간]\n1) 적합한 그래프 2개를 추천하고(왜인지 1줄)\n2) 그래프를 보고 말로 설명하듯 인사이트 5개\n3) 원인 가설 3개와 검증 방법 3개\n4) 다음 행동(업무 의사결정) 3개\n형식: 번호 리스트 + 표 1개",
prompt2_tips=["‘왜 이 그래프인지’가 중요", "가설과 검증방법을 같이", "마지막은 의사결정 행동으로"],
table_title="자연어 분석 질문 예시(초보용)",
table_columns=["내가 묻는 말", "AI가 해주는 일", "주의"],
table_rows=[["이번 달이 왜 떨어졌어?", "요약+원인 후보", "인과로 확정 금지"], ["이상치가 있나?", "이상치 탐지", "원문 확인"], ["보고서 문장 써줘", "1p 요약", "수치 대조"]],
risks=["단위/정의 오류로 오해", "환각으로 근거 없는 결론", "민감 데이터 입력", "상관/인과 혼동"],
mitigations=["정의/단위/기간을 강제 입력", "가설+검증 절차 포함", "가명화/요약 후 입력", "결론은 ‘가설’로 표현"],
checklist=["지표 정의/단위/기간이 명확한가", "결측/중복/이상치 확인했나", "그래프가 목적과 맞나", "인사이트가 ‘근거’와 연결되나", "다음 행동이 있는가"],
rollout=["팀 공통 ‘지표 정의’ 템플릿 배포", "월간 리포트 질문 템플릿화", "분석 결과는 가설/근거/액션 포맷", "민감 데이터 처리 규칙 공유"],
summary=["분석은 코딩이 아니라 ‘질문+정의’", "품질 체크→그래프→인사이트→액션 루틴", "결론은 가설로 두고 검증", "오늘 행동: 내 지표 1개 정의(단위/기간) 쓰기"],
),
Topic(
category="트렌드",
title="글로벌 1등 기업들은 AI를 어떻게 쓰고 있을까",
ppt_title=None,
seed_prompt='"글로벌 AX 선도 기업의 성공 사례 벤치마킹" 자료를 만들어줘. 구글, 마이크로소프트, 테슬라 등 주요 기업들이 AI를 비즈니스 프로세스에 어떻게 녹였는지 분석하고 우리 회사에 주는 시사점을 정리해줘.',
leader_why=["성공 사례는 ‘무엇을 할지’보다 ‘어떻게 할지’를 알려줌", "투자/우선순위 결정을 근거 기반으로 할 수 있음", "사내 적용 시 ‘패턴’이 중요(데이터, 플랫폼, 인재)", "벤치마킹은 실행 속도를 높임", "리스크 관리(거버넌스)까지 같이 봐야 함"],
worker_why=["다른 회사 사례는 내 업무 적용 아이디어로 직결", "성공 패턴을 알면 시행착오를 줄임", "AI 활용이 ‘특별한’ 일이 아니라는 확신", "업무 프로세스 관점으로 보는 눈이 생김", "우리 조직에서도 가능한 1단계를 찾을 수 있음"],
myth=["AI는 빅테크만 할 수 있다", "좋은 모델만 쓰면 된다", "사례는 우리와 무관하다", "도입하면 자연히 성과가 난다"],
reality=["작게 시작해 확장하는 패턴이 핵심", "데이터/프로세스/사람이 같이 가야 함", "업종/규정에 맞게 변형해야 함", "성과는 KPI/거버넌스로 만든다"],
effects=["우선순위 도출(어디부터?)", "성공 패턴을 복제해 속도↑", "리스크를 사전에 인지", "현업 적용 아이디어 다수 확보", "조직 공감대 형성"],
concepts=["Use Case 중심(업무 문제)에서 시작", "데이터 파이프라인/플랫폼", "업무 내재화(워크플로우)", "Human-in-the-loop 검증", "거버넌스(보안/규정/품질)", "측정(KPI)과 확장"],
framework_steps=["업무 문제 3개 선정", "데이터/규정 체크", "파일럿(2~4주) 설계", "측정 지표 정의", "검증/승인 프로세스", "확장(템플릿/플랫폼화)"],
good=["업무 프로세스에 AI를 ‘내장’", "검증/승인 단계를 설계", "KPI로 효과를 측정", "플랫폼/재사용을 염두"],
bad=["데모만 하고 운영이 없음", "데이터/규정 없이 시작", "측정 없이 ‘좋아 보임’", "개인별 도구 난립"],
mistakes=["사례를 그대로 복사(현실 제약 무시)", "기술 중심으로 접근(문제 정의 부족)", "성과 지표 없이 확장", "거버넌스 없이 확산", "현업 참여 없이 추진"],
prompt1_title="실습 1) 사례를 내 회사에 맞게 변환",
prompt1="너는 AX 컨설턴트야.\n아래 글로벌 사례를 우리 회사(업종: [업종], 제약: [규정/보안])에 맞게 변환해줘.\n1) 적용 가능한 업무 프로세스 3개\n2) 필요한 데이터/시스템\n3) 예상 효과(KPI)\n4) 리스크/완화\n출력: 표(열: 프로세스, 데이터, KPI, 리스크, 완화)\n[사례]\n(여기에 사례 요약을 붙여넣기)",
prompt1_tips=["업종/규정을 명시", "KPI는 2~3개로", "리스크/완화를 반드시"],
prompt2_title="실습 2) 우리 조직의 ‘성공 패턴’ 체크",
prompt2="너는 실행 PM이야.\n우리 팀이 추진할 AI 과제 후보 3개를 아래 체크리스트로 평가해줘.\n- 문제 명확성\n- 데이터 확보 가능성\n- 기대 효과(정량/정성)\n- 구현 난이도\n- 리스크(보안/규정)\n- 확장성\n출력: 표 + 우선순위 결론(근거 포함)",
prompt2_tips=["후보 3개를 구체적으로", "데이터/규정 항목을 중요하게", "우선순위는 1~3위"],
table_title="벤치마킹 예시(요약)",
table_columns=["기업", "적용 프로세스", "효과(예시)"],
table_rows=[["Microsoft", "업무도구 내 Copilot", "문서/메일/회의 생산성↑"], ["Google", "검색/광고/개발 자동화", "의사결정 속도↑"], ["Tesla", "제조/운영 최적화", "품질/효율 개선"]],
risks=["사례 과신으로 무리한 도입", "데이터/규정 미스매치", "성과 측정 실패", "조직 저항"],
mitigations=["‘패턴’만 추출해 변형 적용", "규정/보안 사전 검토", "KPI/실험 설계", "현업 참여 + 변화관리"],
checklist=["우리 업무 문제로 번역했나", "데이터/시스템이 준비됐나", "KPI가 정의됐나", "검증/승인 프로세스가 있나", "확장(재사용) 계획이 있나"],
rollout=["파일럿 1개로 시작", "성과 지표 공유", "템플릿/플랫폼화로 확장", "사례 공유 세션 운영"],
summary=["성공은 기술이 아니라 ‘패턴’의 재현", "업무 문제→데이터→검증→측정→확장", "벤치마킹은 ‘복사’가 아니라 ‘번역’", "오늘 행동: 사례 1개를 우리 프로세스로 변환"],
),
Topic(
category="자기계발",
title="AI 시대의 커리어 생존 전략 - AI와 공존하는 전문가 되기",
ppt_title=None,
seed_prompt='"임직원 자기계발: AI 시대의 필수 역량"을 주제로 해줘. 사라지는 기술과 새로 요구되는 기술(Soft Skills)을 비교하고, 회사가 지원하는 교육 로드맵을 보여줘. 동기부여를 자극하는 도전적인 톤으로 구성해줘.',
leader_why=["역량 변화는 인력 전략(채용/교육/평가)으로 연결", "AI 활용 격차는 조직 리스크(성과 편차)", "직무 재설계가 필요(업무 구조 변화)", "교육 로드맵이 있어야 불안이 줄어듦", "성과/성장 지표를 함께 설계해야 함"],
worker_why=["AI가 바꾸는 건 ‘직무’보다 ‘업무’ 단위", "새 역량은 지금부터 쌓을수록 유리", "AI는 나의 생산성을 올리는 레버리지", "소프트 스킬(문제정의/소통)이 더 중요", "학습 루틴을 만들면 커리어 불안이 줄어듦"],
myth=["AI 때문에 내 커리어는 끝이다", "기술만 배우면 된다", "도구를 하나만 익히면 된다", "학습은 시간이 있을 때 한다"],
reality=["업무 재구성으로 역할이 진화", "문제정의/검증/의사결정이 핵심", "도구는 바뀌고 원칙은 남는다", "매주 작은 학습이 장기 경쟁력"],
effects=["업무 속도↑로 ‘고부가가치’에 시간 투자", "학습 속도↑(자료/요약/초안)", "커리어 이동성↑(스킬 포트폴리오)", "성과 가시화(KPI) 쉬움", "불안↓ 자신감↑"],
concepts=["T자형 역량: 도메인 깊이 + AI 활용", "문제정의/목표설정", "프롬프트/워크플로우 설계", "검증/리스크 관리", "협업/커뮤니케이션", "학습 루틴(포트폴리오)"],
framework_steps=["내 업무를 ‘대체/증폭/신규’로 분류", "증폭 영역 1개 선택", "템플릿/체크리스트 구축", "결과를 포트폴리오로 기록", "피드백 받아 개선", "3개월 단위 목표 재설정"],
good=["도메인 문제를 AI로 증폭", "검증/책임을 내가 갖는다", "학습을 루틴화", "성과를 기록한다"],
bad=["도구만 따라하기", "검증 없이 복붙", "학습을 ‘나중에’로 미룸", "성과 기록 없음"],
mistakes=["기술만 보고 도메인 이해를 소홀", "학습 목표가 모호", "성과/결과물을 남기지 않음", "보안/규정 무시", "혼자만 쓰고 공유 안 함"],
prompt1_title="실습 1) 내 직무 ‘업무 재구성’ 지도",
prompt1="너는 커리어 코치야.\n내 직무는 [직무]이고, 주요 업무는 아래 6개야.\n- (업무 리스트)\n각 업무를 1) AI로 대체 가능 2) AI로 증폭 3) 사람이 더 중요 로 분류하고,\n증폭 영역 2개를 선정해 ‘학습 계획(4주)’을 만들어줘.\n출력: 표 + 4주 로드맵",
prompt1_tips=["업무를 6개로 쪼개기", "증폭 2개만 선택", "4주 계획은 작게"],
prompt2_title="실습 2) 역량 로드맵(회사 교육 연계) 만들기",
prompt2="너는 사내 교육 설계자야.\n대상: [직군/연차]\nAI 시대 핵심 역량을 6개로 정리하고,\n각 역량별로 1) 학습 목표 2) 실습 과제 3) 성과 지표를 제안해줘.\n출력: 표(열: 역량, 목표, 실습, 지표)",
prompt2_tips=["실습은 ‘산출물’로", "지표는 측정 가능하게", "직군/연차를 구체화"],
table_title="역량 변화(예시)",
table_columns=["약해지는 역량", "강해지는 역량", "예시"],
table_rows=[["반복 문서 작성", "문제 정의", "요구사항 구조화"], ["단순 번역/요약", "검증/리스크", "팩트체크"], ["정해진 절차 수행", "워크플로우 설계", "자동화"]],
risks=["불안/저항으로 학습 중단", "도구 변화에 피로", "성과 가시화 실패", "보안 리스크"],
mitigations=["작은 목표/성공 경험 설계", "원칙 중심 학습", "포트폴리오로 성과 기록", "보안 체크리스트 내재화"],
checklist=["업무를 대체/증폭으로 분류했나", "증폭 2개 목표가 있는가", "4주 실습 계획이 있는가", "성과 지표가 있는가", "산출물(포트폴리오)을 남겼나"],
rollout=["팀별 학습 스프린트 운영", "산출물 데모/공유", "멘토/리뷰 체계", "교육 로드맵 공개"],
summary=["AI 시대 핵심은 도구가 아니라 역량", "증폭 영역을 선택하고 루틴으로 학습", "성과는 포트폴리오로 남긴다", "오늘 행동: 내 업무 6개를 대체/증폭으로 분류"],
),
Topic(
category="조직문화",
title="실패해도 괜찮은 AI 실험실 - 작은 성공(Small Win) 만들기",
ppt_title=None,
seed_prompt='"사내 AI 실험(Small Win) 장려 캠페인" 발표용이야. 완벽한 결과보다는 시도 자체에 가치를 두는 문화, 작은 성공 사례를 전파하는 프로세스를 담아줘. 혁신적이고 자유로운 분위기의 디자인 컨셉을 제안해줘.',
leader_why=["실험 문화 없이는 혁신이 확장되지 않음", "작은 성공은 변화관리의 증거(저항 감소)", "리스크를 통제하는 실험 프로세스가 필요", "성과를 ‘학습’으로 정의해야 지속", "사례 전파가 투자 대비 효과를 만든다"],
worker_why=["완벽을 요구하면 시도 자체가 멈춘다", "작은 실험은 내 업무를 개선하는 가장 빠른 길", "실패 사례 공유는 팀 전체의 시간 절감", "AI는 실험-피드백에 최적", "인정/보상이 있으면 참여가 늘어난다"],
myth=["실패하면 평가가 깎인다", "실험은 큰 프로젝트여야 한다", "아이디어가 완벽해야 시작", "보안 때문에 아무것도 못 한다"],
reality=["실험은 학습을 위한 장치", "2주짜리 작은 개선이 더 가치", "초안으로 시작해 반복", "가이드와 범위 설정으로 안전하게 가능"],
effects=["개선 아이디어가 실제 성과로 연결", "팀 내 학습 속도↑", "업무 표준 템플릿 축적", "도입 저항 감소", "성과 공유로 동기부여↑"],
concepts=["Small Win: 2주 이내, 영향 범위 제한", "가설-실험-측정-회고", "리스크 사전 체크(보안/규정)", "성과는 ‘시간/품질’로 측정", "사례는 템플릿으로 전환", "칭찬/공유가 운영의 핵심"],
framework_steps=["문제 1개 선정(반복/병목)", "가설 세우기(어떻게 나아질까)", "2주 실험 설계(범위/지표)", "실행(템플릿/자동화)", "측정(전/후 비교)", "공유(사례 카드)"],
good=["범위를 작게 잡는다", "전/후 지표를 정한다", "보안 체크를 먼저 한다", "산출물을 템플릿으로 남긴다"],
bad=["범위를 크게 잡는다", "측정 없이 ‘좋아 보임’", "규정/보안 미검토", "공유 없이 개인만 사용"],
mistakes=["실험 목표가 모호", "일정/범위 과대", "회고 없이 종료", "실패를 숨김", "운영/보상 구조 부재"],
prompt1_title="실습 1) 2주 Small Win 실험 설계",
prompt1="너는 혁신 실험 코치야.\n업무 문제: [문제]\n목표: [정량 목표]\n제약: 2주, 팀 2명, 외부 공유 금지\n실험 계획을 만들어줘:\n- 가설 2개\n- 해야 할 일(주차별)\n- 측정 지표(전/후)\n- 리스크/완화\n출력: 표 + 2주 플랜",
prompt1_tips=["정량 목표 1개는 필수", "리스크/완화 포함", "주차별로 쪼개기"],
prompt2_title="실습 2) 사례 전파용 ‘사례 카드’ 만들기",
prompt2="너는 사내 공유 게시판 에디터야.\n아래 실험 결과를 1장 사례 카드로 요약해줘.\n- 문제(1줄)\n- 해결(3줄)\n- 전/후 효과(숫자)\n- 템플릿/프롬프트(복붙용)\n- 다음 실험 아이디어(2개)\n[결과]\n(여기에 결과를 붙여넣기)",
prompt2_tips=["숫자(효과)를 꼭 넣기", "복붙용 템플릿 포함", "다음 실험으로 연결"],
table_title="Small Win 기준(예시)",
table_columns=["기준", "권장", "피해야 할 것"],
table_rows=[["기간", "2주 이내", "3개월 장기"], ["범위", "팀/프로세스 1개", "전사 확장"], ["지표", "시간/품질", "모호한 만족"], ["리스크", "사전 체크", "사후 대응"]],
risks=["범위 확대(스코프 크립)", "성과 미측정", "보안/규정 위반", "실패 낙인"],
mitigations=["실험 범위/기간 고정", "전/후 지표 강제", "리스크 체크리스트", "학습/칭찬 중심 운영"],
checklist=["2주 이내인가", "지표가 있는가", "범위가 1개인가", "리스크 체크했나", "사례 카드로 공유했나"],
rollout=["월 1회 데모데이", "사례 카드 템플릿 통일", "작은 보상/인정", "실패 공유도 보상"],
summary=["작게, 빠르게, 측정하고 공유", "실험은 학습을 위한 장치", "템플릿이 자산이 된다", "오늘 행동: 내 업무 1개를 2주 실험으로 정의"],
),
Topic(
category="기술 이해",
title="AI의 거짓말(환각 현상)을 잡아내는 팩트체크 기술",
ppt_title=None,
seed_prompt='"AI 환각(Hallucination) 대응 및 팩트체크" 자료를 만들어줘. AI 답변의 오류 유형, 교차 검증 방법, 최종 의사결정자로서 인간의 역할을 강조해줘. 분석적이고 객관적인 느낌의 톤앤매너를 유지해줘.',
leader_why=["환각은 품질/규정/법적 리스크로 직결", "검증 프로세스가 없으면 도입이 위험", "의사결정은 근거 기반이어야 함", "업무별 ‘검증 난이도’가 다르다", "책임 소재(승인/검토)를 명확히 해야 함"],
worker_why=["AI가 그럴듯하게 틀릴 수 있음을 알아야 안전", "팩트체크 습관이 있으면 활용 범위가 넓어짐", "검증 질문 템플릿만 있어도 품질이 크게 향상", "업무 문서 품질이 올라가 신뢰가 생김", "실수를 줄이면 스트레스가 줄어듦"],
myth=["AI는 최신 정보를 항상 안다", "출처를 말하면 무조건 맞다", "자신감 있는 답은 맞다", "수치/법률도 믿어도 된다"],
reality=["모델/도구에 따라 최신성은 제한", "가짜 출처(환각)도 생성 가능", "자신감은 정확도와 무관", "중요 정보는 반드시 원문 대조"],
effects=["오류로 인한 재작업/사고 감소", "의사결정 근거의 품질 개선", "검증 루틴으로 조직 신뢰↑", "AI 활용 범위 확장(안전장치)", "개인 역량(비판적 사고) 강화"],
concepts=["환각 유형: 허위 사실/가짜 출처/수치 오류", "위험 영역: 법률/규정/수치/고유명사", "교차검증: 원문 대조 + 2개 출처", "가정/전제 확인", "반론/리스크 요청", "최종 책임은 사람"],
framework_steps=["중요도 분류(결정 영향도)", "출처 요청(링크/문서)", "원문 대조(수치/이름)", "대안/반론 요청", "검증 결과 기록", "승인/공유"],
good=["출처/근거를 요구", "가정/전제를 명시", "반론/리스크 포함", "검증 체크리스트 적용"],
bad=["결론만 달라고 함", "수치/법률을 그대로 복붙", "출처 없이 인용", "단일 답변에 의존"],
mistakes=["검증을 ‘나중에’로 미룸", "출처 링크만 보고 내용 미확인", "상관/인과 혼동", "정의/단위를 누락", "승인 없이 외부 배포"],
prompt1_title="실습 1) 답변 검증(팩트체크) 프롬프트",
prompt1="너는 팩트체커야.\n아래 AI 답변을 검증해줘.\n- 사실 주장/수치/고유명사를 항목별로 분리\n- 각 항목의 검증 방법 제안(원문/공식 출처)\n- 불확실한 부분은 '확신도(상/중/하)'로 표시\n- 최종 결론은 '검증 필요' 관점으로 요약\n[AI 답변]\n(여기에 답변 붙여넣기)",
prompt1_tips=["항목 분리부터", "확신도 표시", "공식 출처를 우선"],
prompt2_title="실습 2) 반론/리스크 먼저 받기",
prompt2="너는 회의에서 반대편 역할(Devil's Advocate)이야.\n내 주장: [주장]\n근거: [근거]\n1) 반론 5개\n2) 반론별 추가로 확인해야 할 데이터/문서\n3) 리스크 완화 방안\n출력: 표(열: 반론, 필요한 검증, 완화)",
prompt2_tips=["반론을 먼저 받으면 안전", "검증 데이터까지 요청", "완화 방안까지"],
table_title="환각 유형과 대응(요약)",
table_columns=["오류 유형", "징후", "대응"],
table_rows=[["가짜 출처", "URL/논문이 존재하지 않음", "원문 검색/대조"], ["수치 오류", "단위/기간 불명확", "정의/단위 확인"], ["규정/법률 오류", "개정 전 정보", "공식 문서 확인"]],
risks=["의사결정 오류", "법적/규정 위반", "대외 신뢰 하락", "재작업 증가"],
mitigations=["중요도 기반 검증", "출처/원문 대조", "2개 이상 교차검증", "승인/리뷰 프로세스"],
checklist=["이 답이 의사결정에 영향 주나", "출처/원문이 확인됐나", "수치의 정의/단위/기간이 명확한가", "반론/리스크를 검토했나", "공유/배포 전에 리뷰했나"],
rollout=["팀 공통 팩트체크 템플릿", "중요 문서는 리뷰 필수", "사례 공유(실수 포함)", "승인 단계에 체크리스트 포함"],
summary=["AI는 그럴듯하게 틀릴 수 있다", "핵심은 출처/원문 대조 + 교차검증", "반론/리스크 질문이 안전장치", "오늘 행동: 내 문서 1개에 팩트체크 프롬프트 적용"],
),
Topic(
category="실행력",
title="오늘 바로 적용하는 AI 업무 자동화 - 노코드 워크플로우 설계(강의형)",
ppt_title=None,
seed_prompt='"노코드 툴을 활용한 워크플로우 자동화 설계(강의형)" 슬라이드를 구성해줘. 서로 다른 앱(메일-슬랙-엑셀)을 AI로 연결하는 구조도를 포함하고, 운영 관점(예외 처리, 승인 단계, 로그/모니터링)을 자세히 설명해줘. 직관적이고 기술적인 신뢰감이 가는 디자인으로 제안해줘.',
leader_why=["자동화는 ‘업무 표준화’와 직결", "작은 자동화가 누적되면 생산성 격차가 커짐", "통합(메일/슬랙/시트)의 설계가 중요", "권한/로그/보안 통제가 필수", "운영 관점(장애/오작동) 고려 필요"],
worker_why=["반복 전달/복붙 작업을 줄이는 가장 빠른 방법", "노코드로도 충분히 시작 가능", "자동화는 ‘작게’가 핵심", "실수(누락/지연) 감소", "내 업무를 시스템화하면 야근이 줄어듦"],
myth=["자동화는 거창하다", "개발이 없으면 못 한다", "한 번 만들면 끝이다", "자동화는 위험하다"],
reality=["1~2개 앱 연결부터 가능", "노코드+AI로 시작 가능", "운영/모니터링이 중요", "권한/로그로 안전하게 가능"],
effects=["복붙/전달 시간 절감", "업무 누락 감소(트리거/알림)", "업무 흐름 가시화", "협업 속도↑", "프로세스 표준화"],
concepts=["Trigger(시작 조건)", "Action(실행)", "Filter(조건)", "AI Step(분류/요약/추출)", "Human 승인 단계", "로그/모니터링"],
framework_steps=["업무 1개 선정(반복/규칙적)", "Trigger 정의(메일 수신 등)", "AI 단계(요약/분류/추출)", "Action 연결(슬랙/시트)", "예외 처리(조건/승인)", "모니터링/개선"],
good=["단일 흐름부터 시작", "예외/승인 단계 포함", "로그/테스트 케이스 준비", "권한 최소화"],
bad=["여러 흐름을 한 번에", "예외 없이 자동 발송", "테스트 없이 운영", "권한 과다 부여"],
mistakes=["트리거 조건이 모호", "중복 실행", "에러 시 알림 없음", "민감 데이터 노출", "운영 주체 없음"],
prompt1_title="실습 1) 자동화 시나리오 설계(업무→흐름)",
prompt1="너는 워크플로우 설계자야.\n업무: [업무]\n앱: 이메일, 슬랙, 구글시트\n목표: [목표]\n자동화 흐름을 설계해줘.\n- Trigger\n- AI 단계(요약/분류/추출)\n- Action(슬랙 메시지/시트 기록)\n- 예외 처리(조건/승인)\n출력: 단계 리스트 + 체크리스트",
prompt1_tips=["목표를 1개로", "예외/승인을 반드시", "중복 방지 조건 넣기"],
prompt2_title="실습 2) AI 단계 프롬프트(분류+추출)",
prompt2="너는 이메일 분류/추출기야.\n입력은 이메일 본문이야.\n1) 카테고리(요청/문의/공지/기타)로 분류\n2) 핵심 요약 3줄\n3) 액션 아이템(담당/기한 추정)\n4) 시트에 넣을 필드 추출(표)\n출력: JSON + 표(열: 필드, 값)",
prompt2_tips=["출력 형식을 고정", "담당/기한이 핵심", "필드 추출로 자동 기록"],
table_title="워크플로우 예시(메일→슬랙→시트)",
table_columns=["단계", "입력", "출력"],
table_rows=[["Trigger", "특정 메일 수신", "본문/제목"], ["AI Step", "본문", "요약+카테고리"], ["Action", "요약", "슬랙 알림"], ["Log", "필드", "시트 기록"]],
risks=["오작동으로 잘못된 알림/기록", "민감정보 유출", "중복 실행", "운영 부재"],
mitigations=["승인 단계/조건 필터", "가명화/필드 최소화", "중복 방지 키", "에러 알림/로그"],
checklist=["트리거가 명확한가", "예외/승인이 있는가", "민감정보를 최소화했나", "중복 방지 장치가 있나", "에러 알림이 있나"],
rollout=["팀 1개 흐름부터 파일럿", "체크리스트로 승인", "성과(절감시간) 공유", "표준 템플릿으로 확장"],
summary=["자동화는 ‘작게 시작→안전하게 확장’", "Trigger-AI-Action-Log가 기본 구조", "예외/승인/로그가 안전장치", "오늘 행동: 내 업무 1개를 Trigger/Action으로 정의"],
),
Topic(
category="리더십",
title="AI 시대의 리더십 - 데이터로 결정하고 AI로 실행하라",
ppt_title=None,
seed_prompt='"리더를 위한 AI 의사결정 전략" 주제야. 리더가 AI를 성과 관리에 어떻게 활용할지, 팀원들의 AI 활용도를 높이기 위한 코칭법은 무엇인지 다뤄줘. 권위 있으면서도 혁신적인 리더의 모습을 투영해줘.',
leader_why=["AI는 도구가 아니라 ‘의사결정 시스템’의 일부", "성과 관리는 데이터 정의/KPI가 핵심", "팀 AI 활용도를 올리려면 코칭/표준이 필요", "리스크(보안/품질)를 통제해야 확장", "리더의 질문/프레임이 조직을 바꾼다"],
worker_why=["리더의 기준이 명확하면 실행이 쉬움", "데이터 기반 의사결정은 불필요한 재작업↓", "AI는 실행(초안/분석/정리)을 가속", "코칭을 받으면 활용 격차가 줄어듦", "성과가 투명해지면 성장 경로가 보임"],
myth=["AI 도입은 IT의 일이다", "리더는 결과만 보면 된다", "KPI는 나중에 잡아도 된다", "팀원에게 알아서 쓰라 하면 된다"],
reality=["리더가 목표/지표/리스크를 설계", "과정(검증/승인)이 품질을 만든다", "KPI 없이는 확장할 수 없다", "코칭/템플릿이 활용도를 만든다"],
effects=["의사결정 속도↑(정보 요약/대안 비교)", "성과 관리의 일관성↑", "팀 생산성 표준화", "리스크 감소(검증/승인)", "학습 문화 정착"],
concepts=["KPI/지표 정의", "의사결정 질문 프레임", "Human-in-the-loop", "성과 리뷰(주간/월간)", "코칭(템플릿/리뷰)", "거버넌스(보안/규정)"],
framework_steps=["목표/지표 정의", "데이터 수집/정의 통일", "AI로 요약/분석(대안 생성)", "검증/리스크 리뷰", "결정/실행 계획 작성", "성과 리뷰/개선"],
good=["지표 정의가 명확", "대안/리스크를 함께 본다", "코칭(템플릿)으로 표준화", "리뷰로 지속 개선"],
bad=["감으로 결정", "결론만 보고 근거 없음", "AI 결과를 무비판 수용", "팀마다 제각각 도구 사용"],
mistakes=["KPI를 너무 많이 설정", "정의/단위가 다른 데이터 혼용", "검증 없이 실행", "코칭 없이 방치", "리스크 발생 후 대응"],
prompt1_title="실습 1) 리더의 의사결정 질문 템플릿",
prompt1="너는 경영진 보좌관이야.\n의사결정 주제: [주제]\n목표: [목표]\n제약: [기간/예산/규정]\n아래 형식으로 1페이지 의사결정 메모를 만들어줘.\n- 결론(추천안) 3줄\n- 옵션 3개 비교(효과/비용/리스크)\n- 필요한 추가 데이터/검증\n- 다음 행동(담당/기한)\n출력: 표 + 요약",
prompt1_tips=["옵션 3개 강제", "추가 데이터/검증 포함", "담당/기한까지"],
prompt2_title="실습 2) 팀 AI 활용 코칭 플랜",
prompt2="너는 리더 코치야.\n팀 구성: [구성]\n업무: [업무]\n팀의 AI 활용도를 4주 안에 올리는 코칭 플랜을 만들어줘.\n- 주차별 목표\n- 템플릿 5개 선정\n- 리뷰/공유 운영 방법\n- 측정 지표(절감시간/품질)\n출력: 4주 로드맵 + 체크리스트",
prompt2_tips=["템플릿 5개로 시작", "리뷰/공유가 핵심", "지표는 간단히"],
table_title="성과 관리 지표(예시)",
table_columns=["영역", "지표", "측정 방법"],
table_rows=[["생산성", "절감시간(분)", "전/후 기록"], ["품질", "재작업 횟수", "리뷰 로그"], ["활용", "템플릿 사용률", "라이브러리 조회"], ["리스크", "보안 위반 0건", "점검"]],
risks=["지표 정의 오류", "AI 과신으로 오판", "팀 내 격차 확대", "보안/규정 위반"],
mitigations=["지표 정의서/단위 통일", "검증/승인 프로세스", "코칭/템플릿 표준화", "가이드라인/점검"],
checklist=["목표/KPI가 명확한가", "데이터 정의가 통일됐나", "옵션/리스크를 같이 봤나", "코칭/공유 운영이 있나", "보안 체크가 내재화됐나"],
rollout=["리더가 질문 템플릿을 먼저 사용", "주간 성과 리뷰에 AI 활용 포함", "템플릿 라이브러리 구축", "확장 시 거버넌스 강화"],
summary=["리더십은 목표/지표/리스크를 설계하는 것", "AI는 의사결정과 실행을 가속한다", "코칭/템플릿/리뷰로 활용도를 만든다", "오늘 행동: 의사결정 메모 템플릿 1개 도입"],
),
]
def main() -> None:
schema = (COMMON / "slides.schema.json").read_text(encoding="utf-8")
example = (COMMON / "slides.example.json").read_text(encoding="utf-8")
wrapper = wrapper_make_ppt_py()
for t in topics():
d = ROOT / t.title
d.mkdir(parents=True, exist_ok=True)
dump_json(d / "slides.json", spec_for(t))
dump_text(d / f"PROMPT_{t.title}.txt", prompt_text(title=(t.ppt_title or t.title), category=t.category, seed_prompt=t.seed_prompt))
dump_text(d / "make_ppt.py", wrapper)
dump_text(d / "slides.schema.json", schema)
dump_text(d / "slides.example.json", example)
print("done")
if __name__ == "__main__":
main()