feat: Add OurDigital custom skills package (10 skills)

Complete implementation of OurDigital skills with dual-platform support
(Claude Desktop + Claude Code) following standardized structure.

Skills created:
- 01-ourdigital-brand-guide: Brand reference & style guidelines
- 02-ourdigital-blog: Korean blog drafts (blog.ourdigital.org)
- 03-ourdigital-journal: English essays (journal.ourdigital.org)
- 04-ourdigital-research: Research prompts & workflows
- 05-ourdigital-document: Notion-to-presentation pipeline
- 06-ourdigital-designer: Visual/image prompt generation
- 07-ourdigital-ad-manager: Ad copywriting & keyword research
- 08-ourdigital-trainer: Training materials & workshop planning
- 09-ourdigital-backoffice: Quotes, proposals, cost analysis
- 10-ourdigital-skill-creator: Meta skill for creating new skills

Features:
- YAML frontmatter with "ourdigital" or "our" prefix triggers
- Standardized directory structure (code/, desktop/, shared/, docs/)
- Shared environment setup (_ourdigital-shared/)
- Comprehensive reference documentation
- Cross-skill integration support

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-31 16:50:17 +07:00
parent 7d20abe811
commit 0bc24d00b9
169 changed files with 9970 additions and 741 deletions

View File

@@ -0,0 +1,88 @@
# OurDigital Brand Guide
Reference skill for OurDigital brand standards, writing style, and visual identity.
## Purpose
This skill provides comprehensive brand guidelines for:
- Brand foundation (mission, values, positioning)
- Writing style (Korean/English)
- Visual identity (colors, typography)
- Channel-specific tone and manner
- Brand compliance checking
## Activation
Only activates with "ourdigital" keyword:
- "ourdigital 브랜드 가이드"
- "ourdigital brand guide"
- "ourdigital 톤앤매너"
- "ourdigital 스타일 체크"
## Structure
```
01-ourdigital-brand-guide/
├── code/
│ └── SKILL.md # Claude Code version
├── desktop/
│ └── SKILL.md # Claude Desktop version
├── shared/
│ ├── references/
│ │ ├── brand-foundation.md # Complete brand identity
│ │ ├── writing-style.md # Writing guidelines
│ │ └── color-palette.md # Visual identity
│ └── assets/
│ └── tokens.css # CSS variables
├── docs/
│ ├── CHANGELOG.md
│ └── logs/
└── README.md
```
## Quick Reference
### Brand Identity
| Element | Content |
|---------|---------|
| Brand Name | OurDigital Clinic |
| Tagline | 우리 디지털 클리닉 \| Your Digital Health Partner |
| Philosophy | Precision + Empathy + Evidence |
### Core Values
- **Data-driven** (데이터 중심) - 정밀 검사
- **In-Action** (실행 지향) - 실행 가능한 처방
- **Marketing Science** (마케팅 과학) - 근거 중심 의학
### Channel Tones
| Channel | Tone |
|---------|------|
| ourdigital.org | Professional, Data-driven |
| blog.ourdigital.org | Analytical, Educational |
| journal.ourdigital.org | Conversational, Poetic |
| ourstory.day | Intimate, Authentic |
### Primary Colors
| Color | HEX | Usage |
|-------|-----|-------|
| D.Black | #221814 | Dark backgrounds |
| D.Olive | #cedc00 | Primary accent, CTA |
| D.Green | #287379 | Secondary accent |
| D.Blue | #0075c0 | Links |
## Sources
- [OurDigital Brand Guide](https://www.ourdigital.org/brand-guide/)
- Notion: Our Digital Blog Styleguide
- Notion: Brand Color Palette
- Notion: OurDigital 브랜드 가이드 시스템 프레임워크
## Version
- Current: 1.0.0
- Author: OurDigital
- Environment: Both (Desktop & Code)

View File

@@ -0,0 +1,145 @@
---
name: ourdigital-brand-guide
description: |
OurDigital brand standards and style guide reference.
Activated with "ourdigital" keyword for brand queries.
Triggers:
- "ourdigital 브랜드 가이드", "ourdigital brand guide"
- "ourdigital 톤앤매너", "ourdigital style check"
- "ourdigital 브랜드 적합성", "ourdigital voice"
Features:
- Brand foundation reference
- Writing style guidelines
- Visual identity standards
- Brand compliance checking
version: "1.0"
author: OurDigital
environment: Code
---
# OurDigital Brand Guide (Code)
Reference skill for OurDigital brand standards in Claude Code environment.
## Activation
Only with "ourdigital" keyword:
- "ourdigital 브랜드 가이드"
- "ourdigital brand check"
## Brand Quick Reference
### Identity
```yaml
Brand: OurDigital Clinic
Tagline: 우리 디지털 클리닉 | Your Digital Health Partner
Mission: 디지털 마케팅 클리닉 for SMBs
Promise: 진단-처방-측정 가능한 성장
Philosophy: Precision + Empathy + Evidence
```
### Core Values
| Value | Korean | Metaphor |
|-------|--------|----------|
| Data-driven | 데이터 중심 | 정밀 검사 |
| In-Action | 실행 지향 | 실행 가능한 처방 |
| Marketing Science | 마케팅 과학 | 근거 중심 의학 |
## Channel Tone
| Channel | Tone |
|---------|------|
| ourdigital.org | Professional, Data-driven |
| blog.ourdigital.org | Analytical, Educational |
| journal.ourdigital.org | Conversational, Poetic |
| ourstory.day | Intimate, Authentic |
## Writing Style
### Korean Style
1. **철학-기술 융합**: 기술과 인간적 함의 연결
2. **역설 활용**: 긴장/모순으로 논증
3. **수사적 질문**: 질문으로 참여 유도
4. **우울한 낙관주의**: 불안 인정, 절망 거부
### Writing Rules
**Do:**
- Paradox for structure
- Rhetorical questions
- Korean + English technical terms
- Historical/generational context
**Don't:**
- Purely declarative authority
- Simplistic optimism
- Prescriptive conclusions
- Ignoring cultural impact
## Color Palette
```css
/* Primary */
--d-black: #221814; /* Dark backgrounds */
--d-olive: #cedc00; /* Primary accent, CTA */
--d-green: #287379; /* Secondary accent */
--d-blue: #0075c0; /* Links */
--d-beige: #f2f2de; /* Light on dark */
--d-gray: #ebebeb; /* Alt backgrounds */
--d-border: #cdcac8; /* Borders */
/* D.HIVE */
--d-hive-yellow: #ffe100;
--d-hive-orange: #f1a615;
--d-hive-skyblue: #21a8bc;
```
### Typography
- Korean: `Noto Sans KR`
- English: `Noto Sans`, `Inter`
- Grid: 12-column
## Brand Compliance
Check content against:
1. ✓ Channel tone match
2. ✓ Core values reflected
3. ✓ Philosophy alignment
4. ✓ Language style correct
5. ✓ Color palette used
## Key Messages
| Purpose | Message |
|---------|---------|
| Tagline | 우리 디지털 클리닉 |
| Value | 데이터로 진단하고, 실행으로 처방합니다 |
| Process | 진단 → 처방 → 측정 |
## CTA Library
```
무료 상담 신청하기
SEO 진단 신청하기
콘텐츠 전략 상담 신청하기
맞춤 견적 상담받기
```
## File References
```
01-ourdigital-brand-guide/
├── shared/references/
│ ├── brand-foundation.md
│ ├── writing-style.md
│ └── color-palette.md
└── shared/assets/
└── tokens.css
```

View File

@@ -0,0 +1,151 @@
---
name: ourdigital-brand-guide
description: |
OurDigital 브랜드 기준 및 스타일 가이드 참조 스킬.
Activated with "ourdigital" keyword for brand-related queries.
Triggers (ourdigital or our prefix):
- "ourdigital brand guide", "our brand guide"
- "ourdigital 브랜드 가이드", "our 브랜드 가이드"
- "ourdigital 톤앤매너", "our 톤앤매너"
- "ourdigital style check", "our style check"
Features:
- Brand foundation & values reference
- Writing style guidelines (Korean/English)
- Visual identity & color palette
- Channel-specific tone mapping
- Brand compliance checking
version: "1.0"
author: OurDigital
environment: Desktop
---
# OurDigital Brand Guide
Reference skill for OurDigital brand standards, writing style, and visual identity.
## Activation
Activate with "ourdigital" or "our" prefix:
- "ourdigital 브랜드 가이드" / "our 브랜드 가이드"
- "ourdigital 톤앤매너 체크" / "our 톤앤매너"
- "our brand guide", "our style check"
## Brand Foundation
### Core Identity
| Element | Content |
|---------|---------|
| **Brand Name** | OurDigital Clinic |
| **Tagline** | 우리 디지털 클리닉 \| Your Digital Health Partner |
| **Mission** | 디지털 마케팅 클리닉 for SMBs, 자영업자, 프리랜서, 비영리단체 |
| **Promise** | 진단-처방-측정 가능한 성장 |
### Core Values
| 가치 | English | 클리닉 메타포 |
|------|---------|--------------|
| 데이터 중심 | Data-driven | 정밀 검사 |
| 실행 지향 | In-Action | 실행 가능한 처방 |
| 마케팅 과학 | Marketing Science | 근거 중심 의학 |
### Brand Philosophy
**"Precision + Empathy + Evidence"**
## Channel Tone Matrix
| Channel | Domain | Personality | Tone |
|---------|--------|-------------|------|
| Main Hub | ourdigital.org | Professional & Confident | Data-driven, Solution-oriented |
| Blog | blog.ourdigital.org | Analytical & Personal | Educational, Thought-provoking |
| Journal | journal.ourdigital.org | Conversational & Poetic | Reflective, Cultural Observer |
| OurStory | ourstory.day | Intimate & Reflective | Authentic, Personal Journey |
## Writing Style Characteristics
### Korean (한국어)
1. **철학-기술 융합체**: 기술 분석과 실존적 질문을 자연스럽게 결합
2. **역설 활용**: 긴장과 모순 구조로 논증 전개
3. **수사적 질문**: 선언적 권위보다 질문을 통한 참여
4. **우울한 낙관주의**: 불안과 상실을 인정하되 절망하지 않음
### English
1. **Philosophical-Technical Hybridization**: Technical content with human implications
2. **Paradox as Device**: Structure arguments around tensions
3. **Rhetorical Questions**: Interrogative engagement over authority
4. **Melancholic Optimism**: Acknowledge anxiety without despair
### Do's and Don'ts
**Do's:**
- Use paradox to structure arguments
- Ask rhetorical questions to engage readers
- Connect technical content to human implications
- Blend Korean and English naturally for technical terms
- Reference historical context and generational shifts
**Don'ts:**
- Avoid purely declarative, authoritative tone
- Don't separate technical analysis from cultural impact
- Avoid simplistic or overly optimistic narratives
- Don't provide prescriptive conclusions without exploration
## Visual Identity
### Primary Colors
| Token | Color | HEX | Usage |
|-------|-------|-----|-------|
| --d-black | D.Black | #221814 | Footer, dark backgrounds |
| --d-olive | D.Olive | #cedc00 | Primary accent, CTA buttons |
| --d-green | D.Green | #287379 | Links hover, secondary accent |
| --d-blue | D.Blue | #0075c0 | Links |
| --d-beige | D.Beige | #f2f2de | Light text on dark |
| --d-gray | D.Gray | #ebebeb | Alt backgrounds |
### Typography
- **Korean**: Noto Sans KR
- **English**: Noto Sans, Inter
- **Grid**: 12-column responsive layout
## Brand Compliance Check
When reviewing content, verify:
1. **Tone Match**: Does it match the channel's personality?
2. **Value Alignment**: Reflects Data-driven, In-Action, Marketing Science?
3. **Philosophy Check**: Precision + Empathy + Evidence present?
4. **Language Style**: Appropriate blend of Korean/English terms?
5. **Visual Consistency**: Uses approved color palette?
## Quick Reference
### Key Messages
| Use | Message |
|-----|---------|
| Tagline | 우리 디지털 클리닉 \| Your Digital Health Partner |
| Value Prop | 데이터로 진단하고, 실행으로 처방합니다 |
| Process | 진단 → 처방 → 측정 |
| Differentiator | 25년 경험의 마케팅 사이언티스트 |
### CTA Patterns
| Context | CTA |
|---------|-----|
| General | 무료 상담 신청하기 |
| SEO | SEO 진단 신청하기 |
| Content | 콘텐츠 전략 상담 신청하기 |
## References
See `shared/references/` for detailed guides:
- `brand-foundation.md` - Complete brand identity
- `writing-style.md` - Detailed writing guidelines
- `color-palette.md` - Full color system with CSS variables

View File

@@ -0,0 +1,32 @@
# Changelog
All notable changes to ourdigital-brand-guide will be documented here.
## [1.0.0] - 2026-01-31
### Added
- Initial skill creation
- Desktop and Code versions
- Comprehensive brand foundation reference
- Korean and English writing style guidelines
- Complete color palette with CSS tokens
- Channel-specific tone matrix
- Brand compliance checking guidelines
### Files
- `desktop/SKILL.md` - Claude Desktop version
- `code/SKILL.md` - Claude Code version
- `shared/references/brand-foundation.md` - Complete brand identity
- `shared/references/writing-style.md` - Writing guidelines
- `shared/references/color-palette.md` - Visual identity
- `shared/assets/tokens.css` - CSS variable system
### Sources
- https://www.ourdigital.org/brand-guide/
- Notion: Our Digital Blog Styleguide
- Notion: Brand Color Palette
- Notion: OurDigital 브랜드 가이드 시스템 프레임워크
- Notion: Summary - OurDigital 브랜드 가이드 및 웹 콘텐츠 프로젝트
### Notion Ref
- (To be synced)

View File

@@ -0,0 +1,69 @@
/**
* OurDigital Brand Tokens
* Complete CSS variable system for OurDigital visual identity
*/
:root {
/* ===== D.intelligence Primary Colors ===== */
--d-black: #221814; /* D.Black - Primary dark */
--d-olive: #cedc00; /* D.Olive - Brand accent */
--d-green: #287379; /* D.Green - Secondary accent */
--d-blue: #0075c0; /* D.Blue - Link/action */
--d-beige: #f2f2de; /* D.Beige - Light background */
--d-gray: #ebebeb; /* D.Gray - Background alt */
--d-border: #cdcac8; /* Border Line */
/* ===== D.HIVE Colors ===== */
--d-hive-yellow: #ffe100; /* D.HIVE Yellow */
--d-hive-orange: #f1a615; /* D.HIVE Orange */
--d-hive-skyblue: #21a8bc; /* D.HIVE Sky Blue */
/* ===== Text Colors ===== */
--color-text-black: #000000; /* Black text */
--color-text-gray: #7a7a7b; /* Gray text */
--color-text-white: #ffffff; /* White text */
/* ===== Semantic Mappings ===== */
--color-accent: #cedc00; /* Primary accent = D.Olive */
--color-dark: #221814; /* Dark = D.Black */
--color-text-main: #000000; /* Main text = Black */
--color-text-dim: #7a7a7b; /* Dim text = Gray */
--color-link: #0075c0; /* Links = D.Blue */
--color-link-hover: #287379; /* Link hover = D.Green */
--color-bg: #ffffff; /* Background = White */
--color-bg-alt: #ebebeb; /* Alt background = D.Gray */
--color-border: #cdcac8; /* Borders = Border Line */
/* ===== Typography ===== */
--font-primary: "Inter", "Noto Sans KR", system-ui, -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
--font-korean: "Noto Sans KR", system-ui, sans-serif;
--font-english: "Inter", "Noto Sans", system-ui, sans-serif;
--text-size-body: 16px;
--text-size-small: 14px;
--text-size-caption: 12px;
--text-size-h1: 2.5rem;
--text-size-h2: 2rem;
--text-size-h3: 1.5rem;
--text-size-h4: 1.25rem;
/* ===== Spacing ===== */
--spacing-xs: 0.25rem;
--spacing-sm: 0.5rem;
--spacing-md: 1rem;
--spacing-lg: 1.5rem;
--spacing-xl: 2rem;
--spacing-2xl: 3rem;
/* ===== Border Radius ===== */
--radius-sm: 4px;
--radius-md: 8px;
--radius-lg: 12px;
--radius-full: 9999px;
/* ===== Shadows ===== */
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
}

View File

@@ -0,0 +1,127 @@
# OurDigital Brand Foundation
Complete brand identity reference for OurDigital Clinic.
## Brand Identity
### Core Elements
| Element | Content |
|---------|---------|
| **Brand Name** | OurDigital Clinic |
| **Tagline** | 우리 디지털 클리닉 \| Your Digital Health Partner |
| **Mission** | 디지털 마케팅 클리닉 for SMBs, 자영업자, 프리랜서, 비영리단체 |
| **Vision** | 데이터 민주화, 정밀 마케팅, 지속 가능한 성장 |
| **Promise** | 진단-처방-측정 가능한 성장 |
### Core Values
| 가치 | English | 클리닉 메타포 | 설명 |
|------|---------|--------------|------|
| 데이터 중심 | Data-driven | 정밀 검사 | 감이 아닌 데이터로 판단 |
| 실행 지향 | In-Action | 실행 가능한 처방 | 분석에서 끝나지 않는 실행력 |
| 마케팅 과학 | Marketing Science | 근거 중심 의학 | 검증된 방법론과 프레임워크 |
### Brand Philosophy
**"Precision + Empathy + Evidence"**
Accurate diagnosis, stakeholder understanding, and measurable validation across all communications.
## Positioning Statement
> For 디지털 마케팅 역량이 필요한 중소기업 who want 데이터 기반 의사결정,
> OurDigital Clinic is 디지털 마케팅 클리닉 that provides 진단-처방-측정 프로세스,
> unlike 일회성 캠페인 대행사, we deliver 25년 경험과 마케팅 사이언스 방법론
## Target Audience
- **Primary**: SMB 마케팅 담당자, 자영업자, 프리랜서, 비영리단체
- **Secondary**: 스타트업 창업자, 브랜드 매니저
## Founder Profile
| Field | Content |
|-------|---------|
| **Name** | 임명재 (Andrew Yim) \| Dr.D |
| **Experience** | 25년+ 디지털 마케팅 |
| **Credentials** | Google Data Analytics, Advanced Data Analytics, Business Intelligence |
| **Key Clients** | GS칼텍스, 삼성전자, LG전자, 코카-콜라, 아모레퍼시픽, 조선호텔 등 |
## Brand Architecture
### Channel Hierarchy
| Level | Element | Description |
|-------|---------|-------------|
| Level 1 | Master Brand | OurDigital Clinic |
| Level 2 | Channel Identity | Blog, Journal, OurStory |
| Level 3 | Service Identity | 4개 핵심 서비스 |
### Channel Personality & Tone
| Channel | Domain | Personality | Tone | Content Type |
|---------|--------|-------------|------|--------------|
| Main Hub | ourdigital.org | Professional & Confident | Data-driven, Solution-oriented | 서비스, 케이스, 리드 |
| Blog | blog.ourdigital.org | Analytical & Personal | Educational, Thought-provoking | 가이드, 분석, 인사이트 |
| Journal | journal.ourdigital.org | Conversational & Poetic | Reflective, Cultural Observer | 에세이, 문화, 관찰 |
| OurStory | ourstory.day | Intimate & Reflective | Authentic, Personal Journey | 개인 서사, 경험 |
| D.intelligence | dintelligence.co.kr | Professional | B2B | Corporate Partnership |
### Content Flow Strategy
```
Discovery (Blog) → Engagement (Journal) → Conversion (Main Site)
```
### Publishing Cadence
| Channel | Frequency | Length |
|---------|-----------|--------|
| ourdigital.org | 필요시 업데이트 | 서비스별 상세 |
| blog.ourdigital.org | 주 1-2회 | 1,500-3,000자 |
| journal.ourdigital.org | 월 2-4회 | 1,000-2,000자 |
| ourstory.day | 월 1-2회 | 800-1,500자 |
## Service Portfolio
### Four Core Services
| Service | URL | Price Range | Focus |
|---------|-----|-------------|-------|
| SEO & Digital Growth | /services/seo-digital-growth/ | ₩1,500,000~ | 기술SEO, 온페이지, 콘텐츠SEO, 엔티티SEO |
| Content Marketing & Strategy | /services/content-marketing/ | ₩2,000,000~ | 토픽클러스터, 에디토리얼시스템, 브랜드보이스 |
| Performance Marketing & Analytics | /services/performance-marketing/ | ₩1,800,000~ | GA4, 대시보드, 광고성과분석, KPI체계 |
| Brand Intelligence | /services/brand-intelligence/ | ₩2,500,000~ | AORI Framework, 브랜드가시성, 평판분석 |
### Proprietary Frameworks
**AORI Framework** (Brand Intelligence):
- **A**uthority: 권위
- **O**utreach: 도달
- **R**elevance: 관련성
- **I**nfluence: 영향력
**FLOW Framework** (Content Marketing):
- **F**ind: 토픽 발굴
- **L**ink: 구조화 & 연결
- **O**ptimize: 최적화
- **W**in: 성과 창출
## Key Messages
| Use Case | Message |
|----------|---------|
| Tagline | 우리 디지털 클리닉 \| Your Digital Health Partner |
| Value Proposition | 데이터로 진단하고, 실행으로 처방합니다 |
| Process | 진단 → 처방 → 측정 |
| Differentiator | 25년 경험의 마케팅 사이언티스트 |
## CTA Library
| Context | CTA Text |
|---------|----------|
| General | 무료 상담 신청하기 |
| SEO | SEO 진단 신청하기 |
| Content | 콘텐츠 전략 상담 신청하기 |
| Quote | 맞춤 견적 상담받기 |

View File

@@ -0,0 +1,121 @@
# OurDigital Brand Color Palette
Complete color system for OurDigital visual identity.
## Primary Colors
| Token | Name | HEX | RGB | Usage |
|-------|------|-----|-----|-------|
| `--d-black` | D.Black | #221814 | rgb(34, 24, 20) | Footer, dark backgrounds |
| `--d-olive` | D.Olive | #cedc00 | rgb(206, 220, 0) | Primary accent, CTA buttons |
| `--d-green` | D.Green | #287379 | rgb(40, 115, 121) | Links hover, secondary accent |
| `--d-blue` | D.Blue | #0075c0 | rgb(0, 117, 192) | Links |
| `--d-beige` | D.Beige | #f2f2de | rgb(242, 242, 222) | Light text on dark backgrounds |
| `--d-gray` | D.Gray | #ebebeb | rgb(235, 235, 235) | Alt backgrounds |
| `--d-border` | Border | #cdcac8 | rgb(205, 202, 200) | Border lines |
## D.HIVE Colors (Secondary)
| Token | Name | HEX | Usage |
|-------|------|-----|-------|
| `--d-hive-yellow` | D.HIVE Yellow | #ffe100 | Highlight accent |
| `--d-hive-orange` | D.HIVE Orange | #f1a615 | Warning, attention |
| `--d-hive-skyblue` | D.HIVE Sky Blue | #21a8bc | Info, secondary links |
## Text Colors
| Token | HEX | Usage |
|-------|-----|-------|
| `--color-text-black` | #000000 | Primary text |
| `--color-text-gray` | #7a7a7b | Secondary/dimmed text |
| `--color-text-white` | #ffffff | Text on dark backgrounds |
## Semantic Mappings
| Token | Maps To | Usage |
|-------|---------|-------|
| `--color-accent` | #cedc00 (D.Olive) | Primary accent |
| `--color-dark` | #221814 (D.Black) | Dark elements |
| `--color-text-main` | #000000 | Main text |
| `--color-text-dim` | #7a7a7b | Dim text |
| `--color-link` | #0075c0 (D.Blue) | Links |
| `--color-link-hover` | #287379 (D.Green) | Link hover |
| `--color-bg` | #ffffff | Background |
| `--color-bg-alt` | #ebebeb (D.Gray) | Alt background |
| `--color-border` | #cdcac8 | Borders |
## CSS Variables
```css
:root {
/* D.intelligence Primary Colors */
--d-black: #221814;
--d-olive: #cedc00;
--d-green: #287379;
--d-blue: #0075c0;
--d-beige: #f2f2de;
--d-gray: #ebebeb;
--d-border: #cdcac8;
/* D.HIVE Colors */
--d-hive-yellow: #ffe100;
--d-hive-orange: #f1a615;
--d-hive-skyblue: #21a8bc;
/* Text Colors */
--color-text-black: #000000;
--color-text-gray: #7a7a7b;
--color-text-white: #ffffff;
/* Semantic Mappings */
--color-accent: #cedc00;
--color-dark: #221814;
--color-text-main: #000000;
--color-text-dim: #7a7a7b;
--color-link: #0075c0;
--color-link-hover: #287379;
--color-bg: #ffffff;
--color-bg-alt: #ebebeb;
--color-border: #cdcac8;
}
```
## Typography
| Purpose | Font Family |
|---------|-------------|
| Korean | Noto Sans KR |
| English Primary | Noto Sans |
| English Emphasis | Inter |
| Annotations | Helvetica Neue |
### Font Stack
```css
--font-primary: "Inter", "Noto Sans KR", system-ui, -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
--text-size-body: 16px;
```
## Grid System
- **Columns**: 12-column responsive layout
- **Breakpoints**: Standard responsive breakpoints
## Color Usage by Component
| Component | Background | Text | Accent |
|-----------|------------|------|--------|
| Header | White | D.Black | D.Olive |
| Footer | D.Black | D.Beige | D.Olive |
| CTA Button | D.Olive | D.Black | - |
| Links | - | D.Blue | D.Green (hover) |
| Cards | White/D.Gray | D.Black | D.Olive |
| Forms | White | D.Black | D.Blue (focus) |
## Accessibility Notes
- Ensure sufficient contrast ratios (WCAG 2.1 AA minimum)
- D.Olive (#cedc00) on D.Black (#221814) passes contrast
- D.Blue (#0075c0) on white passes contrast for links
- Use D.Black for primary text to ensure readability

View File

@@ -0,0 +1,152 @@
# OurDigital Writing Style Guide
Comprehensive writing guidelines for OurDigital content across all channels.
## Overview
| Field | Value |
|-------|-------|
| **Author** | Andrew Yim |
| **Primary Blog** | blog.ourdigital.org |
| **Tagline** | 사람, 디지털 그리고 문화 (People, Digital, and Culture) |
| **Platform** | Ghost CMS |
| **History** | 2004-2025 (20+ years of content) |
---
## Part 1: 한국어 스타일가이드
### 핵심 글쓰기 특성
#### 1. 철학-기술 융합체
기술 분석과 실존적 질문을 자연스럽게 결합한다. 기술 콘텐츠(AI 아키텍처, 엔터프라이즈 시스템)는 결코 인간적 함의와 분리되지 않는다.
**예시**: Llama 4와 DeepSeek 비교 글에서도 거버넌스 우려와 사회적 영향을 포함한다.
#### 2. 역설(Paradox)을 주요 수사 장치로 활용
논증을 긴장과 모순 구조로 전개한다:
- 인간이 컴퓨터를 모방하면서 컴퓨터가 인간을 모방하는 역설
- 기술이 해방하면서 동시에 의미를 축소하는 역설
- 디지털 네이티브가 기성세대가 가르칠 수 없는 유창함을 보유하는 역설
#### 3. 수사적 질문 활용
선언적 권위보다 질문을 통한 참여를 선호한다:
> "이 디지털 세대에게 무엇을 가르쳐야 하는가?"
> "그 무한한 자유 속에서 우리는 무엇을 소중히 여기게 될 것인가?"
이는 독자와 지적 동반자 관계를 형성하며, 교훈적 지시를 피한다.
#### 4. 우울한 낙관주의 (Melancholic Optimism)
불안과 상실을 인정하되 절망하지 않는다. 기술의 불가피성을 수용하면서도 대체되는 것에 대한 진정한 우려를 표현한다.
### 문장 구조 패턴
| 요소 | 패턴 |
|------|------|
| 문장 길이 | 여러 절을 포함한 긴 복합문 - 논의되는 상호연결된 개념을 반영 |
| 단락 구조 | 관찰 → 분석 → 철학적 함의로 점진적 심화 |
| 근거 제시 | 역사적 사례, 문화간 참조, 기술 명세를 함께 엮음 |
| 결론부 | 종종 열린 결말로, 답을 제시하기보다 질문을 던짐 |
### 독자 조율
**교양 있는 일반 독자**를 대상으로 한다 — 기술의 문화적 영향에 지적 호기심을 가진 독자이지, 반드시 기술 전문가는 아니다.
기술 글에도 요약본과 은유적 앵커링("데이터 공장")을 포함해 접근성을 유지한다.
### 고유 특성
1. **이중언어 유창성** — 한국어 산문에 영어 기술 용어가 섞여 디지털 담론의 혼종적 특성을 반영
2. **시간적 인식** — 세대 변화와 역사적 맥락에 대한 강한 의식
3. **인식론적 겸손** — 특히 세대간 격차에서 이해의 한계를 인정
4. **규제 의식** — 엔터프라이즈 글에서 일관되게 컴플라이언스(GDPR, EU 규제)를 다룸
---
## Part 2: English Styleguide
### Core Writing Characteristics
#### 1. Philosophical-Technical Hybridization
Seamlessly blend technical analysis with existential questioning. Technical content (AI architectures, enterprise systems) is never divorced from human implications.
#### 2. Paradox as Primary Device
Structure arguments around tensions and contradictions:
- Humans mimicking computers while computers mimic humans
- Technology liberating yet simultaneously diminishing meaning
- Digital natives possessing fluency that elders cannot teach
#### 3. Rhetorical Questions
Favor interrogative engagement over declarative authority:
> "What should we teach this digital generation?"
> "What will we cherish in that infinite freedom?"
This creates intellectual partnership with readers rather than didactic instruction.
#### 4. Melancholic Optimism
Acknowledge anxiety and loss without despair. Accept technological inevitability alongside genuine concern for what is displaced.
### Structural Patterns
| Element | Pattern |
|---------|---------|
| Sentence Length | Long, complex sentences with multiple clauses — mirroring the interconnected concepts discussed |
| Paragraph Structure | Progressive deepening from observation → analysis → philosophical implication |
| Evidence Style | Historical examples, cross-cultural references, technical specifications woven together |
| Conclusions | Often open-ended, posing questions rather than prescribing answers |
### Audience Calibration
Target **informed generalists** — readers with intellectual curiosity about technology's cultural impact, not necessarily technical specialists.
Technical articles include executive summaries and metaphorical anchoring ("Data Factory") to maintain accessibility.
### Distinctive Qualities
1. **Bilingual Fluency** — Korean prose with occasional English technical terms
2. **Temporal Awareness** — Strong consciousness of generational shifts and historical context
3. **Epistemic Humility** — Acknowledges limits of understanding
4. **Regulatory Consciousness** — Enterprise pieces consistently address compliance
---
## Writing Do's and Don'ts
### Do's
- Use paradox to structure arguments
- Ask rhetorical questions to engage readers
- Connect technical content to human implications
- Acknowledge uncertainty and epistemic limits
- Blend Korean and English naturally for technical terms
- Reference historical context and generational shifts
### Don'ts
- Avoid purely declarative, authoritative tone
- Don't separate technical analysis from cultural impact
- Avoid simplistic or overly optimistic technology narratives
- Don't provide prescriptive conclusions without exploration
- Avoid ignoring regulatory and governance concerns
---
## Evaluation Criteria
| Dimension | Standard |
|-----------|----------|
| Intellectual Depth | High — articles reward careful reading |
| Accessibility | Moderate — assumes engaged readers willing to follow complex arguments |
| Originality | Strong — unique perspective bridging Korean cultural context with global tech trends |
| Consistency | Excellent — coherent voice across 20+ years |
| Practical Value | Mixed — philosophical pieces prioritize reflection; technical pieces provide concrete details |

View File

@@ -1,198 +0,0 @@
# OurDigital Research-to-Publisher Workflow
Transform questions into comprehensive research papers and polished blog posts for OurDigital channels.
## Workflow Overview
```
Phase 1: Discovery → Phase 2: Research Planning → Phase 3: Deep Research
Phase 4: Research Paper → Phase 5: Notion Save → Phase 6: Blog Draft
Phase 7: Ulysses Export → Phase 8: Publishing Guidance
```
## Phase 1: Discovery
**Goal**: Understand user's question and refine scope.
1. Acknowledge the topic/question
2. Ask clarifying questions (max 3 per turn):
- Target audience? (전문가/일반인/마케터)
- Depth level? (개요/심층분석/실무가이드)
- Specific angles or concerns?
3. Confirm research scope before proceeding
**Output**: Clear research objective statement
## Phase 2: Research Planning
**Goal**: Create structured research instruction.
Generate research plan with:
- Primary research questions (3-5)
- Secondary questions for depth
- Suggested tools/sources:
- Web search for current info
- Google Drive for internal docs
- Notion for past research
- Amplitude for analytics data (if relevant)
- Expected deliverables
**Output**: Numbered research instruction list
## Phase 3: Deep Research
**Goal**: Execute comprehensive multi-source research.
Tools to leverage:
- `web_search` / `web_fetch`: Current information, statistics, trends
- `google_drive_search`: Internal documents, past reports
- `Notion:notion-search`: Previous research, related notes
- `Amplitude:search` / `Amplitude:query_*`: Analytics insights (if applicable)
- `conversation_search`: Past chat context
Research execution pattern:
1. Start broad (overview searches)
2. Deep dive into key subtopics
3. Find supporting data/statistics
4. Identify expert opinions and case studies
5. Cross-reference and validate
**Output**: Organized research findings with citations
## Phase 4: Research Paper (Artifact)
**Goal**: Synthesize findings into comprehensive document.
Create HTML artifact with:
```
Structure:
├── Executive Summary (핵심 요약)
├── Background & Context (배경)
├── Key Findings (주요 발견)
│ ├── Finding 1 with evidence
│ ├── Finding 2 with evidence
│ └── Finding 3 with evidence
├── Analysis & Implications (분석 및 시사점)
├── Recommendations (제언)
├── References & Sources (참고자료)
└── Appendix (부록) - if needed
```
Style: Professional, data-driven, bilingual key terms
**Output**: Comprehensive research paper artifact
## Phase 5: Notion Save
**Goal**: Archive research to Working with AI database.
Auto-save to Notion with:
- **Database**: 🤖 Working with AI (data_source_id: f8f19ede-32bd-43ac-9f60-0651f6f40afe)
- **Properties**:
- Name: [Research topic]
- Type: "Research"
- Category: Based on topic (e.g., "SEO", "AI Literacy", "Digital Marketing")
- Topic: Relevant tags
- AI used: ["Claude 4.5"]
- Status: "Done"
- AI summary: 2-3 sentence summary
**Output**: Notion page URL confirmation
## Phase 6: Blog Draft
**Goal**: Transform research into engaging blog post.
**PROMPT USER for channel selection:**
```
📝 블로그 채널을 선택해주세요:
1. blog.ourdigital.org (Korean, 디지털 마케팅/SEO/데이터)
2. journal.ourdigital.org (English, professional insights)
3. ourstory.day (Korean, 에세이/성찰/개인적 이야기)
4. Medium (English, broader tech audience)
선택: [번호]
```
Generate MD file based on channel:
- See `references/blog-style-guide.md` for tone/voice
- Use `assets/blog-template.md` as structure reference
- Korean channels: 한글 작성, 전문용어는 영문 병기
- English channels: Professional but accessible
**Output**: Complete .md blog draft file
## Phase 7: Ulysses Export
**Goal**: Deliver MD file for Ulysses editing.
Export path: iCloud Drive folder for Ulysses sync
**PROMPT USER (first time only):**
```
📁 Ulysses 동기화 폴더 경로를 알려주세요:
예시:
- /Users/[username]/Library/Mobile Documents/com~apple~CloudDocs/Ulysses/Blog Drafts/
- 또는 선호하는 iCloud 폴더 경로
(최초 1회 설정 후 기억됩니다)
```
After receiving path:
1. Save .md file to specified iCloud folder
2. Confirm file location
3. Provide Ulysses opening instructions
**Output**: MD file in iCloud + path confirmation
## Phase 8: Publishing Guidance
**Goal**: Guide user through final publishing steps.
Provide channel-specific checklist:
### Ghost (blog.ourdigital.org / journal.ourdigital.org)
- [ ] Ulysses에서 최종 교정 완료
- [ ] Ghost 관리자 페이지에서 새 포스트 생성
- [ ] MD 콘텐츠 붙여넣기
- [ ] Featured image 설정
- [ ] SEO meta (title, description, URL slug)
- [ ] Tags/Categories 설정
- [ ] 발행 또는 예약 발행
### ourstory.day (Ghost)
- Same as above, personal essay tone check
### Medium
- [ ] Medium 에디터에서 새 story
- [ ] Import from clipboard or MD
- [ ] Add images/embeds
- [ ] Tags (max 5)
- [ ] Publication 선택 (if applicable)
**OFFER**: "Ghost API로 자동 발행을 원하시면 알려주세요."
---
## Quick Commands
| Command | Action |
|---------|--------|
| "연구 시작" / "research this" | Start Phase 1 |
| "초안 작성" / "draft blog" | Skip to Phase 6 (if research exists) |
| "노션 저장" | Execute Phase 5 only |
| "발행 가이드" | Show Phase 8 checklist |
| "handoff summary" | Generate context transfer summary |
## Channel Reference
| Channel | Language | Tone | Topics |
|---------|----------|------|--------|
| blog.ourdigital.org | Korean | Professional, practical | SEO, Digital Marketing, Data |
| journal.ourdigital.org | English | Insightful, analytical | Industry trends, Best practices |
| ourstory.day | Korean | Personal, reflective | Essays, Life lessons, Reflections |
| Medium | English | Accessible, engaging | Tech, Marketing, AI |

View File

@@ -0,0 +1,80 @@
# OurDigital Blog
Korean blog draft creation skill for blog.ourdigital.org.
## Purpose
Generate Korean blog posts with:
- OurDigital brand voice compliance
- SEO-optimized metadata
- Ghost CMS format output
- Ulysses export support
## Activation
Only activates with "ourdigital" keyword:
- "ourdigital 블로그 써줘"
- "ourdigital blog 초안"
- "ourdigital 한국어 포스트 [주제]"
## Channel Profile
| Field | Value |
|-------|-------|
| URL | blog.ourdigital.org |
| Language | Korean (전문용어 영문 병기) |
| Tone | Analytical & Personal |
| Length | 1,500-3,000자 |
## Structure
```
02-ourdigital-blog/
├── code/SKILL.md
├── desktop/SKILL.md
├── shared/
│ ├── references/
│ │ └── blog-style-guide.md
│ ├── templates/
│ │ └── blog-template.md
│ └── scripts/
│ └── ghost_publish.py
├── docs/
│ └── CHANGELOG.md
└── README.md
```
## Usage
### Draft a Blog Post
```
User: ourdigital 블로그 써줘 - AI 마케팅 자동화에 대해
Claude: [Asks clarifying questions, generates draft]
```
### Publish to Ghost
```bash
python shared/scripts/ghost_publish.py --file post.md --draft
```
## Writing Style
- **철학-기술 융합**: 기술 분석 + 인간적 함의
- **역설 활용**: 긴장/모순으로 논증
- **수사적 질문**: 독자 참여 유도
- **전문용어 병기**: 한글(영문)
## Environment
Requires `~/.env.ourdigital`:
```
GHOST_BLOG_URL=https://blog.ourdigital.org
GHOST_BLOG_ADMIN_KEY=<admin_key>
```
## Version
- Current: 1.0.0
- Author: OurDigital

View File

@@ -0,0 +1,147 @@
---
name: ourdigital-blog
description: |
Korean blog drafting for blog.ourdigital.org.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital 블로그", "ourdigital blog"
- "ourdigital 한국어 포스트"
Features:
- Korean blog draft generation
- SEO metadata creation
- Ghost CMS export
- Ulysses integration
version: "1.0"
author: OurDigital
environment: Code
---
# OurDigital Blog (Code)
Korean blog draft creation with Ghost CMS integration.
## Activation
Only with "ourdigital" keyword:
- "ourdigital 블로그 써줘"
- "ourdigital blog 초안"
## Quick Start
```bash
# Export to Ulysses
python shared/scripts/export_blog.py --output ulysses
# Push to Ghost (draft)
python shared/scripts/ghost_publish.py --draft
```
## Channel Profile
```yaml
URL: blog.ourdigital.org
Language: Korean (영문 전문용어 병기)
Tone: Analytical, Educational
Platform: Ghost CMS
Length: 1,500-3,000자
Frequency: 주 1-2회
```
## Workflow
### 1. Topic Clarification
Ask:
1. 주제가 무엇인가요?
2. 타겟 독자는? (마케터/개발자/일반)
3. 깊이 수준? (개요/심층/실무가이드)
### 2. Draft Structure
```
1. 도입부 (Hook + Context)
2. 본론 (3-5 핵심 포인트)
- 주장 → 근거 → 함의
3. 결론 (Summary + 열린 질문)
```
### 3. Writing Style
| Element | Rule |
|---------|------|
| Tone | 분석적 + 개인적 |
| Language | 한글 기본, 전문용어 영문 병기 |
| Structure | 관찰 → 분석 → 함의 |
| Questions | 수사적 질문으로 참여 유도 |
### 4. SEO Metadata
Generate:
```yaml
title: [60자 이내]
meta_description: [155자 이내]
slug: english-url-slug
tags: [tag1, tag2, tag3]
```
### 5. Output
**Markdown format:**
```markdown
---
title: "제목"
meta_description: "설명"
slug: "url-slug"
tags: ["tag1", "tag2"]
---
# 제목
[본문]
```
## Ghost Integration
```python
# Environment variables
GHOST_BLOG_URL=https://blog.ourdigital.org
GHOST_BLOG_ADMIN_KEY=<from .env.ourdigital>
```
## Export Options
1. **Ulysses**`$ULYSSES_EXPORT_PATH`
2. **Ghost Draft** → API push
3. **Local**`./output/blog/`
## Brand Compliance
Verify before export:
- ✓ 분석적 톤
- ✓ 기술 + 인간적 함의
- ✓ 전문용어 영문 병기
- ✓ 1,500-3,000자
## Scripts
| Script | Purpose |
|--------|---------|
| `export_blog.py` | Export to various targets |
| `ghost_publish.py` | Push to Ghost CMS |
## File Structure
```
02-ourdigital-blog/
├── code/SKILL.md
├── desktop/SKILL.md
├── shared/
│ ├── references/blog-style-guide.md
│ ├── templates/blog-template.md
│ └── scripts/
│ ├── export_blog.py
│ └── ghost_publish.py
└── docs/CHANGELOG.md
```

View File

@@ -0,0 +1,145 @@
---
name: ourdigital-blog
description: |
Korean blog draft creation for blog.ourdigital.org.
Activated with "ourdigital" keyword for blog writing tasks.
Triggers (ourdigital or our prefix):
- "ourdigital blog", "our blog"
- "ourdigital 블로그", "our 블로그"
- "ourdigital 한국어 포스트", "our 한국어 포스트"
Features:
- Blog draft generation in Korean
- SEO metadata (title, description, slug)
- Ghost CMS format output
- Brand voice compliance
version: "1.0"
author: OurDigital
environment: Desktop
---
# OurDigital Blog
Korean blog draft creation skill for blog.ourdigital.org.
## Activation
Activate with "ourdigital" or "our" prefix:
- "ourdigital 블로그 써줘" / "our 블로그 써줘"
- "ourdigital blog draft" / "our blog draft"
- "our 한국어 포스트 [주제]"
## Channel Profile
| Field | Value |
|-------|-------|
| **URL** | blog.ourdigital.org |
| **Language** | Korean (전문용어 영문 병기) |
| **Tone** | Analytical & Personal, Educational |
| **Platform** | Ghost CMS |
| **Frequency** | 주 1-2회 |
| **Length** | 1,500-3,000자 |
## Workflow
### Phase 1: Topic Clarification
Ask clarifying questions (max 3):
1. **주제 확인**: 정확한 토픽이 무엇인가요?
2. **대상 독자**: 타겟 오디언스는? (마케터/개발자/경영진/일반)
3. **깊이 수준**: 개요 / 심층분석 / 실무가이드 중 어느 수준?
### Phase 2: Research (Optional)
If topic requires current information:
- Use `web_search` for latest trends/data
- Use `Notion:notion-search` for past research
- Reference internal documents if available
### Phase 3: Draft Generation
Generate blog draft following brand style:
**Structure:**
```
1. 도입부 (Hook + Context)
2. 본론 (3-5 핵심 포인트)
- 각 포인트: 주장 → 근거 → 함의
3. 결론 (Summary + 열린 질문)
```
**Writing Style:**
- 철학-기술 융합: 기술 분석 + 인간적 함의
- 역설 활용: 긴장/모순으로 논증 구조화
- 수사적 질문: 독자 참여 유도
- 우울한 낙관주의: 불안 인정, 절망 거부
**Language Rules:**
- 한글 기본, 전문용어는 영문 병기
- 예: "검색엔진최적화(SEO)"
- 문장: 복합문 허용, 상호연결된 개념 반영
- 단락: 관찰 → 분석 → 철학적 함의
### Phase 4: SEO Metadata
Generate metadata:
```yaml
title: [60자 이내, 키워드 포함]
meta_description: [155자 이내]
slug: [영문 URL slug]
tags: [3-5개 태그]
featured_image_prompt: [DALL-E/Midjourney 프롬프트]
```
### Phase 5: Output Format
**Markdown Output:**
```markdown
---
title: "포스트 제목"
meta_description: "메타 설명"
slug: "url-slug"
tags: ["tag1", "tag2"]
---
# 포스트 제목
[본문 내용]
---
*Originally drafted with Claude for OurDigital Blog*
```
## Ghost CMS Integration
Export options:
1. **Markdown file** → Ulysses → Ghost
2. **Direct API** → Ghost Admin API (if configured)
API endpoint: `GHOST_BLOG_URL` from environment
## Brand Compliance
Before finalizing, verify:
- [ ] 분석적 + 개인적 톤 유지
- [ ] 기술 내용에 인간적 함의 포함
- [ ] 수사적 질문으로 독자 참여
- [ ] 전문용어 영문 병기
- [ ] 1,500-3,000자 범위
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital 블로그 [주제]" | Full workflow |
| "ourdigital blog SEO" | SEO metadata only |
| "ourdigital blog 편집" | Edit existing draft |
## References
- `shared/references/blog-style-guide.md` - Detailed writing guide
- `shared/templates/blog-template.md` - Post structure template
- `01-ourdigital-brand-guide` - Brand voice reference

View File

@@ -0,0 +1,24 @@
# Changelog
All notable changes to ourdigital-blog will be documented here.
## [1.0.0] - 2026-01-31
### Added
- Initial skill creation
- Desktop and Code versions
- Korean blog drafting workflow
- SEO metadata generation
- Ghost CMS integration script
- Blog style guide reference
- Post template
### Files
- `desktop/SKILL.md` - Desktop version
- `code/SKILL.md` - Code version
- `shared/references/blog-style-guide.md` - Writing guide
- `shared/templates/blog-template.md` - Post structure
- `shared/scripts/ghost_publish.py` - Ghost API integration
### Notion Ref
- (To be synced)

View File

@@ -0,0 +1,149 @@
# OurDigital Blog Style Guide
Detailed writing guidelines for blog.ourdigital.org.
## Channel Identity
| Field | Value |
|-------|-------|
| **Domain** | blog.ourdigital.org |
| **Tagline** | 사람, 디지털 그리고 문화 |
| **Language** | Korean (전문용어 영문 병기) |
| **Tone** | Analytical & Personal, Educational |
| **Target** | 교양 있는 일반 독자 - 기술의 문화적 영향에 호기심 있는 독자 |
## Writing Characteristics
### 1. 철학-기술 융합체
기술 분석과 실존적 질문을 자연스럽게 결합한다.
**Good Example:**
> AI가 우리의 업무를 대체할 수 있다는 사실은 분명하다. 그러나 더 중요한 질문은 "AI가 대체할 수 없는 것은 무엇인가?"이다.
**Bad Example:**
> AI는 업무 효율성을 높여준다. 다양한 분야에서 활용되고 있다.
### 2. 역설(Paradox) 활용
논증을 긴장과 모순 구조로 전개한다.
**Paradox Patterns:**
- "~하면서 동시에 ~하다"
- "~인 것 같지만 실은 ~이다"
- "~를 얻었지만 ~를 잃었다"
### 3. 수사적 질문
선언적 권위보다 질문을 통한 참여를 선호한다.
**Good:**
> 우리는 정말 데이터를 이해하고 있는 것일까?
**Bad:**
> 데이터를 이해하는 것이 중요하다.
### 4. 우울한 낙관주의
불안과 상실을 인정하되 절망하지 않는다.
**Tone Spectrum:**
```
비관 ←――――――――――――――――――→ 낙관
우울한 낙관주의
(여기에 위치)
```
## 문장 구조
| Element | Pattern |
|---------|---------|
| 문장 길이 | 긴 복합문 허용 - 상호연결된 개념 반영 |
| 단락 구조 | 관찰 → 분석 → 철학적 함의 |
| 근거 제시 | 역사적 사례 + 기술 명세 + 문화적 참조 |
| 결론 | 열린 결말, 답보다 질문 |
## 언어 규칙
### 전문용어 병기
```
✓ 검색엔진최적화(SEO)
✓ 핵심성과지표(KPI)
✓ 고객관계관리(CRM)
✗ SEO (첫 등장 시 한글 없이)
✗ 서치엔진옵티마이제이션
```
### 외래어 표기
- 영문 브랜드/제품명: 원어 유지 (Google, ChatGPT)
- 일반 외래어: 한글화 (데이터, 마케팅, 콘텐츠)
## 포스트 구조
### 도입부 (10-15%)
1. **Hook**: 독자의 관심을 끄는 질문/통계/역설
2. **Context**: 주제의 배경 설명
3. **Preview**: 글에서 다룰 내용 암시
### 본론 (70-80%)
3-5개의 핵심 포인트, 각각:
1. **주장**: 명확한 포인트 제시
2. **근거**: 데이터, 사례, 전문가 의견
3. **함의**: 이것이 의미하는 바
### 결론 (10-15%)
1. **Summary**: 핵심 내용 요약
2. **Reflection**: 더 넓은 맥락에서의 의미
3. **Open Question**: 독자가 생각할 질문
## SEO Guidelines
### Title (제목)
- 60자 이내
- 핵심 키워드 포함
- 호기심 유발 또는 가치 제안
**Patterns:**
- "[주제]의 역설: ~하면서 ~하는 시대"
- "[주제]를 다시 생각한다"
- "왜 [주제]가 중요한가"
### Meta Description
- 155자 이내
- 글의 핵심 가치 요약
- 클릭 유도 문구
### URL Slug
- 영문 소문자
- 하이픈으로 구분
- 3-5 단어
## Content Calendar
| Category | Frequency | Example Topics |
|----------|-----------|----------------|
| SEO/마케팅 | 주 1회 | Technical SEO, AEO, 콘텐츠 전략 |
| 데이터 분석 | 격주 | GA4, BigQuery, 대시보드 |
| AI/기술 트렌드 | 월 2회 | LLM, 자동화, 마케팅 AI |
| 인사이트/에세이 | 월 1회 | 디지털 문화, 세대론, 직업의 미래 |
## Quality Checklist
Before publishing:
- [ ] 제목이 60자 이내인가?
- [ ] 메타 설명이 155자 이내인가?
- [ ] 전문용어에 영문이 병기되었는가?
- [ ] 수사적 질문이 포함되었는가?
- [ ] 기술 내용에 인간적 함의가 있는가?
- [ ] 결론이 열린 질문으로 끝나는가?
- [ ] 1,500-3,000자 범위인가?

View File

@@ -0,0 +1,166 @@
#!/usr/bin/env python3
"""
Ghost CMS Publisher for OurDigital Blog
Publishes markdown content to Ghost CMS via Admin API.
Usage:
python ghost_publish.py --file post.md --draft
python ghost_publish.py --file post.md --publish
"""
import argparse
import os
import re
import jwt
import time
import requests
from datetime import datetime
from pathlib import Path
from dotenv import load_dotenv
# Load environment variables
load_dotenv(os.path.expanduser("~/.env.ourdigital"))
def create_ghost_token(admin_key: str) -> str:
"""Create JWT token for Ghost Admin API."""
key_id, secret = admin_key.split(":")
iat = int(time.time())
header = {"alg": "HS256", "typ": "JWT", "kid": key_id}
payload = {
"iat": iat,
"exp": iat + 5 * 60, # 5 minutes
"aud": "/admin/"
}
token = jwt.encode(payload, bytes.fromhex(secret), algorithm="HS256", headers=header)
return token
def parse_frontmatter(content: str) -> tuple[dict, str]:
"""Parse YAML frontmatter from markdown content."""
import yaml
pattern = r'^---\s*\n(.*?)\n---\s*\n(.*)$'
match = re.match(pattern, content, re.DOTALL)
if match:
frontmatter = yaml.safe_load(match.group(1))
body = match.group(2)
return frontmatter, body
return {}, content
def publish_to_ghost(
file_path: str,
ghost_url: str,
admin_key: str,
draft: bool = True
) -> dict:
"""Publish markdown file to Ghost CMS."""
# Read and parse file
content = Path(file_path).read_text(encoding="utf-8")
frontmatter, body = parse_frontmatter(content)
# Create JWT token
token = create_ghost_token(admin_key)
# Prepare post data
post_data = {
"posts": [{
"title": frontmatter.get("title", "Untitled"),
"slug": frontmatter.get("slug"),
"html": markdown_to_html(body),
"meta_description": frontmatter.get("meta_description", ""),
"tags": [{"name": tag} for tag in frontmatter.get("tags", [])],
"status": "draft" if draft else "published",
"authors": [{"email": "andrew.yim@ourdigital.org"}]
}]
}
# Add feature image if provided
if frontmatter.get("featured_image"):
post_data["posts"][0]["feature_image"] = frontmatter["featured_image"]
# Make API request
api_url = f"{ghost_url}/ghost/api/admin/posts/"
headers = {
"Authorization": f"Ghost {token}",
"Content-Type": "application/json"
}
response = requests.post(api_url, json=post_data, headers=headers)
response.raise_for_status()
return response.json()
def markdown_to_html(markdown_text: str) -> str:
"""Convert markdown to HTML."""
try:
import markdown
return markdown.markdown(
markdown_text,
extensions=["tables", "fenced_code", "codehilite"]
)
except ImportError:
# Basic conversion if markdown library not available
html = markdown_text.replace("\n\n", "</p><p>")
html = f"<p>{html}</p>"
return html
def main():
parser = argparse.ArgumentParser(description="Publish to Ghost CMS")
parser.add_argument("--file", required=True, help="Markdown file to publish")
parser.add_argument("--draft", action="store_true", help="Publish as draft")
parser.add_argument("--publish", action="store_true", help="Publish immediately")
parser.add_argument("--channel", default="blog",
choices=["blog", "journal", "ourstory"],
help="Ghost channel to publish to")
args = parser.parse_args()
# Get credentials based on channel
channel_map = {
"blog": ("GHOST_BLOG_URL", "GHOST_BLOG_ADMIN_KEY"),
"journal": ("GHOST_JOURNAL_URL", "GHOST_JOURNAL_ADMIN_KEY"),
"ourstory": ("GHOST_OURSTORY_URL", "GHOST_OURSTORY_ADMIN_KEY")
}
url_var, key_var = channel_map[args.channel]
ghost_url = os.getenv(url_var)
admin_key = os.getenv(key_var)
if not ghost_url or not admin_key:
print(f"Error: Missing credentials for {args.channel}")
print(f"Set {url_var} and {key_var} in ~/.env.ourdigital")
return 1
try:
result = publish_to_ghost(
args.file,
ghost_url,
admin_key,
draft=not args.publish
)
post = result["posts"][0]
status = "Draft" if not args.publish else "Published"
print(f"{status}: {post['title']}")
print(f"URL: {ghost_url}/{post['slug']}/")
print(f"Edit: {ghost_url}/ghost/#/editor/post/{post['id']}")
return 0
except Exception as e:
print(f"Error: {e}")
return 1
if __name__ == "__main__":
exit(main())

View File

@@ -0,0 +1,70 @@
---
title: "{제목}"
meta_description: "{155자 이내 메타 설명}"
slug: "{english-url-slug}"
tags: ["{tag1}", "{tag2}", "{tag3}"]
author: "Andrew Yim"
date: "{YYYY-MM-DD}"
featured_image: "{이미지 URL 또는 프롬프트}"
---
# {제목}
{도입부: Hook으로 시작. 독자의 관심을 끄는 질문, 통계, 또는 역설로 시작한다.}
{Context: 주제의 배경을 설명하고, 왜 지금 이 주제가 중요한지 언급한다.}
{Preview: 이 글에서 다룰 핵심 내용을 암시한다.}
---
## {첫 번째 핵심 포인트 제목}
{주장: 명확한 포인트를 제시한다.}
{근거: 데이터, 사례, 또는 전문가 의견으로 뒷받침한다.}
> {인용문이나 통계가 있다면 여기에}
{함의: 이것이 독자에게 의미하는 바를 설명한다.}
## {두 번째 핵심 포인트 제목}
{주장}
{근거}
{함의}
## {세 번째 핵심 포인트 제목}
{주장}
{근거}
{함의}
---
## 마치며
{Summary: 핵심 내용을 1-2문장으로 요약한다.}
{Reflection: 더 넓은 맥락에서 이 주제가 갖는 의미를 성찰한다.}
{Open Question: 독자가 계속 생각할 수 있는 열린 질문으로 마무리한다.}
> {마지막 수사적 질문}
---
*이 글은 [OurDigital Blog](https://blog.ourdigital.org)에 게재된 콘텐츠입니다.*
<!--
SEO Checklist:
- [ ] 제목 60자 이내
- [ ] 메타 설명 155자 이내
- [ ] 전문용어 영문 병기
- [ ] 수사적 질문 포함
- [ ] 1,500-3,000자
-->

View File

@@ -1,168 +0,0 @@
# OurDigital Visual Storytelling Skill
## 📦 스킬 구조
```
ourdigital-visual-storytelling/
├── SKILL.md # 메인 스킬 파일
├── scripts/
│ ├── generate_prompt.py # 프롬프트 자동 생성
│ └── mood_calibrator.py # 무드 파라미터 조정
└── references/
├── visual_metaphors.md # 시각적 메타포 사전
├── color_palettes.md # 컬러 팔레트 가이드
└── advanced_techniques.md # 고급 테크닉 레퍼런스
```
## 🚀 Claude Skills 설치 방법
### 방법 1: Claude Projects에서 사용
1. Claude.ai에서 새 Project 생성
2. Project Settings → Skills → Add Custom Skill
3. `ourdigital-visual-storytelling` 폴더 전체 업로드
4. 스킬 활성화
### 방법 2: MCP Server로 사용
1. 스킬 폴더를 MCP skills 디렉토리로 이동:
```bash
cp -r ourdigital-visual-storytelling /path/to/mcp/skills/user/
```
2. MCP 서버 재시작
3. Claude에서 스킬 자동 인식
### 방법 3: 수동 활용
1. SKILL.md 내용을 Claude 대화에 직접 붙여넣기
2. 필요시 scripts와 references 내용 참조
## 💡 사용 예시
### 기본 사용법
```
"AI와 인간 정체성의 혼재에 대한 철학적 에세이를 위한 featured image를 만들어줘"
```
### 스크립트 활용
```bash
# 프롬프트 생성
python scripts/generate_prompt.py \
--topic "초개인화 시대의 자아" \
--mood "contemplative" \
--metaphor "거울 속 분산된 얼굴"
# 무드 조정
python scripts/mood_calibrator.py \
--preset philosophical_essay \
--contemplative-depth 0.95
```
### 다양한 변형 생성
```bash
python scripts/generate_prompt.py \
--topic "SEO의 미래" \
--variations 3 \
--json
```
## 📊 스킬 활용 시나리오
### 1. 철학적 에세이
- **주제**: 디지털 시대의 자아 정체성
- **무드**: philosophical_essay 프리셋
- **메타포**: 프리즘을 통한 빛의 분산
- **컬러**: 모노크롬 + 골드 액센트
### 2. 기술 비평
- **주제**: AI 검색의 등장과 SEO의 변화
- **무드**: technical_analysis 프리셋
- **메타포**: 유기적 네트워크가 결정화되는 과정
- **컬러**: 쿨톤 블루-그레이 + 디지털 그린
### 3. 사회 논평
- **주제**: 소셜미디어와 평판 경제
- **무드**: social_commentary 프리셋
- **메타포**: 에코 체임버 속 고립된 인간 형상
- **컬러**: 무채색 + 퍼플 액센트
## 🎨 생성된 프롬프트 예시
### 입력
```python
topic = "초개인화 시대의 선택의 역설"
mood = "contemplative"
metaphor = "무한한 문들 앞의 정지된 실루엣"
```
### 출력
```
Create a sophisticated featured image, minimalist contemporary design,
clean vector illustration with subtle texture overlays, 1200x630px,
suitable for blog header for blog post about 초개인화 시대의 선택의 역설.
Visual concept: 무한한 문들 앞의 정지된 실루엣.
Atmosphere: contemplative and introspective atmosphere, zen-like calm.
Colors: monochrome palette with single accent color.
Composition:
- Highly abstract interpretation
- Minimum 20% negative space for contemplative breathing room
- Asymmetrical balance with strong geometric structure
- balanced integration of Korean minimalist aesthetics with Western modernism
Technical notes:
- Ensure clarity at thumbnail size (200px)
- Avoid tech clichés (circuits, binary codes)
- No stock photo aesthetics or literal interpretations
- Timeless design that won't date quickly
Aesthetic reference: Combine Bauhaus principles with Agnes Martin's
contemplative minimalism.
```
## 🔧 커스터마이징
### 파라미터 조정
```python
# mood_calibrator.py에서 새 프리셋 추가
"custom_preset": {
"contemplative_depth": 0.9,
"cultural_fusion": 0.8,
"technical_precision": 0.5,
"emotional_weight": 0.6,
"innovation_index": 0.8
}
```
### 메타포 확장
`references/visual_metaphors.md`에 새로운 개념 추가:
```markdown
| 새개념 | 주요 메타포 | 대체 시각 |
|--------|------------|-----------|
| 메타버스 | 평행 유리면 | 중첩된 현실층 |
```
## 📈 성과 측정
### 품질 평가 기준
- **개념 전달**: 에세이의 핵심을 포착했는가? (30%)
- **독창성**: 독특한 관점을 제시하는가? (25%)
- **실행력**: 기술적 완성도는? (20%)
- **감정 공명**: 의도한 감정을 불러일으키는가? (15%)
- **지속성**: 시간이 지나도 유효한가? (10%)
## 🤝 기여 가이드
### 개선 제안
- Issue 생성: 새로운 메타포나 스타일 제안
- Pull Request: 스크립트 개선이나 레퍼런스 추가
- 피드백: 실제 사용 사례와 결과 공유
## 📝 라이센스
MIT License - 자유롭게 사용, 수정, 배포 가능
---
**Created for OurDigital blogs**
*"사람, 디지털, 그리고 문화"의 시각적 내러티브*
https://ourdigital.org | https://journal.ourdigital.org

View File

@@ -1,135 +0,0 @@
# OurDigital Visual Storytelling
Transform philosophical essays into sophisticated visual narratives through minimalist, conceptually rich featured images.
## Core Philosophy
OurDigital images are visual philosophy—not illustrations but parallel texts that invite contemplation. Each image captures the essay's philosophical core through:
- **Abstract metaphors** over literal representations
- **Contemplative minimalism** with 20%+ negative space
- **Cultural fusion** of Korean-Western aesthetics
- **Emotional resonance** through color psychology
## Workflow
### 1. Extract Essay Essence
```python
# Analyze the blog post for:
core_insight = "What philosophical truth?"
emotional_tone = "What feeling to evoke?"
key_metaphor = "What visual symbol?"
```
### 2. Select Visual Approach
| Essay Type | Visual Strategy | Color Mood |
|-----------|-----------------|------------|
| Technology | Organic-digital hybrids | Cool blues → warm accents |
| Social | Network patterns, human fragments | Desaturated → hope spots |
| Philosophy | Zen space, symbolic objects | Monochrome + single accent |
| Cultural | Layered traditions, fusion forms | Earth tones → modern hues |
### 3. Generate Prompt
Use template in `scripts/generate_prompt.py`:
```bash
python scripts/generate_prompt.py \
--topic "AI identity crisis" \
--mood "contemplative anxiety" \
--metaphor "mirror fragments"
```
### 4. Apply Quality Filters
**Must have:**
- Captures philosophical insight
- Works at 200px thumbnail
- Timeless (2-3 year relevance)
- Cross-cultural readability
**Must avoid:**
- Tech clichés (circuits, binary)
- Stock photo aesthetics
- Literal interpretations
- Trendy effects
## Quick Templates
### AI & Humanity
```
"Translucent human silhouette dissolving into crystalline data structures.
Monochrome with teal accent. Boundary dissolution between organic/digital.
1200x630px, minimalist vector style."
```
### Social Commentary
```
"Overlapping circles forming maze pattern, tiny humans in separate chambers.
Blue-gray palette, warm light leaks for hope. Subtle Korean patterns.
High negative space. 1200x630px."
```
### Digital Transformation
```
"Traditional forms metamorphosing into particle streams. Paper texture → digital grain.
Earth tones shifting to cool blues. Sacred geometry underlying.
1200x630px, contemplative mood."
```
## Resources
- `scripts/generate_prompt.py` - Automated prompt builder
- `scripts/mood_calibrator.py` - Adjust emotional parameters
- `references/visual_metaphors.md` - Concept → Visual dictionary
- `references/color_palettes.md` - Emotion → Color mapping
- `assets/style_samples/` - Reference images by category
## Technical Specs
- **Dimensions**: 1200x630px (OG standard)
- **Style**: Vector illustration + subtle textures
- **Colors**: 60-30-10 rule (dominant-secondary-accent)
- **Format**: WebP primary, JPG fallback
## Advanced Techniques
For complex topics, layer metaphors:
```python
primary_metaphor = "roots becoming circuits"
secondary_metaphor = "light through prism"
emotional_journey = "organic → synthetic → harmonized"
```
See `references/advanced_techniques.md` for:
- Metaphor layering strategies
- Cultural symbolism guide
- Composition dynamics
- Texture integration methods
## Style Parameters
Calibrate in `scripts/mood_calibrator.py`:
```python
contemplative_depth = 0.8 # Abstract level
cultural_fusion = 0.6 # East-West balance
technical_precision = 0.7 # Clean vs organic
emotional_weight = 0.5 # Mood intensity
```
## Quick Reference
**Visual Metaphor Shortcuts:**
- Algorithm → Constellation patterns
- Identity → Layered masks, fingerprints
- Network → Root systems, neural paths
- Time → Spirals, sediment layers
- Knowledge → Light sources, growing trees
**Color Psychology:**
- Critical → Deep blue-gray + red accent
- Hopeful → Warm amber + sky blue
- Philosophical → Near black + off white + gold
- Anxious → Charcoal + grey-blue + digital green
Generate sophisticated visual narratives that complement—never compete with—the written word.

View File

@@ -1,11 +0,0 @@
# Skill metadata (extracted from SKILL.md frontmatter)
name: ourdigital-visual-storytelling
description: |
Creates sophisticated featured image prompts for OurDigital blogs (blog.ourdigital.org, journal.ourdigital.org, ourstory.day) that capture philosophical depth through minimalist visual metaphors. Specializes in translating complex essays about humanity, technology, and culture into contemplative visual narratives using Korean-Western aesthetic fusion. Use when creating blog featured images that require intellectual sophistication and conceptual abstraction.
# Optional fields
license: MIT
# triggers: [] # TODO: Extract from description

View File

@@ -0,0 +1,71 @@
# OurDigital Journal
English essay and article creation skill for journal.ourdigital.org.
## Purpose
Generate English essays with:
- Reflective, poetic writing style
- Philosophical-technical hybridization
- Cultural bridging (Korean-global perspectives)
- Ghost CMS format output
## Activation
Only activates with "ourdigital" keyword:
- "ourdigital journal 써줘"
- "ourdigital English essay on [topic]"
- "ourdigital 영문 에세이"
## Channel Profile
| Field | Value |
|-------|-------|
| URL | journal.ourdigital.org |
| Language | English |
| Tone | Conversational, Poetic, Reflective |
| Length | 1,000-2,000 words |
## Structure
```
03-ourdigital-journal/
├── code/SKILL.md
├── desktop/SKILL.md
├── shared/
│ ├── references/
│ │ └── journal-style-guide.md
│ └── templates/
│ └── essay-template.md
├── docs/
│ └── CHANGELOG.md
└── README.md
```
## Writing Style
- **Philosophical-Technical Hybridization**: Tech + human implications
- **Paradox as Device**: Illuminate through tensions
- **Rhetorical Questions**: Invite rather than lecture
- **Melancholic Optimism**: Clear-eyed hope
## Content Types
| Type | Focus | Length |
|------|-------|--------|
| Personal Essay | Reflection on experience | 1,000-1,500 words |
| Cultural Observation | Tech + society | 1,500-2,000 words |
| Industry Insight | Trends with depth | 1,200-1,800 words |
## Environment
Requires `~/.env.ourdigital`:
```
GHOST_JOURNAL_URL=https://journal.ourdigital.org
GHOST_JOURNAL_ADMIN_KEY=<admin_key>
```
## Version
- Current: 1.0.0
- Author: OurDigital

View File

@@ -0,0 +1,128 @@
---
name: ourdigital-journal
description: |
English essay creation for journal.ourdigital.org.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital journal", "ourdigital essay"
- "ourdigital English article"
Features:
- English essay generation
- Reflective, poetic style
- Ghost CMS export
version: "1.0"
author: OurDigital
environment: Code
---
# OurDigital Journal (Code)
English essay and article creation with Ghost CMS integration.
## Activation
Only with "ourdigital" keyword:
- "ourdigital journal 써줘"
- "ourdigital English essay"
## Quick Start
```bash
# Export to Ghost (draft)
python shared/scripts/ghost_publish.py --file essay.md --channel journal --draft
```
## Channel Profile
```yaml
URL: journal.ourdigital.org
Language: English
Tone: Conversational, Poetic, Reflective
Platform: Ghost CMS
Length: 1,000-2,000 words
Frequency: 월 2-4회
```
## Workflow
### 1. Topic Exploration
Ask:
1. What specific angle interests you?
2. Target audience? (Tech pros / General / Academic)
3. Depth level? (Reflection / Analysis / Observation)
### 2. Essay Structure
```
1. Opening (Evocative scene or question)
2. Exploration (3-4 interconnected observations)
3. Synthesis (Weaving threads)
4. Closing (Open-ended reflection)
```
### 3. Writing Style
| Element | Approach |
|---------|----------|
| Voice | First-person, reflective |
| Tone | Thoughtful, observant |
| Sentences | Complex, interconnected |
| Questions | Rhetorical, inviting |
### 4. Distinctive Qualities
- Philosophical-technical hybridization
- Paradox as rhetorical device
- Epistemic humility
- Cultural bridging
### 5. Output
```markdown
---
title: "Essay Title"
meta_description: "Description"
slug: "url-slug"
tags: ["tag1", "tag2"]
---
# Essay Title
[Essay content]
```
## Ghost Integration
```python
# Environment
GHOST_JOURNAL_URL=https://journal.ourdigital.org
GHOST_JOURNAL_ADMIN_KEY=<from .env.ourdigital>
```
## Export Options
1. **Ghost Draft** → API push
2. **Local**`./output/journal/`
## Content Types
| Type | Length |
|------|--------|
| Personal Essay | 1,000-1,500 words |
| Cultural Observation | 1,500-2,000 words |
| Industry Insight | 1,200-1,800 words |
## File Structure
```
03-ourdigital-journal/
├── code/SKILL.md
├── desktop/SKILL.md
├── shared/
│ ├── references/journal-style-guide.md
│ └── templates/essay-template.md
└── docs/CHANGELOG.md
```

View File

@@ -0,0 +1,173 @@
---
name: ourdigital-journal
description: |
English essay and article creation for journal.ourdigital.org.
Activated with "ourdigital" keyword for English writing tasks.
Triggers (ourdigital or our prefix):
- "ourdigital journal", "our journal"
- "ourdigital English essay", "our English essay"
- "ourdigital 영문 에세이", "our 영문 에세이"
Features:
- English essay/article generation
- Research-based insights
- Reflective, poetic style
- Ghost CMS format output
version: "1.0"
author: OurDigital
environment: Desktop
---
# OurDigital Journal
English essay and article creation for journal.ourdigital.org.
## Activation
Activate with "ourdigital" or "our" prefix:
- "ourdigital journal" / "our journal"
- "ourdigital English essay" / "our English essay"
- "our 영문 에세이 [topic]"
- "ourdigital 영문 에세이 [주제]"
## Channel Profile
| Field | Value |
|-------|-------|
| **URL** | journal.ourdigital.org |
| **Language** | English |
| **Tone** | Conversational & Poetic, Reflective |
| **Platform** | Ghost CMS |
| **Frequency** | 월 2-4회 |
| **Length** | 1,000-2,000 words |
## Workflow
### Phase 1: Topic Exploration
Ask clarifying questions:
1. **Topic**: What specific angle interests you?
2. **Audience**: Tech professionals / General readers / Academic?
3. **Depth**: Personal reflection / Industry analysis / Cultural observation?
### Phase 2: Research (Optional)
If topic requires current context:
- Use `web_search` for recent developments
- Reference scholarly perspectives if applicable
- Draw from historical or cultural parallels
### Phase 3: Essay Generation
Generate essay following the reflective style:
**Structure:**
```
1. Opening (Evocative scene or question)
2. Exploration (3-4 interconnected observations)
3. Synthesis (Weaving threads together)
4. Closing (Open-ended reflection)
```
**Writing Style:**
- Philosophical-Technical Hybridization
- Paradox as primary rhetorical device
- Rhetorical questions for engagement
- Melancholic optimism in tone
**Distinctive Qualities:**
- Temporal awareness (historical context)
- Epistemic humility (acknowledging limits)
- Cultural bridging (Korean-global perspectives)
### Phase 4: SEO Metadata
Generate metadata:
```yaml
title: [Evocative, under 70 characters]
meta_description: [Compelling summary, 155 characters]
slug: [english-url-slug]
tags: [3-5 relevant tags]
```
### Phase 5: Output Format
**Markdown Output:**
```markdown
---
title: "Essay Title"
meta_description: "Description"
slug: "url-slug"
tags: ["tag1", "tag2"]
---
# Essay Title
[Essay content with paragraphs that flow naturally]
---
*Published in [OurDigital Journal](https://journal.ourdigital.org)*
```
## Writing Guidelines
### Voice Characteristics
| Aspect | Approach |
|--------|----------|
| Perspective | First-person reflection welcome |
| Tone | Thoughtful, observant, wondering |
| Pacing | Unhurried, allowing ideas to breathe |
| References | Cross-cultural, historical, literary |
### Sentence Craft
- Long, complex sentences reflecting interconnected ideas
- Progressive deepening: observation → analysis → implication
- Questions that invite rather than lecture
### Do's and Don'ts
**Do:**
- Blend technology with humanity
- Use paradox to illuminate tensions
- Acknowledge uncertainty gracefully
- Bridge Korean and Western perspectives
**Don't:**
- Lecture or prescribe
- Oversimplify complex issues
- Ignore cultural context
- Rush to conclusions
## Content Types
| Type | Focus | Length |
|------|-------|--------|
| Personal Essay | Reflection on experience | 1,000-1,500 words |
| Cultural Observation | Tech + society analysis | 1,500-2,000 words |
| Industry Insight | Trends with perspective | 1,200-1,800 words |
## Ghost Integration
Export options:
1. **Markdown file** → Editorial review → Ghost
2. **Direct API** → Ghost Admin API
API endpoint: `GHOST_JOURNAL_URL` from environment
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital journal [topic]" | Full essay workflow |
| "ourdigital journal edit" | Edit existing draft |
## References
- `shared/references/journal-style-guide.md` - Detailed writing guide
- `shared/templates/essay-template.md` - Essay structure
- `01-ourdigital-brand-guide` - Brand voice reference

View File

@@ -0,0 +1,23 @@
# Changelog
All notable changes to ourdigital-journal will be documented here.
## [1.0.0] - 2026-01-31
### Added
- Initial skill creation
- Desktop and Code versions
- English essay writing workflow
- Reflective, poetic style guidelines
- Ghost CMS integration (shared with blog)
- Journal style guide reference
- Essay template
### Files
- `desktop/SKILL.md` - Desktop version
- `code/SKILL.md` - Code version
- `shared/references/journal-style-guide.md` - Writing guide
- `shared/templates/essay-template.md` - Essay structure
### Notion Ref
- (To be synced)

View File

@@ -0,0 +1,166 @@
# OurDigital Journal Style Guide
Writing guidelines for journal.ourdigital.org - English essays and articles.
## Channel Identity
| Field | Value |
|-------|-------|
| **Domain** | journal.ourdigital.org |
| **Language** | English |
| **Tone** | Conversational & Poetic, Reflective |
| **Target** | Informed generalists with intellectual curiosity |
## Voice Characteristics
### Philosophical-Technical Hybridization
Seamlessly blend technical analysis with existential questioning. Technology is never discussed without considering its human implications.
**Example:**
> The dashboard promises clarity—every metric tracked, every trend visualized. Yet as I stared at the perfectly organized data, I wondered: does seeing everything mean understanding anything?
### Paradox as Primary Device
Structure arguments around tensions and contradictions that illuminate rather than confuse.
**Paradox Patterns:**
- "The more we measure, the less we understand"
- "In optimizing for efficiency, we optimize away meaning"
- "The tools that connect us also isolate us"
### Rhetorical Questions
Favor interrogative engagement. Questions create intellectual partnership with readers.
**Good:**
> What does it mean to be "data-driven" in a world drowning in data?
**Avoid:**
> Data-driven decision-making is important for businesses.
### Melancholic Optimism
Acknowledge loss and anxiety without despair. Accept technological inevitability while mourning what's displaced.
**Tone:**
- Not cynical, but clear-eyed
- Not naive, but hopeful
- Grief and wonder coexisting
## Structural Patterns
### Essay Structure
1. **Opening** (10%)
- Evocative scene, moment, or question
- Draw reader into a specific experience
- Hint at larger questions to come
2. **Exploration** (70%)
- 3-4 interconnected observations
- Each builds on the previous
- Historical parallels, cultural references
- Personal reflection woven with analysis
3. **Synthesis** (15%)
- Weave threads together
- New understanding emerges
- Not a summary—a culmination
4. **Closing** (5%)
- Open-ended reflection
- Question rather than answer
- Leave reader thinking
### Sentence Craft
| Aspect | Approach |
|--------|----------|
| Length | Long, complex sentences with multiple clauses |
| Rhythm | Varied—some long, some short for emphasis |
| Connection | Ideas flow into each other |
**Example:**
> The algorithm knows what I want before I do—or so it claims—and in that anticipation lies both convenience and a subtle erosion of agency, as if my future preferences were already written in code I cannot read.
### Paragraph Flow
```
Observation (What I noticed)
Analysis (What it might mean)
Implication (Why it matters)
Connection (Leading to next thought)
```
## Distinctive Qualities
### 1. Temporal Awareness
Strong consciousness of historical context and generational shifts.
> Twenty years ago, we dreamed of information at our fingertips. Now, drowning in it, we dream of filters.
### 2. Epistemic Humility
Acknowledge the limits of understanding, especially across generations and cultures.
> I don't pretend to understand how Gen Z experiences the digital world—I can only observe it with the curiosity of an outsider.
### 3. Cultural Bridging
Connect Korean and Western perspectives, offering unique viewpoints.
> In Korea, we have a word—"nunchi"—for reading the atmosphere. AI systems are developing their own form of nunchi, reading data patterns the way we read rooms.
## Content Categories
### Personal Essay
- First-person reflection
- Specific experience as lens
- Universal themes emerge naturally
- 1,000-1,500 words
### Cultural Observation
- Technology meets society
- Cross-cultural comparisons
- Historical context
- 1,500-2,000 words
### Industry Insight
- Professional perspective
- Trends with philosophical depth
- Practical implications considered
- 1,200-1,800 words
## SEO Guidelines
### Titles
- Evocative, not clickbait
- Under 70 characters
- Hint at tension or question
**Patterns:**
- "The [Noun] of [Paradox]"
- "[Verb]-ing in the Age of [Trend]"
- "What [Technology] Cannot [Verb]"
### Meta Descriptions
- 155 characters
- Capture the essay's central question
- Intrigue without revealing
## Quality Checklist
Before publishing:
- [ ] Does the opening draw readers in?
- [ ] Are there rhetorical questions?
- [ ] Does technical content connect to human experience?
- [ ] Is there at least one paradox or tension?
- [ ] Does the closing leave an open question?
- [ ] Is the tone melancholic but not despairing?
- [ ] Are sentences varied in length and rhythm?

View File

@@ -0,0 +1,64 @@
---
title: "{Evocative Title}"
meta_description: "{Compelling 155-character description}"
slug: "{url-slug}"
tags: ["{tag1}", "{tag2}", "{tag3}"]
author: "Andrew Yim"
date: "{YYYY-MM-DD}"
---
# {Title}
{Opening: Begin with a specific moment, scene, or question. Draw the reader into an experience before broadening to larger themes. This should feel intimate and immediate.}
{Transition: Move from the specific to the general, hinting at the essay's territory.}
---
{First thread of exploration. Introduce an observation or idea that sets the stage for deeper inquiry. Weave in historical context or cultural reference.}
{Develop the observation. Ask a rhetorical question that deepens the inquiry.}
> {Pull quote or key insight that captures this section's essence.}
{Connection to next thread—ideas should flow naturally.}
---
{Second thread. Build on the previous section, introducing a new angle or paradox. The complexity grows.}
{Personal reflection or specific example that grounds abstract ideas.}
{Analysis of what this means in broader context.}
---
{Third thread. Synthesis begins here. Threads start weaving together. New understanding emerges from the collision of ideas.}
{Acknowledge tensions without resolving them. Epistemic humility—what we don't and can't know.}
---
## {Optional section heading for longer pieces}
{Continue exploration if needed. Each section should add depth, not just length.}
---
{Closing: Return to something from the opening, but transformed by the journey. Leave an open question—not as evasion, but as invitation. The reader should leave thinking, not satisfied.}
{Final rhetorical question or paradox that resonates.}
---
*Originally published in [OurDigital Journal](https://journal.ourdigital.org)*
<!--
Quality Checklist:
- [ ] Evocative opening
- [ ] Rhetorical questions throughout
- [ ] Technical + human connection
- [ ] At least one paradox
- [ ] Open-ended closing
- [ ] 1,000-2,000 words
-->

View File

@@ -1,170 +0,0 @@
# Research to Presentation Workflow
Automated pipeline for transforming Notion research into professional presentations with brand consistency.
## Quick Start
```bash
# Full automated workflow
python scripts/run_workflow.py --notion-url [URL] --output-format [pptx|figma]
# Step-by-step execution
python scripts/extract_notion.py [URL] > research.json
python scripts/synthesize_content.py research.json > synthesis.json
node scripts/generate_presentation.js synthesis.json output.pptx
```
## Workflow Steps
### Step 1: Research Collection
Extract research from Notion:
```python
# Use Notion tools to gather content
results = notion_search(query="research topic")
content = notion_fetch(page_ids)
extracted_data = extract_key_findings(content)
```
For detailed extraction patterns: [references/research_patterns.md](references/research_patterns.md)
### Step 2: Content Synthesis
Analyze and structure content:
```python
synthesis = synthesize_content(extracted_data)
# Returns: executive_summary, key_topics, agenda_items, supporting_data
```
Topic prioritization guide: [references/agenda_templates.md](references/agenda_templates.md)
### Step 3: Presentation Planning
Create slide-by-slide structure:
```javascript
const slidePlan = generateSlidePlan(synthesis);
// Outputs: title, agenda, content slides with speaker notes
```
Layout options: [references/slide_layouts.md](references/slide_layouts.md)
### Step 4: Slide Generation
Convert to presentation format:
**PowerPoint Output:**
```javascript
node scripts/generate_pptx.js synthesis.json output.pptx
```
**Figma Output:**
```javascript
node scripts/export_to_figma.js synthesis.json --api-key [KEY]
```
### Step 5: Brand Application
Apply corporate styling:
```python
python scripts/apply_brand.py output.pptx --config assets/brand_config.json
```
## Input Sources
**Notion Pages**: Individual research pages with `notion://page/[ID]`
**Notion Databases**: Research collections with `notion://database/[ID]`
**Multiple Sources**: Comma-separated URLs for comprehensive synthesis
## Output Formats
**PowerPoint (.pptx)**: Full presentation with animations and transitions
**Figma Slides**: Web-based collaborative presentation format
**HTML Preview**: Quick preview with `--preview` flag
## Presentation Types
### Executive Summary
- High-level findings (3-5 slides)
- Key metrics and KPIs
- Strategic recommendations
- See [references/executive_template.md](references/executive_template.md)
### Research Report
- Comprehensive findings (10-20 slides)
- Detailed methodology
- Data visualizations
- See [references/research_template.md](references/research_template.md)
### Meeting Prep
- Agenda-driven structure (5-10 slides)
- Discussion topics
- Decision points
- See [references/meeting_template.md](references/meeting_template.md)
## Customization
### Brand Configuration
Edit `assets/brand_config.json`:
```json
{
"colors": {
"primary": "#1a73e8",
"secondary": "#34a853"
},
"fonts": {
"heading": "Poppins",
"body": "Lora"
}
}
```
### Slide Templates
Modify HTML templates in `assets/templates/`:
- `title.html` - Title slide layout
- `content.html` - Content slide layout
- `data.html` - Data visualization slide
### Processing Rules
Adjust synthesis patterns in `scripts/config.py`:
- Topic extraction thresholds
- Agenda prioritization weights
- Content chunking sizes
## Best Practices
1. **Start broad**: Cast wide net in Notion search, then filter
2. **Validate sources**: Check last-edited dates for currency
3. **Chunk large content**: Process in batches for token efficiency
4. **Preview first**: Use `--preview` to check before final generation
5. **Version control**: Keep synthesis.json for iteration
## Troubleshooting
**"No content found"**: Verify Notion permissions and page URLs
**"Synthesis failed"**: Check research.json structure and content
**"Brand not applied"**: Ensure brand_config.json is valid
**"Figma export error"**: Validate API key and network access
## Advanced Usage
### Batch Processing
```bash
# Process multiple research sets
for url in $(cat notion_urls.txt); do
python scripts/run_workflow.py --notion-url "$url" --output "output_$(date +%s).pptx"
done
```
### Custom Workflows
See [references/custom_pipelines.md](references/custom_pipelines.md) for:
- Conditional slide generation
- Dynamic template selection
- Multi-language support
- Automated scheduling
## Dependencies
- Python 3.8+ with pandas, pydantic
- Node.js 16+ with pptxgenjs, @ant/html2pptx
- Notion API access via MCP
- Optional: Figma API key for web export

View File

@@ -1,9 +0,0 @@
# Skill metadata (extracted from SKILL.md frontmatter)
name: research-to-presentation
description: |
Transforms Notion research content into branded presentations through an automated workflow. Collects research from Notion pages/databases, synthesizes content to extract key topics and agenda items, creates presentation structure with slide plans, and generates branded PPT/Figma presentations. Use when converting research into meeting materials, creating data-driven presentations from Notion content, transforming documentation into executive presentations, or building slide decks from scattered research notes.
# Optional fields
# triggers: [] # TODO: Extract from description

View File

@@ -0,0 +1,77 @@
# OurDigital Research
Deep research and structured prompt generation skill for OurDigital workflows.
## Purpose
Transform questions into:
- Comprehensive research papers
- Structured research prompts
- Blog drafts for OurDigital channels
- Notion-archived knowledge
## Activation
Only activates with "ourdigital" keyword:
- "ourdigital research [topic]"
- "ourdigital 리서치 해줘"
- "ourdigital deep research on [topic]"
## Workflow
```
Phase 1: Discovery
Phase 2: Research Planning
Phase 3: Deep Research
Phase 4: Research Paper
Phase 5: Notion Save
Phase 6: Blog Draft (optional)
Phase 7: Ulysses Export
```
## Structure
```
04-ourdigital-research/
├── code/
│ ├── SKILL.md
│ ├── CLAUDE.md (legacy)
│ ├── scripts/
│ └── references/
├── desktop/
│ ├── SKILL.md
│ └── skill.yaml
├── shared/
│ ├── references/
│ └── scripts/
├── docs/
│ └── CHANGELOG.md
└── README.md
```
## Integration
Works with:
- `02-ourdigital-blog` - Korean blog drafts
- `03-ourdigital-journal` - English essays
- Notion "Working with AI" database
- Ulysses for editing
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital research [topic]" | Start discovery |
| "ourdigital research → blog" | Full pipeline |
| "ourdigital 리서치 프롬프트" | Prompt only |
## Version
- Current: 1.1.0
- Author: OurDigital

View File

@@ -0,0 +1,124 @@
---
name: ourdigital-research
description: |
Deep research and prompt generation for OurDigital.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital research", "ourdigital 리서치"
- "ourdigital deep research"
Features:
- Research planning
- Multi-source research
- Notion archiving
- Blog pipeline
version: "1.0"
author: OurDigital
environment: Code
---
# OurDigital Research (Code)
Research-to-publication workflow with script automation.
## Activation
Only with "ourdigital" keyword:
- "ourdigital research [topic]"
- "ourdigital 리서치"
## Quick Start
```bash
# Export research to Ulysses
python shared/scripts/export_to_ulysses.py --input research.md
# Full pipeline
python shared/scripts/research_pipeline.py --topic "AI Marketing" --output blog
```
## Workflow
```
Discovery → Planning → Research → Paper → Notion → Blog → Export
```
### 1. Discovery
Ask clarifying questions:
- Target audience?
- Depth level?
- Specific angles?
### 2. Research Planning
Generate:
- Primary questions (3-5)
- Secondary questions
- Source strategy
### 3. Deep Research
Execute with tools:
- `web_search` / `web_fetch`
- `Notion:notion-search`
- Internal documents
### 4. Research Paper
Synthesize into:
```
├── Executive Summary
├── Key Findings
├── Analysis
├── Recommendations
└── References
```
### 5. Notion Save
Archive to Working with AI:
- Database: f8f19ede-32bd-43ac-9f60-0651f6f40afe
- Properties: Name, Status, AI used, Summary
### 6. Blog Draft
Route to appropriate skill:
- Korean → `02-ourdigital-blog`
- English → `03-ourdigital-journal`
### 7. Export
```bash
python shared/scripts/export_to_ulysses.py --input draft.md
```
## Scripts
| Script | Purpose |
|--------|---------|
| `export_to_ulysses.py` | Export to Ulysses app |
| `research_pipeline.py` | Full automation |
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital research [topic]" | Start discovery |
| "ourdigital research → blog" | Full pipeline |
| "ourdigital research → notion" | Research + save |
## File Structure
```
04-ourdigital-research/
├── code/SKILL.md
├── desktop/SKILL.md
├── shared/
│ ├── references/
│ │ └── research-frameworks.md
│ └── scripts/
│ └── export_to_ulysses.py
└── docs/CHANGELOG.md
```

View File

@@ -0,0 +1,172 @@
---
name: ourdigital-research
description: |
Deep research and structured prompt generation for OurDigital workflows.
Activated with "ourdigital" keyword for research tasks.
Triggers (ourdigital or our prefix):
- "ourdigital research", "our research"
- "ourdigital 리서치", "our 리서치"
- "ourdigital deep research", "our deep research"
Features:
- Structured research planning
- Multi-source deep research
- Research paper synthesis
- Notion integration for archiving
- Blog draft pipeline
version: "1.0"
author: OurDigital
environment: Desktop
---
# OurDigital Research
Transform questions into comprehensive research papers and polished blog posts for OurDigital channels.
## Activation
Activate with "ourdigital" or "our" prefix:
- "ourdigital research [topic]" / "our research [topic]"
- "our 리서치", "our deep research"
- "ourdigital 리서치 해줘"
- "ourdigital deep research on [topic]"
## Workflow Overview
```
Phase 1: Discovery → Phase 2: Research Planning → Phase 3: Deep Research
Phase 4: Research Paper → Phase 5: Notion Save → Phase 6: Blog Draft
Phase 7: Ulysses Export → Phase 8: Publishing Guidance
```
## Phase 1: Discovery
**Goal**: Understand user's question and refine scope.
1. Acknowledge the topic/question
2. Ask clarifying questions (max 3 per turn):
- Target audience? (전문가/일반인/마케터)
- Depth level? (개요/심층분석/실무가이드)
- Specific angles or concerns?
3. Confirm research scope before proceeding
**Output**: Clear research objective statement
## Phase 2: Research Planning
**Goal**: Create structured research instruction.
Generate research plan with:
- Primary research questions (3-5)
- Secondary questions for depth
- Suggested tools/sources:
- Web search for current info
- Google Drive for internal docs
- Notion for past research
- Amplitude for analytics data (if relevant)
- Expected deliverables
**Output**: Numbered research instruction list
## Phase 3: Deep Research
**Goal**: Execute comprehensive multi-source research.
Tools to leverage:
- `web_search` / `web_fetch`: Current information, statistics, trends
- `google_drive_search`: Internal documents, past reports
- `Notion:notion-search`: Previous research, related notes
- `conversation_search`: Past chat context
Research execution pattern:
1. Start broad (overview searches)
2. Deep dive into key subtopics
3. Find supporting data/statistics
4. Identify expert opinions and case studies
5. Cross-reference and validate
**Output**: Organized research findings with citations
## Phase 4: Research Paper (Artifact)
**Goal**: Synthesize findings into comprehensive document.
Create HTML artifact with:
```
Structure:
├── Executive Summary (핵심 요약)
├── Background & Context (배경)
├── Key Findings (주요 발견)
│ ├── Finding 1 with evidence
│ ├── Finding 2 with evidence
│ └── Finding 3 with evidence
├── Analysis & Implications (분석 및 시사점)
├── Recommendations (제언)
├── References & Sources (참고자료)
└── Appendix (부록) - if needed
```
Style: Professional, data-driven, bilingual key terms
## Phase 5: Notion Save
**Goal**: Archive research to Working with AI database.
Auto-save to Notion with:
- **Database**: Working with AI (data_source_id: f8f19ede-32bd-43ac-9f60-0651f6f40afe)
- **Properties**:
- Name: [Research topic]
- Status: "Done"
- AI used: "Claude Desktop"
- AI summary: 2-3 sentence summary
## Phase 6: Blog Draft
**Goal**: Transform research into engaging blog post.
Prompt user for channel selection:
1. blog.ourdigital.org (Korean)
2. journal.ourdigital.org (English)
3. ourstory.day (Korean, personal)
Generate draft using appropriate style guide:
- Korean channels: See `02-ourdigital-blog`
- English channels: See `03-ourdigital-journal`
## Phase 7: Ulysses Export
**Goal**: Deliver MD file for Ulysses editing.
Export path: `$ULYSSES_EXPORT_PATH` from environment
## Phase 8: Publishing Guidance
Provide channel-specific checklist based on selection.
---
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital research [topic]" | Start Phase 1 |
| "ourdigital 리서치 프롬프트" | Generate research prompt only |
| "ourdigital research → blog" | Full pipeline to blog draft |
| "ourdigital research → notion" | Research + Notion save only |
## Channel Reference
| Channel | Language | Tone |
|---------|----------|------|
| blog.ourdigital.org | Korean | Analytical, Educational |
| journal.ourdigital.org | English | Reflective, Poetic |
| ourstory.day | Korean | Personal, Intimate |
## References
- `shared/references/research-frameworks.md` - Research methodologies
- `02-ourdigital-blog` - Blog writing skill
- `03-ourdigital-journal` - Journal writing skill

View File

@@ -0,0 +1,30 @@
# Changelog
All notable changes to ourdigital-research will be documented here.
## [1.1.0] - 2026-01-31
### Changed
- Added YAML frontmatter with "ourdigital" trigger keywords
- Standardized directory structure (added shared/, docs/)
- Updated triggers to require "ourdigital" prefix
- Aligned with project plan standards
- Added references to blog and journal skills
### Files Updated
- `desktop/SKILL.md` - Added frontmatter, updated triggers
- `code/SKILL.md` - Created (replaces CLAUDE.md pattern)
- Added `docs/CHANGELOG.md`
- Added `README.md`
## [1.0.0] - 2024-12-22
### Added
- Initial skill creation
- 8-phase research-to-publish workflow
- Notion integration
- Ulysses export
- Multi-channel blog support
### Notion Ref
- (To be synced)

View File

@@ -0,0 +1,85 @@
# OurDigital Document
Notion-to-presentation workflow for OurDigital branded deliverables.
## Purpose
Transform Notion research into:
- PowerPoint presentations
- Figma slide decks
- Branded executive summaries
- Meeting materials
## Activation
Only activates with "ourdigital" keyword:
- "ourdigital document [Notion URL]"
- "ourdigital 발표자료 만들어줘"
- "ourdigital presentation from research"
## Workflow
```
Research Collection → Content Synthesis → Presentation Planning
↓ ↓ ↓
Notion API Key Topics Slide Structure
↓ ↓ ↓
Slide Generation → Brand Application → Export
↓ ↓ ↓
Content OurDigital Style PPTX/Figma
```
## Structure
```
05-ourdigital-document/
├── code/
│ ├── SKILL.md
│ ├── scripts/
│ │ ├── run_workflow.py
│ │ ├── extract_notion.py
│ │ ├── synthesize_content.py
│ │ └── apply_brand.py
│ └── assets/
│ └── brand_config.json
├── desktop/
│ ├── SKILL.md
│ └── skill.yaml
├── shared/
│ └── references/
│ ├── slide-layouts.md
│ └── agenda-templates.md
├── docs/
│ └── CHANGELOG.md
└── README.md
```
## Presentation Types
| Type | Slides | Use Case |
|------|--------|----------|
| Executive | 3-5 | Board meetings, briefs |
| Research | 10-20 | Deep analysis, reviews |
| Meeting | 5-10 | Syncs, project updates |
| Workshop | 8-15 | Training, collaboration |
## Integration
Works with:
- `04-ourdigital-research` - Research input
- `01-ourdigital-brand-guide` - Brand styling
- Notion databases
- Figma API
## Environment
Requires `~/.env.ourdigital`:
```
NOTION_API_TOKEN=<token>
FIGMA_ACCESS_TOKEN=<token>
```
## Version
- Current: 1.1.0
- Author: OurDigital

View File

@@ -0,0 +1,133 @@
---
name: ourdigital-document
description: |
Notion-to-presentation workflow for OurDigital.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital document", "ourdigital 문서"
- "ourdigital presentation", "ourdigital 프레젠테이션"
Features:
- Script-based automation
- Notion extraction
- PowerPoint generation
- Brand application
version: "1.1"
author: OurDigital
environment: Code
---
# OurDigital Document (Code)
Automated Notion-to-presentation pipeline with script execution.
## Activation
Only with "ourdigital" keyword:
- "ourdigital document [Notion URL]"
- "ourdigital 발표자료"
## Quick Start
```bash
# Full automated workflow
python shared/scripts/run_workflow.py --notion-url [URL] --output presentation.pptx
# Step-by-step
python code/scripts/extract_notion.py [URL] > research.json
python code/scripts/synthesize_content.py research.json > synthesis.json
python code/scripts/apply_brand.py synthesis.json --output presentation.pptx
```
## Workflow Pipeline
```
extract_notion.py → synthesize_content.py → apply_brand.py
↓ ↓ ↓
research.json synthesis.json presentation.pptx
```
## Scripts
| Script | Purpose |
|--------|---------|
| `run_workflow.py` | Orchestrate full pipeline |
| `extract_notion.py` | Extract content from Notion |
| `synthesize_content.py` | Analyze and structure |
| `apply_brand.py` | Apply corporate styling |
| `generate_pptx.js` | Generate PowerPoint |
## Extract Notion
```bash
# Single page
python code/scripts/extract_notion.py notion://page/abc123 > research.json
# Database query
python code/scripts/extract_notion.py notion://database/def456 --filter "Status=Done"
```
## Synthesize Content
```bash
# Generate slide structure
python code/scripts/synthesize_content.py research.json > synthesis.json
# With presentation type
python code/scripts/synthesize_content.py research.json \
--type executive \
--max-slides 10
```
## Apply Brand
```bash
# PowerPoint output
python code/scripts/apply_brand.py synthesis.json \
--config code/assets/brand_config.json \
--output presentation.pptx
# Preview HTML
python code/scripts/apply_brand.py synthesis.json --preview
```
## Output Formats
- PowerPoint (.pptx)
- Figma (via API)
- HTML preview
## Brand Configuration
See `code/assets/brand_config.json` for:
- Logo placement
- Color scheme (OurDigital palette)
- Font settings (Poppins/Lora)
- Slide templates
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital document [URL]" | Full pipeline |
| "ourdigital document → pptx" | PowerPoint output |
| "ourdigital document → figma" | Figma export |
## File Structure
```
05-ourdigital-document/
├── code/
│ ├── SKILL.md
│ ├── scripts/
│ │ ├── run_workflow.py
│ │ ├── extract_notion.py
│ │ ├── synthesize_content.py
│ │ └── apply_brand.py
│ └── assets/
│ └── brand_config.json
├── desktop/SKILL.md
├── shared/references/
└── docs/CHANGELOG.md
```

View File

@@ -0,0 +1,155 @@
---
name: ourdigital-document
description: |
Notion-to-presentation workflow for OurDigital.
Activated with "ourdigital" keyword for document creation.
Triggers (ourdigital or our prefix):
- "ourdigital document", "our document"
- "ourdigital 문서", "our 문서"
- "ourdigital presentation", "our presentation"
- "ourdigital 발표자료", "our 발표자료"
Features:
- Notion research extraction
- Content synthesis and structuring
- Branded presentation generation
- PowerPoint and Figma output
version: "1.1"
author: OurDigital
environment: Desktop
---
# OurDigital Document
Transform Notion research into branded presentations for OurDigital workflows.
## Activation
Activate with "ourdigital" or "our" prefix:
- "ourdigital document" / "our document"
- "ourdigital 발표자료" / "our 발표자료"
- "our presentation [topic]"
- "ourdigital presentation on [topic]"
## Workflow Overview
```
Phase 1: Research Collection → Phase 2: Content Synthesis → Phase 3: Presentation Planning
Phase 4: Slide Generation → Phase 5: Brand Application → Phase 6: Export
```
## Phase 1: Research Collection
**Goal**: Extract research content from Notion.
Input sources:
- **Notion Page**: `notion://page/[ID]` - Single research document
- **Notion Database**: `notion://database/[ID]` - Collection query
- **Multiple Sources**: Comma-separated URLs for synthesis
Tools to use:
- `Notion:notion-search` - Find related content
- `Notion:notion-fetch` - Extract page content
**Output**: Structured research.json with findings
## Phase 2: Content Synthesis
**Goal**: Analyze and structure extracted content.
Processing:
1. Identify key topics and themes
2. Extract supporting data/statistics
3. Prioritize by relevance and impact
4. Generate executive summary
**Output**: synthesis.json with:
- Executive summary
- Key topics (ranked)
- Agenda items
- Supporting data points
## Phase 3: Presentation Planning
**Goal**: Create slide-by-slide structure.
Presentation types:
| Type | Slides | Focus |
|------|--------|-------|
| Executive Summary | 3-5 | High-level findings, KPIs |
| Research Report | 10-20 | Detailed methodology, data viz |
| Meeting Prep | 5-10 | Agenda-driven, decision points |
**Output**: Slide plan with:
- Title + subtitle per slide
- Content outline
- Speaker notes
- Visual suggestions
## Phase 4: Slide Generation
**Goal**: Generate presentation content.
Slide structure:
```
├── Title Slide (project name, date, author)
├── Agenda (numbered topics)
├── Content Slides (1-3 per topic)
│ ├── Key finding header
│ ├── Supporting points (3-5 bullets)
│ └── Data visualization placeholder
├── Summary Slide (key takeaways)
└── Next Steps / Q&A
```
## Phase 5: Brand Application
**Goal**: Apply OurDigital corporate styling.
Brand elements:
- **Colors**: OurDigital palette from `01-ourdigital-brand-guide`
- **Fonts**: Poppins (headings), Lora (body)
- **Logo**: Positioned per brand guidelines
- **Spacing**: Consistent margins and padding
Configuration: `shared/references/brand-config.json`
## Phase 6: Export
**Goal**: Generate final deliverable.
Output formats:
- **PowerPoint (.pptx)**: Full presentation with animations
- **Figma Slides**: Web-based collaborative format
- **HTML Preview**: Quick review before final export
Export paths:
- Desktop: `~/Downloads/presentations/`
- Figma: Via Figma API
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital document [Notion URL]" | Full pipeline |
| "ourdigital 발표자료 만들어줘" | Korean trigger |
| "ourdigital presentation → pptx" | PowerPoint output |
| "ourdigital presentation → figma" | Figma output |
## Presentation Templates
| Template | Use Case |
|----------|----------|
| Executive | Board meetings, C-level briefs |
| Research | Deep-dive analysis, team reviews |
| Meeting | Weekly syncs, project updates |
| Workshop | Training, collaborative sessions |
## References
- `shared/references/slide-layouts.md` - Layout options
- `shared/references/agenda-templates.md` - Structure templates
- `01-ourdigital-brand-guide` - Brand guidelines
- `04-ourdigital-research` - Research workflow integration

View File

@@ -0,0 +1,17 @@
name: ourdigital-document
description: |
Notion-to-presentation workflow for OurDigital.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital document", "ourdigital 문서"
- "ourdigital presentation", "ourdigital 프레젠테이션"
- "ourdigital pptx", "ourdigital 발표자료"
allowed-tools:
- mcp__plugin_Notion_notion__*
- mcp__plugin_figma_figma__*
- Read
- Write
license: Internal-use Only

View File

@@ -0,0 +1,29 @@
# Changelog
All notable changes to ourdigital-document will be documented here.
## [1.1.0] - 2026-01-31
### Changed
- Renamed from "research-to-presentation" to "ourdigital-document"
- Added YAML frontmatter with "ourdigital" trigger keywords
- Standardized directory structure (added shared/, docs/)
- Updated triggers to require "ourdigital" prefix
- Aligned with project plan standards
- Created code/SKILL.md (replaces CLAUDE.md pattern)
### Files Updated
- `desktop/SKILL.md` - Added frontmatter, updated triggers
- `desktop/skill.yaml` - Updated metadata
- `code/SKILL.md` - Created (replaces CLAUDE.md)
- Added `docs/CHANGELOG.md`
- Added `README.md`
## [1.0.0] - 2024-12-15
### Added
- Initial skill creation
- Notion-to-PowerPoint pipeline
- Content synthesis workflow
- Brand application scripts
- Figma export support

View File

@@ -0,0 +1,269 @@
# Agenda Templates Guide
## Overview
Templates for deriving meeting agendas from research content.
## Agenda Derivation Process
### Step 1: Topic Identification
Extract potential agenda items from research:
1. Main section headers → Primary topics
2. Key findings → Discussion points
3. Data insights → Review items
4. Recommendations → Decision points
5. Open questions → Discussion topics
### Step 2: Priority Assignment
Score each topic by:
- **Urgency**: Time-sensitive? (0-5)
- **Impact**: Business impact? (0-5)
- **Complexity**: Discussion needed? (0-5)
- **Dependencies**: Blocks other work? (0-5)
### Step 3: Time Allocation
Estimate discussion time:
- **Simple update**: 3-5 minutes
- **Data review**: 5-10 minutes
- **Discussion topic**: 10-15 minutes
- **Decision point**: 15-20 minutes
- **Strategic planning**: 20-30 minutes
## Meeting Type Templates
### Executive Review Meeting
```
1. Executive Summary (5 min)
- Key achievements
- Critical metrics
2. Performance Review (10 min)
- KPI dashboard
- Trend analysis
3. Strategic Topics (20 min)
- Market opportunities
- Competitive landscape
4. Decision Points (15 min)
- Resource allocation
- Priority changes
5. Next Steps (5 min)
- Action items
- Follow-up schedule
```
### Project Status Meeting
```
1. Project Overview (3 min)
- Current phase
- Overall timeline
2. Progress Update (10 min)
- Completed milestones
- Current activities
3. Blockers & Risks (15 min)
- Issue discussion
- Mitigation plans
4. Resource Needs (10 min)
- Team requirements
- Budget status
5. Next Sprint Planning (10 min)
- Upcoming milestones
- Task assignments
```
### Strategy Planning Session
```
1. Context Setting (10 min)
- Market analysis
- Current position
2. Opportunity Assessment (20 min)
- Growth areas
- Innovation possibilities
3. Challenge Analysis (15 min)
- Competitive threats
- Internal limitations
4. Strategic Options (20 min)
- Scenario planning
- Trade-off analysis
5. Decision Framework (15 min)
- Evaluation criteria
- Next steps
```
### Customer/Partner Meeting
```
1. Introductions & Objectives (5 min)
- Meeting goals
- Agenda overview
2. Current Status (10 min)
- Project update
- Recent achievements
3. Discussion Topics (25 min)
- Requirements review
- Feedback discussion
4. Next Steps (10 min)
- Action items
- Timeline alignment
5. Q&A (10 min)
- Open questions
- Clarifications
```
### Team Brainstorming Session
```
1. Problem Statement (5 min)
- Challenge definition
- Success criteria
2. Context Sharing (10 min)
- Research findings
- Constraints
3. Idea Generation (25 min)
- Open brainstorming
- Concept exploration
4. Idea Prioritization (15 min)
- Feasibility assessment
- Impact evaluation
5. Action Planning (10 min)
- Next steps
- Owner assignment
```
## Agenda Item Formulation
### From Finding to Agenda Item
**Research Finding**: "Customer satisfaction decreased 15% in Q4"
**Agenda Item**: "Q4 Customer Satisfaction Analysis & Recovery Plan"
**Time**: 15 minutes
**Discussion Points**:
- Root cause analysis
- Customer feedback themes
- Proposed improvements
- Success metrics
### From Data to Discussion
**Data Point**: "Conversion rate: 2.3% (industry avg: 3.5%)"
**Agenda Item**: "Conversion Optimization Strategy"
**Time**: 20 minutes
**Discussion Points**:
- Benchmark analysis
- Bottleneck identification
- Improvement initiatives
- Resource requirements
### From Recommendation to Decision
**Recommendation**: "Expand into European market"
**Agenda Item**: "European Market Expansion Decision"
**Time**: 25 minutes
**Decision Points**:
- Market opportunity validation
- Investment requirements
- Risk assessment
- Go/No-go decision
## Dynamic Agenda Adjustments
### For Limited Time (30 min meeting)
- Focus on critical decisions only
- Combine related topics
- Move updates to pre-read
- Schedule follow-ups for details
### For Extended Discussion (90+ min)
- Add break time (10 min at 45 min mark)
- Include deep-dive sections
- Add buffer time for Q&A
- Include working session time
### For Mixed Audience
- Start with common interests
- Segment specialized topics
- Plan parallel tracks if needed
- End with unified next steps
## Agenda Optimization Tips
### Topic Sequencing
1. **Energy curve**: High-energy topics after warm-up
2. **Decision fatigue**: Critical decisions early
3. **Logical flow**: Dependencies first
4. **Engagement**: Mix presentation and discussion
### Time Management
- **80% rule**: Plan for 80% of available time
- **Buffer zones**: 5-minute buffers between major topics
- **Parking lot**: Designate time for unexpected items
- **Hard stops**: Clear end times for each section
### Participation Planning
- **Speaker rotation**: Distribute presentation duties
- **Discussion leaders**: Assign topic owners
- **Note takers**: Rotate responsibility
- **Timekeeper**: Designated role
## Output Formats
### Detailed Agenda
```markdown
## Meeting: [Title]
**Date**: [Date] | **Time**: [Duration] | **Location**: [Place/Virtual]
### Attendees
- Required: [List]
- Optional: [List]
### Objectives
1. [Primary objective]
2. [Secondary objective]
### Agenda
#### 1. [Topic Name] (10 min) - [Owner]
**Objective**: [What to achieve]
**Materials**: [Pre-read links]
**Discussion Points**:
- [Point 1]
- [Point 2]
**Decision Needed**: [Yes/No - what decision]
[Continue for each topic...]
### Pre-Work
- [ ] Review [document]
- [ ] Prepare [input]
### Success Metrics
- [ ] [Metric 1]
- [ ] [Metric 2]
```
### Quick Agenda
```markdown
## [Meeting Title] - [Date]
1. [Topic 1] - [Duration] - [Owner]
2. [Topic 2] - [Duration] - [Owner]
3. [Topic 3] - [Duration] - [Owner]
4. Next Steps - 5 min
Total: [Total Duration]
```

View File

@@ -0,0 +1,150 @@
# Research Patterns Guide
## Overview
Common patterns for extracting and structuring research content from Notion.
## Content Extraction Patterns
### Hierarchical Extraction
Extract content respecting the document hierarchy:
```
1. Main Topics (H1 headers)
- Key Points (H2 headers)
- Supporting Details (H3 headers)
- Data points
- Examples
```
### Data Point Extraction
Identify and extract quantitative information:
- **Metrics**: Numbers with units (e.g., "25% growth")
- **KPIs**: Key Performance Indicators
- **Comparisons**: Year-over-year, benchmarks
- **Trends**: Directional indicators
### Action Item Detection
Look for action-oriented language:
- Keywords: "recommend", "suggest", "propose", "should"
- Imperatives: "implement", "deploy", "analyze"
- Future tense: "will", "plan to", "intend to"
## Synthesis Patterns
### Theme Clustering
Group related content by theme:
1. **Technical themes**: Technology, infrastructure, systems
2. **Business themes**: Strategy, market, competition
3. **Operational themes**: Process, efficiency, workflow
4. **Customer themes**: Satisfaction, feedback, needs
### Priority Scoring
Rank content by importance:
- **Critical**: Urgent, high-impact, deadline-driven
- **Important**: Strategic, long-term value
- **Relevant**: Supporting information, context
- **Optional**: Nice-to-have, future consideration
### Evidence Mapping
Connect claims to supporting evidence:
```
Claim → Data Point → Source
"Market is growing" → "25% YoY growth" → "Q4 Market Report"
```
## Notion-Specific Patterns
### Database Queries
When extracting from Notion databases:
1. Filter by date range for recent content
2. Sort by priority or importance fields
3. Group by category or project
4. Aggregate metrics across entries
### Page Relationships
Follow page links strategically:
- **Parent pages**: For context and background
- **Child pages**: For detailed information
- **Linked pages**: For related topics
- **Mentioned pages**: For cross-references
### Content Types
Handle different Notion content types:
- **Text blocks**: Extract as-is
- **Toggle lists**: Expand and include all content
- **Tables**: Convert to structured data
- **Embeds**: Note source and type
- **Code blocks**: Preserve formatting
## Quality Checks
### Completeness
Ensure extraction captures:
- [ ] All main sections
- [ ] Key data points
- [ ] Action items
- [ ] Recommendations
- [ ] Links and references
### Accuracy
Verify extracted content:
- [ ] Numbers match source
- [ ] Quotes are exact
- [ ] Context is preserved
- [ ] Relationships are maintained
### Relevance
Filter content by:
- [ ] Topic relevance
- [ ] Time relevance (recent vs outdated)
- [ ] Audience relevance
- [ ] Objective relevance
## Advanced Patterns
### Sentiment Analysis
Identify tone and sentiment:
- **Positive indicators**: Success, achievement, growth
- **Negative indicators**: Challenge, risk, decline
- **Neutral indicators**: Stable, maintained, unchanged
### Temporal Analysis
Track changes over time:
- **Historical context**: Past performance
- **Current state**: Present situation
- **Future projections**: Plans and forecasts
### Cross-Reference Analysis
Connect information across sources:
- **Confirmatory**: Multiple sources agree
- **Contradictory**: Sources conflict
- **Complementary**: Sources add different perspectives
## Output Formatting
### Executive Summary Pattern
```
1. High-level conclusion (1-2 sentences)
2. Key findings (3-5 bullets)
3. Critical metrics (top 3-5)
4. Immediate actions (top 3)
```
### Detailed Report Pattern
```
1. Background and context
2. Methodology
3. Findings by category
4. Data analysis
5. Conclusions
6. Recommendations
7. Appendices
```
### Quick Brief Pattern
```
1. What: Core message
2. Why: Importance/impact
3. How: Key data/evidence
4. When: Timeline/urgency
5. Who: Stakeholders/owners
```

View File

@@ -0,0 +1,327 @@
# Slide Layouts Guide
## Overview
Layout patterns and best practices for different slide types.
## Layout Principles
### Visual Hierarchy
1. **Primary**: Title/headline (largest, boldest)
2. **Secondary**: Key points (medium, clear)
3. **Tertiary**: Supporting details (smaller, lighter)
4. **Quaternary**: Metadata (smallest, subtle)
### Balance & Alignment
- **Rule of thirds**: Divide slide into 9 sections
- **White space**: 30-40% minimum
- **Alignment grid**: Consistent margins and gutters
- **Visual weight**: Balance text, images, and data
## Core Slide Types
### 1. Title Slide
```
┌─────────────────────────────────┐
│ │
│ │
│ [Company Logo] │
│ │
│ PRESENTATION TITLE │
│ Subtitle Text │
│ │
│ Date | Author │
│ │
└─────────────────────────────────┘
```
**Elements**:
- Title: 44-48pt, bold, centered
- Subtitle: 24-28pt, regular, centered
- Metadata: 14-16pt, light, centered
- Background: Gradient or image with overlay
### 2. Section Divider
```
┌─────────────────────────────────┐
│ │
│ │
│ │
│ SECTION TITLE │
│ Brief Context │
│ │
│ │
│ │
└─────────────────────────────────┘
```
**Elements**:
- Section title: 36-40pt, bold
- Context: 20-24pt, regular
- Background: Brand color or pattern
- Number indicator (optional): Large, subtle
### 3. Content Slide - Text Only
```
┌─────────────────────────────────┐
│ SLIDE TITLE │
├─────────────────────────────────┤
│ │
│ • Key point one with detail │
│ Supporting information │
│ │
│ • Key point two with detail │
│ Supporting information │
│ │
│ • Key point three with detail │
│ Supporting information │
│ │
└─────────────────────────────────┘
```
**Elements**:
- Title: 32pt, bold, left-aligned
- Bullets: 18-20pt, regular
- Sub-bullets: 16-18pt, light
- Line spacing: 1.5x
### 4. Content Slide - Text + Image
```
┌─────────────────────────────────┐
│ SLIDE TITLE │
├────────────────┬────────────────┤
│ │ │
│ • Point one │ │
│ │ [IMAGE/ │
│ • Point two │ CHART] │
│ │ │
│ • Point three │ │
│ │ │
└────────────────┴────────────────┘
```
**Proportions**:
- Text: 50-60% width
- Visual: 40-50% width
- Padding: 0.5" between columns
### 5. Data Visualization
```
┌─────────────────────────────────┐
│ DATA INSIGHT TITLE │
├─────────────────────────────────┤
│ ┌──────────┐ │
│ │ │ │
│ │ CHART/ │ │
│ │ GRAPH │ │
│ │ │ │
│ └──────────┘ │
│ │
│ Key Insight: [Callout text] │
└─────────────────────────────────┘
```
**Elements**:
- Chart: 60-70% of slide area
- Title: Descriptive, not just "Sales Data"
- Callout: Highlight key finding
- Legend: Only if necessary
### 6. Comparison Slide
```
┌─────────────────────────────────┐
│ COMPARISON TITLE │
├────────────────┬────────────────┤
│ Option A │ Option B │
├────────────────┼────────────────┤
│ │ │
│ ✓ Advantage 1 │ ✓ Advantage 1 │
│ ✓ Advantage 2 │ ✓ Advantage 2 │
│ ✗ Drawback 1 │ ✗ Drawback 1 │
│ │ │
│ Metric: 85% │ Metric: 72% │
│ │ │
└────────────────┴────────────────┘
```
**Layout**:
- Equal column widths
- Consistent formatting
- Visual indicators (✓/✗, +/-)
- Highlight winner (if applicable)
### 7. Process/Timeline
```
┌─────────────────────────────────┐
│ PROCESS TITLE │
├─────────────────────────────────┤
│ │
│ [1]────►[2]────►[3]────►[4] │
│ Start Step Step End │
│ One Two │
│ │
│ Description of the process │
│ │
└─────────────────────────────────┘
```
**Variations**:
- Horizontal timeline
- Vertical timeline
- Circular process
- Chevron diagram
### 8. Quote/Testimonial
```
┌─────────────────────────────────┐
│ │
│ │
│ "Impactful quote │
│ that supports │
│ your message" │
│ │
│ - Attribution │
│ Title/Company │
│ │
└─────────────────────────────────┘
```
**Styling**:
- Quote: 24-28pt, italic or serif
- Attribution: 16-18pt, regular
- Quotation marks: Large, subtle
- Background: Minimal, maybe texture
### 9. Image-Focused
```
┌─────────────────────────────────┐
│ │
│ │
│ [FULL BLEED IMAGE] │
│ │
│ │
├─────────────────────────────────┤
│ Caption or Context Text │
└─────────────────────────────────┘
```
**Best Practices**:
- High-resolution images only
- Text overlay needs contrast
- Consider semi-transparent overlay
- Keep text minimal
### 10. Call-to-Action
```
┌─────────────────────────────────┐
│ │
│ │
│ CLEAR ACTION ITEM │
│ │
│ [ BUTTON/ACTION ] │
│ │
│ Supporting context │
│ │
└─────────────────────────────────┘
```
**Elements**:
- Action: 32-36pt, bold
- Button: Contrasting color
- Context: 18-20pt, regular
- Contact info (if applicable)
## Responsive Layouts
### Mobile-First Considerations
- Larger text (minimum 14pt)
- Single column layouts
- Touch-friendly spacing
- Simplified graphics
### Aspect Ratios
- **16:9** (Standard): 1920×1080px
- **4:3** (Traditional): 1024×768px
- **16:10** (Modern): 1920×1200px
- **1:1** (Social): 1080×1080px
## Color Usage
### Background Options
1. **White**: Maximum readability
2. **Light gray**: Reduces glare
3. **Dark**: For high contrast
4. **Gradient**: Adds depth
5. **Pattern**: Subtle texture
### Text Colors
- **Primary text**: High contrast (90%+)
- **Secondary text**: Medium contrast (70%+)
- **Accent text**: Brand color
- **Disabled text**: Low contrast (40%)
## Typography Guidelines
### Font Pairing
```
Heading Font + Body Font
- Poppins + Lora
- Arial + Georgia
- Helvetica + Times
- Roboto + Merriweather
```
### Size Hierarchy
```
Title: 44-48pt
Subtitle: 32-36pt
Heading: 28-32pt
Subheading: 20-24pt
Body: 16-20pt
Caption: 12-14pt
```
### Line Spacing
- Titles: 1.0-1.2x
- Body text: 1.5-1.6x
- Bullets: 1.4-1.5x
- Captions: 1.2-1.3x
## Animation & Transitions
### Entrance Animations
- **Fade in**: Universal, professional
- **Slide in**: Directional emphasis
- **Grow**: Importance emphasis
- **Appear**: Simple, no distraction
### Transition Timing
- Fast: 0.3s (between related slides)
- Medium: 0.5s (section transitions)
- Slow: 1.0s (major transitions)
### Build Sequences
1. Title appears
2. Main content fades in
3. Supporting elements slide in
4. Call-to-action grows
## Accessibility Considerations
### Color Contrast
- WCAG AA: 4.5:1 for normal text
- WCAG AA: 3:1 for large text
- WCAG AAA: 7:1 for normal text
### Font Sizes
- Minimum: 14pt for body text
- Minimum: 18pt for important text
- Maximum: 54pt for titles
### Alt Text
- Describe all images
- Explain all charts
- Summarize complex diagrams
## Quality Checklist
### Before Finalizing
- [ ] Consistent alignment across slides
- [ ] Proper contrast ratios
- [ ] No orphaned bullets
- [ ] Images are high resolution
- [ ] Data is clearly labeled
- [ ] Slide numbers present
- [ ] Brand elements applied
- [ ] Spell check completed
- [ ] Animations tested
- [ ] Export quality verified

View File

@@ -0,0 +1,80 @@
# OurDigital Designer
Visual storytelling and image prompt generation for OurDigital content.
## Purpose
Transform philosophical essays into sophisticated visual narratives:
- Featured image prompts for AI art tools
- Minimalist, conceptually rich designs
- Korean-Western aesthetic fusion
- Blog thumbnail optimization
## Activation
Only activates with "ourdigital" keyword:
- "ourdigital design featured image"
- "ourdigital 썸네일 만들어줘"
- "ourdigital image prompt for [topic]"
## Core Philosophy
OurDigital images are visual philosophy—not illustrations but parallel texts that invite contemplation:
- **Abstract metaphors** over literal representations
- **Contemplative minimalism** with 20%+ negative space
- **Cultural fusion** of Korean-Western aesthetics
- **Emotional resonance** through color psychology
## Structure
```
06-ourdigital-designer/
├── code/
│ ├── SKILL.md
│ └── scripts/
│ ├── generate_prompt.py
│ └── mood_calibrator.py
├── desktop/
│ ├── SKILL.md
│ └── skill.yaml
├── shared/
│ └── references/
│ ├── visual-metaphors.md
│ ├── color-palettes.md
│ └── advanced-techniques.md
├── docs/
│ └── CHANGELOG.md
└── README.md
```
## Visual Approach
| Essay Type | Visual Strategy | Color Mood |
|-----------|-----------------|------------|
| Technology | Organic-digital hybrids | Cool blues → warm accents |
| Social | Network patterns | Desaturated → hope spots |
| Philosophy | Zen space | Monochrome + single accent |
| Cultural | Layered traditions | Earth tones → modern hues |
## Technical Specs
| Field | Value |
|-------|-------|
| Dimensions | 1200x630px (OG standard) |
| Style | Vector illustration + subtle textures |
| Colors | 60-30-10 rule |
| Format | WebP primary, JPG fallback |
## Integration
Works with:
- `02-ourdigital-blog` - Korean blog images
- `03-ourdigital-journal` - English essay images
- `01-ourdigital-brand-guide` - Brand colors
- MidJourney, DALL-E, Stable Diffusion
## Version
- Current: 1.1.0
- Author: OurDigital

View File

@@ -0,0 +1,125 @@
---
name: ourdigital-designer
description: |
Visual storytelling and image prompt generation for OurDigital.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital design", "ourdigital 디자인"
- "ourdigital image prompt", "ourdigital 이미지"
Features:
- Script-based prompt generation
- Mood calibration
- Batch prompt variations
version: "1.1"
author: OurDigital
environment: Code
---
# OurDigital Designer (Code)
Automated visual prompt generation with script support.
## Activation
Only with "ourdigital" keyword:
- "ourdigital design [topic]"
- "ourdigital 이미지 프롬프트"
## Quick Start
```bash
# Generate prompt
python code/scripts/generate_prompt.py \
--topic "AI identity crisis" \
--mood "contemplative anxiety" \
--metaphor "mirror fragments"
# Adjust mood parameters
python code/scripts/mood_calibrator.py \
--preset philosophical_essay \
--contemplative-depth 0.95
# Generate variations
python code/scripts/generate_prompt.py \
--topic "SEO의 미래" \
--variations 3 \
--json
```
## Scripts
| Script | Purpose |
|--------|---------|
| `generate_prompt.py` | Build structured prompts |
| `mood_calibrator.py` | Adjust emotional parameters |
## Mood Parameters
```python
contemplative_depth = 0.8 # Abstract level (0-1)
cultural_fusion = 0.6 # East-West balance (0-1)
technical_precision = 0.7 # Clean vs organic (0-1)
emotional_weight = 0.5 # Mood intensity (0-1)
```
## Preset Moods
| Preset | Use Case |
|--------|----------|
| `philosophical_essay` | Deep contemplation |
| `technical_analysis` | Clean, structured |
| `social_commentary` | Critical, layered |
| `cultural_reflection` | Tradition meets modern |
## Visual Approach by Topic
| Topic Type | Visual Strategy | Colors |
|-----------|-----------------|--------|
| Technology | Organic-digital hybrids | Cool blues |
| Social | Network patterns | Desaturated |
| Philosophy | Zen space | Monochrome |
| Cultural | Layered traditions | Earth tones |
## Output Formats
```bash
# Text prompt
python code/scripts/generate_prompt.py --topic "..." --format text
# JSON structured
python code/scripts/generate_prompt.py --topic "..." --format json
# MidJourney optimized
python code/scripts/generate_prompt.py --topic "..." --platform midjourney
# DALL-E optimized
python code/scripts/generate_prompt.py --topic "..." --platform dalle
```
## File Structure
```
06-ourdigital-designer/
├── code/
│ ├── SKILL.md
│ ├── scripts/
│ │ ├── generate_prompt.py
│ │ └── mood_calibrator.py
│ └── references/
├── desktop/SKILL.md
├── shared/references/
│ ├── visual-metaphors.md
│ ├── color-palettes.md
│ └── advanced-techniques.md
└── docs/CHANGELOG.md
```
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital design [topic]" | Generate prompt |
| "ourdigital design → midjourney" | MJ optimized |
| "ourdigital design → dalle" | DALL-E optimized |

View File

@@ -0,0 +1,145 @@
---
name: ourdigital-designer
description: |
Visual storytelling and image prompt generation for OurDigital.
Activated with "ourdigital" keyword for design tasks.
Triggers (ourdigital or our prefix):
- "ourdigital design", "our design"
- "ourdigital 디자인", "our 디자인"
- "ourdigital image prompt", "our image prompt"
- "ourdigital 썸네일", "our 썸네일"
Features:
- Philosophical visual narrative creation
- Image prompt generation for AI art tools
- Korean-Western aesthetic fusion
- Blog featured image optimization
version: "1.1"
author: OurDigital
environment: Desktop
---
# OurDigital Designer
Transform philosophical essays into sophisticated visual narratives through minimalist, conceptually rich featured images.
## Activation
Activate with "ourdigital" or "our" prefix:
- "ourdigital design" / "our design"
- "ourdigital 썸네일" / "our 썸네일"
- "our image prompt for [topic]"
## Core Philosophy
OurDigital images are visual philosophy—not illustrations but parallel texts that invite contemplation. Each image captures the essay's philosophical core through:
- **Abstract metaphors** over literal representations
- **Contemplative minimalism** with 20%+ negative space
- **Cultural fusion** of Korean-Western aesthetics
- **Emotional resonance** through color psychology
## Workflow
### Phase 1: Extract Essay Essence
Analyze the content for:
- **Core insight**: What philosophical truth?
- **Emotional tone**: What feeling to evoke?
- **Key metaphor**: What visual symbol?
### Phase 2: Select Visual Approach
| Essay Type | Visual Strategy | Color Mood |
|-----------|-----------------|------------|
| Technology | Organic-digital hybrids | Cool blues → warm accents |
| Social | Network patterns, human fragments | Desaturated → hope spots |
| Philosophy | Zen space, symbolic objects | Monochrome + single accent |
| Cultural | Layered traditions, fusion forms | Earth tones → modern hues |
### Phase 3: Generate Prompt
Build structured prompt with:
```
[Style] + [Subject] + [Composition] + [Color] + [Technical specs]
```
### Phase 4: Quality Check
**Must have:**
- Captures philosophical insight
- Works at 200px thumbnail
- Timeless (2-3 year relevance)
- Cross-cultural readability
**Must avoid:**
- Tech clichés (circuits, binary)
- Stock photo aesthetics
- Literal interpretations
- Trendy effects
## Quick Templates
### AI & Humanity
```
"Translucent human silhouette dissolving into crystalline data structures.
Monochrome with teal accent. Boundary dissolution between organic/digital.
1200x630px, minimalist vector style."
```
### Social Commentary
```
"Overlapping circles forming maze pattern, tiny humans in separate chambers.
Blue-gray palette, warm light leaks for hope. Subtle Korean patterns.
High negative space. 1200x630px."
```
### Digital Transformation
```
"Traditional forms metamorphosing into particle streams. Paper texture → digital grain.
Earth tones shifting to cool blues. Sacred geometry underlying.
1200x630px, contemplative mood."
```
## Visual Metaphor Shortcuts
| Concept | Visual Metaphor |
|---------|-----------------|
| Algorithm | Constellation patterns |
| Identity | Layered masks, fingerprints |
| Network | Root systems, neural paths |
| Time | Spirals, sediment layers |
| Knowledge | Light sources, growing trees |
## Color Psychology
| Mood | Palette |
|------|---------|
| Critical | Deep blue-gray + red accent |
| Hopeful | Warm amber + sky blue |
| Philosophical | Near black + off white + gold |
| Anxious | Charcoal + grey-blue + digital green |
## Technical Specs
- **Dimensions**: 1200x630px (OG standard)
- **Style**: Vector illustration + subtle textures
- **Colors**: 60-30-10 rule (dominant-secondary-accent)
- **Format**: WebP primary, JPG fallback
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital design [topic]" | Generate image prompt |
| "ourdigital 썸네일 [주제]" | Korean trigger |
| "ourdigital visual → midjourney" | MidJourney optimized |
| "ourdigital visual → dalle" | DALL-E optimized |
## References
- `shared/references/visual-metaphors.md` - Concept dictionary
- `shared/references/color-palettes.md` - Emotion → color mapping
- `shared/references/advanced-techniques.md` - Complex compositions
- `01-ourdigital-brand-guide` - Brand visual identity

View File

@@ -0,0 +1,16 @@
name: ourdigital-designer
description: |
Visual storytelling and image prompt generation for OurDigital.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital design", "ourdigital 디자인"
- "ourdigital image prompt", "ourdigital 이미지"
- "ourdigital featured image", "ourdigital 썸네일"
allowed-tools:
- mcp__plugin_figma_figma__*
- Read
- Write
license: MIT

View File

@@ -0,0 +1,30 @@
# Changelog
All notable changes to ourdigital-designer will be documented here.
## [1.1.0] - 2026-01-31
### Changed
- Renamed from "ourdigital-visual-storytelling" to "ourdigital-designer"
- Added YAML frontmatter with "ourdigital" trigger keywords
- Standardized directory structure (added shared/, docs/)
- Updated triggers to require "ourdigital" prefix
- Aligned with project plan standards
- Created code/SKILL.md (replaces CLAUDE.md pattern)
### Files Updated
- `desktop/SKILL.md` - Added frontmatter, updated triggers
- `desktop/skill.yaml` - Updated metadata
- `code/SKILL.md` - Created (replaces CLAUDE.md)
- Added `docs/CHANGELOG.md`
- Updated `README.md`
## [1.0.0] - 2024-12-10
### Added
- Initial skill creation
- Visual storytelling workflow
- Prompt generation scripts
- Mood calibration system
- Visual metaphor dictionary
- Color palette references

View File

@@ -0,0 +1,214 @@
# Advanced Visual Techniques
Sophisticated methods for complex visual narratives.
## Metaphor Layering
### Three-Layer Structure
```
Layer 1: Immediate visual (what viewer sees first)
Layer 2: Symbolic meaning (conceptual understanding)
Layer 3: Philosophical depth (deeper reflection)
Example: "Digital Identity Crisis"
L1: Fragmented mirror with face
L2: Multiple reflections = multiple online personas
L3: Question of authentic self in digital age
```
### Transition States
Show transformation between concepts:
- **Discrete**: Clear before/after states
- **Continuous**: Gradient transformation
- **Recursive**: Self-referential loops
- **Parallel**: Simultaneous states
## Composition Dynamics
### Sacred Geometry Applications
**Golden Spiral**
```python
# Place key elements along spiral path
phi = 1.618
spiral_points = [(r * cos(θ), r * sin(θ))
where r = phi^(θ/2π)]
```
**Rule of Triangles**
- Stable: Base down △
- Unstable: Point down ▽
- Dynamic: Multiple overlapping
**Grid Breaking**
- Start with rigid grid
- Selectively break for emphasis
- Maintain overall structure
### Negative Space as Active Element
Use empty space to:
1. Create secondary images
2. Guide eye movement
3. Represent absence/loss
4. Provide breathing room
5. Suggest the ineffable
## Cultural Symbolism Integration
### Korean Elements (Subtle)
- **Ma (마/間)**: Pregnant emptiness
- **Jeong (정)**: Emotional bonds as visual threads
- **Han (한)**: Melancholic beauty in shadows
- **Nunchi (눈치)**: Implied awareness in composition
### Western Elements (Structural)
- **Bauhaus**: Function drives form
- **Swiss Grid**: Underlying order
- **Brutalism**: Raw honesty
- **Minimalism**: Essential only
### Fusion Techniques
```
Korean softness + Western structure =
- Geometric forms with organic edges
- Grid with breathing spaces
- Minimal palette with emotional depth
- Clean lines with textural warmth
```
## Texture Integration
### Digital Textures
- **Glitch**: Controlled chaos, disruption
- **Grain**: Film nostalgia, warmth
- **Pixels**: Digital breakdown, transformation
- **Code**: Underlying structure revealed
### Organic Textures
- **Paper**: Tangible, traditional
- **Water**: Flow, change, transparency
- **Stone**: Permanence, weight
- **Cloud**: Ethereal, transient
### Hybrid Approach
```css
/* Layer organic over digital */
base: clean_vector;
overlay: paper_texture at 15% opacity;
accent: digital_grain at edges;
```
## Color Psychology Advanced
### Emotional Journey Mapping
```
Start → Middle → End
Cold Blue → Neutral Gray → Warm Gold
(Analysis) → (Process) → (Understanding)
```
### Color Dissonance for Tension
- Complementary colors at borders
- Unexpected accent in monochrome
- Temperature shift for emphasis
### Cultural Color Codes
- Red in Korea: More passionate than West
- White in Korea: Death/purity duality
- Black: Universal depth, different meanings
## Temporal Narrative Techniques
### Static Image, Dynamic Story
1. **Past-Present-Future**: Three zones in composition
2. **Cycle Representation**: Circular time
3. **Erosion/Growth**: Time's effect
4. **Palimpsest**: Layers of history
### Motion Implied in Stillness
- Blur suggesting movement
- Repetition showing progression
- Fragments indicating explosion
- Spiral showing evolution
## Abstraction Gradients
### Level 1: Recognizable (0.3 abstract)
- Clear objects with stylization
- Obvious metaphors
- Direct symbolism
### Level 2: Suggestive (0.6 abstract)
- Forms hint at objects
- Metaphors require thought
- Symbolism is layered
### Level 3: Conceptual (0.9 abstract)
- Pure form and color
- Metaphors are felt
- Symbolism is philosophical
## Technical Excellence
### File Optimization
```bash
# ImageMagick optimization
convert input.png \
-quality 85 \
-strip \
-resize 1200x630 \
-colorspace sRGB \
output.webp
```
### Accessibility Checks
- Contrast ratio: minimum 4.5:1
- Color-blind safe palettes
- Clear focal points
- Alternative interpretations valid
## Prompt Engineering Advanced
### Complex Concept Formula
```
[PHILOSOPHICAL CONCEPT] through [NATURAL METAPHOR]
+ [TECHNICAL ELEMENT] suggesting [EMOTIONAL JOURNEY]
+ [CULTURAL REFERENCE] without cliché
+ [TEMPORAL ASPECT] in single frame
= Sophisticated visual narrative
```
### Negative Prompting
Always include what to avoid:
- "No literal representations"
- "Avoid tech clichés"
- "No stock photo aesthetics"
- "Exclude obvious symbols"
## Quality Evaluation Matrix
| Aspect | Weight | Evaluation Criteria |
|--------|--------|-------------------|
| Concept | 30% | Captures essay essence? |
| Originality | 25% | Unique perspective? |
| Execution | 20% | Technical excellence? |
| Emotion | 15% | Evokes intended feeling? |
| Timelessness | 10% | Will age well? |
## Iteration Strategies
1. **Generate 3 variations**: Different moods
2. **A/B test concepts**: Literal vs abstract
3. **Color studies**: Warm vs cool
4. **Composition alternatives**: Central vs offset
## Cultural Sensitivity Checklist
- [ ] Avoids stereotypes
- [ ] Respects both traditions
- [ ] Universal symbolism
- [ ] Inclusive imagery
- [ ] Cross-cultural readable
Remember: Every image is a visual philosophy—not decoration, but thought.

View File

@@ -0,0 +1,147 @@
# Color Palette Reference
Emotion-driven color systems for OurDigital visual storytelling.
## Core Palettes
### Contemplative Analysis
```
Primary: #2C3E50 Deep Blue-Gray
Secondary: #95A5A6 Cool Gray
Accent: #E74C3C Sharp Red
Background:#F8F9FA Soft White
Usage: Critical thinking, analytical pieces
```
### Hopeful Exploration
```
Primary: #F39C12 Warm Amber
Secondary: #E8E2D5 Soft Beige
Accent: #3498DB Sky Blue
Background:#FFF9F0 Warm White
Usage: Future-oriented, optimistic content
```
### Philosophical Depth
```
Primary: #1A1A1A Near Black
Secondary: #F5F5F5 Off White
Accent: #8B7355 Muted Gold
Background:#FAFAFA Pure White
Usage: Deep thinking, timeless topics
```
### Social Commentary
```
Primary: #34495E Slate
Secondary: #ECF0F1 Cloud
Accent: #9B59B6 Purple
Background:#F7F8F9 Cool White
Usage: Cultural observation, social critique
```
### Digital Anxiety
```
Primary: #2F3640 Charcoal
Secondary: #718093 Grey Blue
Accent: #44BD32 Digital Green
Background:#F5F6FA Ghost White
Usage: Technology concerns, digital culture
```
## Gradient Formulas
### Dawn (Hope/Beginning)
```css
linear-gradient(135deg, #667eea 0%, #764ba2 100%)
```
### Dusk (Reflection/End)
```css
linear-gradient(135deg, #f093fb 0%, #f5576c 100%)
```
### Digital Flow (Technology)
```css
linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)
```
### Organic (Nature/Human)
```css
linear-gradient(135deg, #fa709a 0%, #fee140 100%)
```
## Cultural Color Notes
### Korean Traditional (오방색)
- **청 (Blue-Green)**: #0C7B93 - Future, technology
- **적 (Red)**: #C0392B - Warning, passion
- **황 (Yellow)**: #F1C40F - Center, balance
- **백 (White)**: #FFFFFF - Beginning, void
- **흑 (Black)**: #000000 - Depth, unknown
### Modern Minimal
- **Primary**: Single strong color
- **Support**: 90% grayscale
- **Accent**: 10% vibrant touch
## Emotional Temperature Map
| Cool → Warm Scale | Hex Code | Emotional State |
|------------------|----------|-----------------|
| Ice | #E3F2FD | Detached analysis |
| Cold | #90CAF9 | Objective observation |
| Cool | #64B5F6 | Calm reflection |
| Neutral | #42A5F5 | Balanced view |
| Warm | #FFA726 | Human connection |
| Hot | #FF7043 | Passionate engagement |
| Fire | #F4511E | Urgent concern |
## Accessibility Combinations
### High Contrast (WCAG AAA)
- Black (#000000) on White (#FFFFFF)
- White (#FFFFFF) on Black (#000000)
- Dark Blue (#003366) on Light Yellow (#FFFFCC)
### Medium Contrast (WCAG AA)
- Charcoal (#333333) on Light Gray (#F5F5F5)
- Navy (#2C3E50) on Cream (#FFF8DC)
## Application Rules
1. **60-30-10 Rule**
- 60% dominant color (usually neutral)
- 30% secondary color (supporting)
- 10% accent color (attention)
2. **Mood Matching**
- Technical → Cool spectrum
- Emotional → Warm spectrum
- Philosophical → Monochrome
- Social → Mixed temperature
3. **Cultural Balance**
- Western: High contrast, bold
- Korean: Subtle gradation, harmony
- Fusion: Selective contrast points
## Quick Selection Matrix
| Essay Type | Primary | Accent | Mood |
|------------|---------|---------|------|
| AI Ethics | Cool Gray | Red | Caution |
| Digital Culture | Blue-Gray | Green | Technical |
| Social Media | Desaturated | Purple | Critical |
| Philosophy | Monochrome | Gold | Timeless |
| Future Tech | Blue | Orange | Optimistic |
| Cultural | Earth | Red | Grounded |
## Seasonal Adjustments
- **Spring**: Fresh greens, light blues
- **Summer**: Vibrant, high saturation
- **Autumn**: Warm earth tones
- **Winter**: Cool, desaturated
Use colors intentionally—each hue carries meaning.

View File

@@ -0,0 +1,101 @@
# Visual Metaphor Dictionary
Quick reference for translating abstract concepts into visual elements.
## Technology & Digital
| Concept | Primary Metaphor | Alternative Visuals |
|---------|-----------------|-------------------|
| Algorithm | Constellation patterns | Maze structures, flow charts as art |
| AI | Crystalline growth | Mirror reflections, fractal patterns |
| Data | Water flow, particles | Bird murmurations, sand grains |
| Network | Root systems | Neural pathways, spider silk, web |
| Code | Musical notation | DNA strands, city blueprints |
| Cloud | Atmospheric forms | Floating islands, ethereal spaces |
| Privacy | Veils, shadows | One-way mirrors, fog, barriers |
| Security | Locks dissolving | Fortresses becoming permeable |
| Automation | Clockwork organic | Self-assembling structures |
| Virtual | Layers of reality | Parallel dimensions, glass planes |
## Social & Cultural
| Concept | Primary Metaphor | Alternative Visuals |
|---------|-----------------|-------------------|
| Identity | Layered masks | Fingerprints merging, mirrors |
| Community | Overlapping circles | Shared spaces, woven threads |
| Isolation | Islands in fog | Glass barriers, empty chairs |
| Communication | Bridge structures | Echo patterns, light beams |
| Conflict | Opposing forces | Tectonic plates, storm systems |
| Harmony | Resonance patterns | Orchestra arrangements, balance |
| Culture | Textile patterns | Layered sediments, palimpsest |
| Tradition | Tree rings | Ancient stones, inherited objects |
| Change | Metamorphosis | Phase transitions, seasonal cycles |
| Power | Pyramids inverting | Current flows, gravity wells |
## Philosophical & Abstract
| Concept | Primary Metaphor | Alternative Visuals |
|---------|-----------------|-------------------|
| Time | Spirals, loops | Sediment layers, clock dissolution |
| Knowledge | Light sources | Growing trees, opening books |
| Wisdom | Mountain vistas | Deep waters, ancient libraries |
| Truth | Clear water | Prisms splitting light, unveiled |
| Illusion | Distorted mirrors | Smoke shapes, double images |
| Choice | Diverging paths | Doors opening, quantum splits |
| Balance | Tensegrity | Scales reimagined, equilibrium |
| Paradox | Möbius strips | Impossible objects, Escher-like |
| Existence | Breath patterns | Pulse rhythms, presence/absence |
| Consciousness | Nested awareness | Recursive mirrors, awakening |
## Emotional States
| Emotion | Visual Translation | Color Association |
|---------|-------------------|------------------|
| Anxiety | Fragmented grids | Desaturated, glitch |
| Hope | Light breaking through | Warm gradients |
| Melancholy | Soft dissolution | Muted blues, grays |
| Joy | Expansion patterns | Bright, ascending |
| Fear | Contracting spaces | Sharp contrasts |
| Peace | Still water | Soft neutrals |
| Confusion | Tangled lines | Overlapping hues |
| Clarity | Clean geometry | Pure, minimal |
## Transformation & Process
| Process | Visual Narrative | Symbolic Elements |
|---------|------------------|------------------|
| Growth | Seeds → trees | Fibonacci spirals |
| Decay | Entropy patterns | Rust, dissolution |
| Evolution | Branching forms | Darwin's tree reimagined |
| Revolution | Circles breaking | Shattered patterns |
| Innovation | Spark → flame | Lightning, fusion |
| Tradition | Continuous thread | Inherited patterns |
| Disruption | Broken grids | Glitch aesthetics |
| Integration | Merging streams | Confluence points |
## Korean-Western Fusion Elements
| Korean Element | Western Parallel | Fusion Approach |
|---------------|-----------------|-----------------|
| 여백 (Empty space) | Negative space | Active emptiness |
| 오방색 (Five colors) | Color theory | Symbolic palette |
| 달항아리 (Moon jar) | Minimalism | Imperfect circles |
| 한글 geometry | Typography | Structural letters |
| 산수화 (Landscape) | Abstract landscape | Atmospheric depth |
| 전통문양 (Patterns) | Geometric design | Cultural geometry |
## Usage Notes
1. **Layer metaphors**: Combine 2-3 for depth
2. **Avoid clichés**: No obvious tech symbols
3. **Cultural sensitivity**: Universal over specific
4. **Abstraction levels**: Match essay tone
5. **Emotional resonance**: Feel over literal
## Quick Selection Guide
For **technology essays**: organic-digital hybrids
For **social commentary**: human elements in systems
For **philosophy pieces**: space and light
For **cultural topics**: layered traditions
For **future themes**: transformation states

View File

@@ -0,0 +1,81 @@
# OurDigital Ad Manager
Ad copywriting and keyword research for OurDigital marketing campaigns.
## Purpose
Create compelling advertising content:
- Search ad copy (Google, Naver)
- Display ad copy
- Branded content
- Keyword research and analysis
## Activation
Only activates with "ourdigital" keyword:
- "ourdigital ad copy for [product]"
- "ourdigital 광고 카피 작성해줘"
- "ourdigital keyword research"
## Features
### Search Ad Copy
- Google Ads format (30×3 headlines, 90×2 descriptions)
- Naver Search Ad format (25자 제목, 45자 설명)
- Keyword-optimized headlines
- A/B test variations
### Display Ad Copy
- Leaderboard, rectangle, responsive formats
- Problem-solution-CTA formula
- Visual-copy synchronization
### Keyword Research
- Search volume analysis
- Intent mapping (informational → transactional)
- Competitor keyword analysis
- Long-tail opportunities
## Structure
```
07-ourdigital-ad-manager/
├── code/
│ ├── SKILL.md
│ └── scripts/
│ ├── generate_ads.py
│ ├── keyword_research.py
│ └── ad_analyzer.py
├── desktop/
│ ├── SKILL.md
│ └── skill.yaml
├── shared/
│ └── references/
│ ├── ad-copy-formulas.md
│ └── platform-specs.md
├── docs/
│ └── CHANGELOG.md
└── README.md
```
## Platform Support
| Platform | Format | Focus |
|----------|--------|-------|
| Google Ads | 30×3 + 90×2 | Keyword match |
| Naver | 25 + 45 | Trust signals |
| Meta | 40 + 125 | Visual sync |
| LinkedIn | 150 + 70 | Professional |
## Integration
Works with:
- `01-ourdigital-brand-guide` - Brand voice
- `04-ourdigital-research` - Market research
- Google Ads Editor
- Naver 검색광고
## Version
- Current: 1.0.0
- Author: OurDigital

View File

@@ -0,0 +1,133 @@
---
name: ourdigital-ad-manager
description: |
Ad copywriting and keyword research for OurDigital marketing.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital ad copy", "ourdigital 광고 카피"
- "ourdigital keyword", "ourdigital 키워드"
Features:
- Script-based ad generation
- Keyword research automation
- Bulk ad copy creation
version: "1.0"
author: OurDigital
environment: Code
---
# OurDigital Ad Manager (Code)
Automated ad copywriting and keyword research with script support.
## Activation
Only with "ourdigital" keyword:
- "ourdigital ad copy [product]"
- "ourdigital 광고 카피"
## Quick Start
```bash
# Generate Google Ads copy
python code/scripts/generate_ads.py \
--product "SEO 컨설팅" \
--platform google \
--variations 3
# Keyword research
python code/scripts/keyword_research.py \
--seed "데이터 분석" \
--market korea
# Bulk ad generation
python code/scripts/generate_ads.py \
--input keywords.csv \
--platform naver \
--output ads.csv
```
## Scripts
| Script | Purpose |
|--------|---------|
| `generate_ads.py` | Create ad copy variations |
| `keyword_research.py` | Keyword volume research |
| `ad_analyzer.py` | Competitor ad analysis |
## Ad Generation
```bash
# Single product
python code/scripts/generate_ads.py \
--product "GTM 설정 서비스" \
--platform google \
--tone professional
# With USP
python code/scripts/generate_ads.py \
--product "데이터 분석" \
--usp "10년 경력" \
--cta "무료 상담"
```
## Keyword Research
```bash
# Basic research
python code/scripts/keyword_research.py \
--seed "마케팅 자동화" \
--market korea
# With competitors
python code/scripts/keyword_research.py \
--seed "SEO" \
--competitors "competitor1.com,competitor2.com"
```
## Platform Specs
| Platform | Headline | Description |
|----------|----------|-------------|
| Google | 30×3 chars | 90×2 chars |
| Naver | 25 chars | 45 chars |
| Meta | 40 chars | 125 chars |
## Output Formats
```bash
# JSON output
python code/scripts/generate_ads.py --format json
# CSV for bulk upload
python code/scripts/generate_ads.py --format csv
# Markdown report
python code/scripts/keyword_research.py --format markdown
```
## File Structure
```
07-ourdigital-ad-manager/
├── code/
│ ├── SKILL.md
│ └── scripts/
│ ├── generate_ads.py
│ ├── keyword_research.py
│ └── ad_analyzer.py
├── desktop/SKILL.md
├── shared/references/
│ ├── ad-copy-formulas.md
│ └── platform-specs.md
└── docs/CHANGELOG.md
```
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital ad copy [product]" | Generate ads |
| "ourdigital keyword [topic]" | Research keywords |
| "ourdigital ad → csv" | Bulk export |

View File

@@ -0,0 +1,173 @@
---
name: ourdigital-ad-manager
description: |
Ad copywriting and keyword research for OurDigital marketing.
Activated with "ourdigital" keyword for advertising tasks.
Triggers (ourdigital or our prefix):
- "ourdigital ad copy", "our ad copy"
- "ourdigital 광고 카피", "our 광고 카피"
- "ourdigital keyword", "our keyword"
- "ourdigital 검색 광고", "our 검색 광고"
Features:
- Search ad copywriting (Google, Naver)
- Display ad copywriting
- Branded content creation
- Keyword volume research
version: "1.0"
author: OurDigital
environment: Desktop
---
# OurDigital Ad Manager
Create compelling ad copy and research keywords for OurDigital marketing campaigns.
## Activation
Activate with "ourdigital" or "our" prefix:
- "ourdigital ad copy" / "our ad copy"
- "ourdigital 광고 카피" / "our 광고 카피"
- "our keyword research [topic]"
## Workflow
### Phase 1: Campaign Brief
Gather information:
- **Product/Service**: What are we advertising?
- **Target audience**: Who are we reaching?
- **Campaign goal**: Awareness, consideration, or conversion?
- **Platform**: Google, Naver, Meta, Display?
- **Budget tier**: Affects keyword competitiveness
### Phase 2: Keyword Research
For search campaigns:
1. **Seed keywords**: Core terms from brief
2. **Volume research**: Web search for search volume data
3. **Intent mapping**: Informational → Transactional
4. **Competitor analysis**: Top-ranking ad copy patterns
Tools to use:
- `web_search`: Search volume and trends
- `web_fetch`: Competitor ad copy analysis
### Phase 3: Ad Copy Creation
Generate platform-specific copy following character limits and best practices.
## Search Ad Copy
### Google Ads Format
```
Headline 1: [30 chars] - Primary keyword + value prop
Headline 2: [30 chars] - Benefit or CTA
Headline 3: [30 chars] - Differentiator
Description 1: [90 chars] - Expand on value
Description 2: [90 chars] - CTA + urgency
```
**Best Practices:**
- Include keyword in Headline 1
- Numbers and specifics increase CTR
- Test emotional vs. rational appeals
- Include pricing if competitive
### Naver Search Ad Format
```
제목: [25자] - 핵심 키워드 + 가치
설명: [45자] - 혜택 + 행동 유도
```
**Korean Ad Copy Tips:**
- 존댓말 일관성 유지
- 숫자와 구체적 혜택 강조
- 신뢰 요소 포함 (경력, 인증)
## Display Ad Copy
### Headlines by Format
| Format | Max Length | Focus |
|--------|------------|-------|
| Leaderboard | 25 chars | Brand + single benefit |
| Medium Rectangle | 30 chars | Offer + CTA |
| Responsive | 30 chars | Multiple variations |
### Copy Formula
```
[Problem Recognition] + [Solution Hint] + [CTA]
"여전히 [문제]? [해결책]으로 [결과]"
```
## Branded Content
For native advertising and sponsored content:
### OurDigital Tone
- **Authority without arrogance**: Share expertise, invite questions
- **Data-backed claims**: Statistics increase credibility
- **Subtle CTAs**: Education first, promotion second
### Content Types
| Type | Length | CTA Style |
|------|--------|-----------|
| Sponsored Article | 800-1,200 words | Soft (learn more) |
| Native Ad | 100-200 words | Medium (discover) |
| Social Sponsored | 50-100 words | Direct (get started) |
## Keyword Research Output
### Research Report Structure
```
## Keyword Analysis: [Topic]
### Primary Keywords
| Keyword | Volume | Difficulty | Intent |
|---------|--------|------------|--------|
| [kw1] | 10K | Medium | Trans |
### Long-tail Opportunities
- [keyword phrase 1]: Low competition, high intent
- [keyword phrase 2]: Rising trend
### Negative Keywords
- [irrelevant term 1]
- [irrelevant term 2]
### Recommended Ad Groups
1. [Group Name]: kw1, kw2, kw3
2. [Group Name]: kw4, kw5, kw6
```
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital ad copy [product]" | Full ad set |
| "ourdigital 검색 광고 [키워드]" | Search ads |
| "ourdigital display ad [campaign]" | Display copy |
| "ourdigital keyword [topic]" | Volume research |
## Platform Guidelines
| Platform | Headline | Description | Key Focus |
|----------|----------|-------------|-----------|
| Google | 30×3 | 90×2 | Keyword match |
| Naver | 25 | 45 | Trust signals |
| Meta | 40 | 125 | Visual-copy sync |
| LinkedIn | 150 | 70 | Professional tone |
## References
- `shared/references/ad-copy-formulas.md` - Proven copy templates
- `shared/references/platform-specs.md` - Character limits
- `01-ourdigital-brand-guide` - Brand voice

View File

@@ -0,0 +1,17 @@
name: ourdigital-ad-manager
description: |
Ad copywriting and keyword research for OurDigital marketing.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital ad copy", "ourdigital 광고 카피"
- "ourdigital keyword", "ourdigital 키워드"
- "ourdigital search ad", "ourdigital 검색 광고"
allowed-tools:
- WebSearch
- WebFetch
- Read
- Write
license: Internal-use Only

View File

@@ -0,0 +1,24 @@
# Changelog
All notable changes to ourdigital-ad-manager will be documented here.
## [1.0.0] - 2026-01-31
### Added
- Initial skill creation
- Search ad copy generation (Google, Naver)
- Display ad copy creation
- Keyword research workflow
- Platform-specific formatting
- Brand voice integration
- Desktop and Code versions
- Standardized directory structure
### Files Created
- `desktop/SKILL.md` - Desktop workflow
- `desktop/skill.yaml` - Metadata
- `code/SKILL.md` - Code version with scripts
- `shared/references/ad-copy-formulas.md` - Copy templates
- `shared/references/platform-specs.md` - Character limits
- `docs/CHANGELOG.md`
- `README.md`

View File

@@ -0,0 +1,160 @@
# Ad Copy Formulas
Proven templates for effective advertising copy.
## Search Ad Formulas
### Formula 1: Problem-Agitate-Solution (PAS)
```
Headline 1: [Problem Recognition]
Headline 2: [Agitation/Pain Point]
Headline 3: [Solution Preview]
Description: [Full solution + CTA]
```
**Example (Google):**
```
H1: SEO 성과가 안 나오시나요?
H2: 3개월째 순위 정체 중?
H3: 검증된 SEO 전문가 상담
D1: 10년 경력 SEO 전문가가 무료 진단해드립니다. 지금 상담 예약하세요.
D2: 평균 3개월 내 상위 노출 달성. 성과 없으면 100% 환불 보장.
```
### Formula 2: Feature-Benefit-Proof (FBP)
```
Headline 1: [Key Feature]
Headline 2: [Main Benefit]
Headline 3: [Social Proof]
Description: [Expanded benefit + specifics + CTA]
```
**Example (Google):**
```
H1: AI 기반 데이터 분석
H2: 의사결정 시간 70% 단축
H3: 100+ 기업 도입 완료
D1: 복잡한 데이터를 5분 만에 인사이트로. 대시보드 무료 체험 시작하세요.
D2: 삼성, LG, 현대 등 대기업 신뢰. 지금 바로 데모 신청하세요.
```
### Formula 3: Question-Answer-Action (QAA)
```
Headline 1: [Question targeting pain]
Headline 2: [Answer/Solution]
Headline 3: [Action-oriented]
Description: [Detailed answer + urgency + CTA]
```
**Example (Naver):**
```
제목: GTM 설정이 어려우신가요? 전문가 대행
설명: 태그 설정부터 전환 추적까지. 7일 완료 보장. 무료 상담
```
## Display Ad Formulas
### Formula 1: Benefit-First
```
[Primary Benefit] - [How] - [CTA]
```
**Examples:**
- "매출 2배 성장 - AI 마케팅 자동화 - 무료 체험"
- "시간 절약 50% - 스마트 업무 도구 - 지금 시작"
### Formula 2: Fear of Missing Out (FOMO)
```
[Scarcity/Urgency] - [Value] - [CTA]
```
**Examples:**
- "이번 달만 50% 할인 - 프리미엄 분석 도구 - 지금 구매"
- "선착순 100명 - 무료 SEO 진단 - 신청하기"
### Formula 3: Social Proof Lead
```
[Proof Point] - [Result] - [CTA]
```
**Examples:**
- "10,000+ 마케터 선택 - 전환율 3배 상승 - 무료 가입"
- "대기업 90% 도입 - 보안 1위 솔루션 - 데모 보기"
## Korean Ad Copy Patterns
### Trust Signals (신뢰 요소)
| Signal | Example |
|--------|---------|
| 경력/실적 | "15년 경력", "500+ 프로젝트" |
| 인증/자격 | "공인 파트너", "ISO 인증" |
| 고객사 | "삼성, LG 도입", "대기업 신뢰" |
| 보장 | "100% 환불 보장", "무료 AS" |
| 수상 | "올해의 서비스", "고객 만족 1위" |
### Urgency Elements (긴급성)
| Type | Example |
|------|---------|
| Time-limited | "오늘만", "이번 주 한정" |
| Quantity | "선착순 50명", "재고 소진 시" |
| Seasonal | "연말 특가", "신년 프로모션" |
| Exclusive | "VIP 전용", "회원 한정" |
### CTA Variations (행동 유도)
| Intent | Korean CTA |
|--------|------------|
| Low commitment | "자세히 보기", "더 알아보기" |
| Medium | "무료 체험", "상담 예약" |
| High | "지금 구매", "바로 시작" |
| Soft | "가격 확인", "견적 받기" |
## Platform-Specific Tips
### Google Ads
- **Dynamic Keyword Insertion**: `{KeyWord:기본값}`
- **Countdown**: `{COUNTDOWN(날짜)}` for urgency
- **Location**: `{LOCATION(City)}` for local relevance
- **IF functions**: `{=IF(audience,then,else)}`
### Naver Search Ads
- 확장소재 활용 (확장 제목, 추가 설명)
- 파워링크 vs 브랜드검색광고 차별화
- 시즈널 키워드 반영 (계절, 이벤트)
- 모바일 최적화 필수
### Meta Ads
- Primary text: Hook in first 125 chars
- Headlines: Complement visual, don't repeat
- Description: Use for secondary message
- Test emoji usage (A/B)
## A/B Testing Framework
### What to Test
| Element | Variations |
|---------|------------|
| Headlines | Benefit vs Feature |
| Tone | Formal vs Casual |
| CTA | Soft vs Direct |
| Numbers | Specific vs General |
| Length | Short vs Long |
### Testing Priority
1. **Headline 1**: Highest impact
2. **CTA**: Direct conversion impact
3. **Description 1**: Engagement
4. **Display URL**: Trust signal

View File

@@ -0,0 +1,196 @@
# Platform Specifications
Character limits and format requirements for advertising platforms.
## Google Ads
### Responsive Search Ads (RSA)
| Element | Limit | Notes |
|---------|-------|-------|
| Headlines | 30 chars × 15 max | Min 3, recommended 10+ |
| Descriptions | 90 chars × 4 max | Min 2, recommended 4 |
| Display URL paths | 15 chars × 2 | Optional |
| Final URL | 2048 chars | Required |
### Display Ads
| Format | Dimensions | File Size |
|--------|------------|-----------|
| Leaderboard | 728×90 | 150KB |
| Medium Rectangle | 300×250 | 150KB |
| Wide Skyscraper | 160×600 | 150KB |
| Large Rectangle | 336×280 | 150KB |
| Responsive | Various | 150KB |
### Performance Max
| Asset Type | Specs |
|------------|-------|
| Short headline | 30 chars |
| Long headline | 90 chars |
| Description | 90 chars |
| Business name | 25 chars |
| Images | 1200×628, 1200×1200, 628×628 |
| Videos | 10 sec+ recommended |
## Naver Search Ads
### 파워링크
| Element | Limit |
|---------|-------|
| 제목 | 25자 (한글 기준) |
| 설명 | 45자 |
| 표시 URL | 도메인만 |
### 브랜드검색광고
| Element | Limit |
|---------|-------|
| 메인 제목 | 15자 |
| 서브 제목 | 30자 |
| 설명문 | 100자 |
| 이미지 | 200×200 이상 |
### 확장소재
| Type | Limit |
|------|-------|
| 확장 제목 | 25자 |
| 추가 설명 | 20자 × 2개 |
| 서브링크 | 제목 15자, URL |
| 가격정보 | 15자 + 금액 |
## Meta (Facebook/Instagram)
### Feed Ads
| Element | Limit | Recommended |
|---------|-------|-------------|
| Primary text | 125 chars visible | 40-50 chars |
| Headline | 40 chars | 25-30 chars |
| Description | 30 chars | Optional |
| Link description | 30 chars | |
### Stories Ads
| Element | Specs |
|---------|-------|
| Aspect ratio | 9:16 |
| Image | 1080×1920 |
| Video | 15 sec max |
| Text overlay | Minimal (20% rule relaxed) |
### Reels Ads
| Element | Specs |
|---------|-------|
| Aspect ratio | 9:16 |
| Duration | 15-60 sec |
| Caption | 72 chars visible |
## LinkedIn Ads
### Sponsored Content
| Element | Limit |
|---------|-------|
| Introductory text | 600 chars (150 visible) |
| Headline | 200 chars |
| Description | 300 chars |
| Image | 1200×627 |
### Message Ads
| Element | Limit |
|---------|-------|
| Subject line | 60 chars |
| Message body | 1500 chars |
| CTA | 20 chars |
### Text Ads
| Element | Limit |
|---------|-------|
| Headline | 25 chars |
| Description | 75 chars |
| Image | 100×100 |
## Twitter (X) Ads
### Promoted Tweets
| Element | Limit |
|---------|-------|
| Tweet text | 280 chars |
| Card headline | 70 chars |
| Card description | 200 chars |
| Website URL | Included |
### Image Specs
| Format | Specs |
|--------|-------|
| Single image | 1200×675 (1.91:1) |
| Multi-image | 600×335 each |
| Carousel | 800×800 (1:1) |
## Kakao Ads
### 비즈보드
| Element | Limit |
|---------|-------|
| 제목 | 21자 |
| 설명 | 45자 |
| 이미지 | 640×480 |
### 카카오모먼트
| Type | Specs |
|------|-------|
| 네이티브 이미지 | 1200×628 |
| 네이티브 동영상 | 1920×1080 |
| 텍스트 | 45자 |
## YouTube Ads
### In-Stream Ads
| Type | Duration | Skip |
|------|----------|------|
| Skippable | Any length | After 5 sec |
| Non-skippable | 15-20 sec | No |
| Bumper | 6 sec max | No |
### Discovery Ads
| Element | Limit |
|---------|-------|
| Headline | 25 chars × 2 |
| Description | 90 chars × 2 |
| Thumbnail | 1280×720 |
## Best Practices Summary
### Character Count Tips
1. **Stay under 80%** of max for safety margin
2. **Front-load** key message
3. **Test mobile** truncation points
4. **Use abbreviations** sparingly
### Image Guidelines
1. **High resolution** always
2. **Minimal text** on images (especially Meta)
3. **Brand colors** consistent
4. **CTA button** placement matters
### Video Guidelines
1. **Hook in 3 seconds**
2. **Captions** always (85% watch muted)
3. **Logo** early for brand recall
4. **CTA** at end or throughout

View File

@@ -0,0 +1,82 @@
# OurDigital Trainer
Training material creation and workshop planning for OurDigital education programs.
## Purpose
Design and deliver effective training:
- Curriculum design for Data/AI literacy
- Workshop agenda planning
- Participant evaluation frameworks
- Training material development
## Activation
Only activates with "ourdigital" keyword:
- "ourdigital training on [topic]"
- "ourdigital 워크샵 기획해줘"
- "ourdigital curriculum for [subject]"
## Core Domains
| Domain | Topics |
|--------|--------|
| Data Literacy | 데이터 리터러시, 분석 기초, 시각화 |
| AI Literacy | AI 활용, 프롬프트 엔지니어링, AI 윤리 |
| Digital Marketing | SEO, GTM, 마케팅 자동화 |
| Brand Marketing | 브랜드 전략, 콘텐츠 마케팅 |
## Structure
```
08-ourdigital-trainer/
├── code/
│ ├── SKILL.md
│ └── scripts/
│ ├── generate_curriculum.py
│ ├── create_workshop.py
│ └── create_evaluation.py
├── desktop/
│ ├── SKILL.md
│ └── skill.yaml
├── shared/
│ ├── references/
│ │ ├── training-frameworks.md
│ │ └── activity-library.md
│ └── templates/
│ └── workshop-template.md
├── docs/
│ └── CHANGELOG.md
└── README.md
```
## Workshop Formats
| Format | Duration | Best For |
|--------|----------|----------|
| Mini | 2 hours | Single topic intro |
| Half-day | 4 hours | Comprehensive overview |
| Full-day | 8 hours | Deep dive + practice |
| Series | Multiple | Skill building program |
## Evaluation Framework
| Level | Measure | Method |
|-------|---------|--------|
| Reaction | Satisfaction | Survey |
| Learning | Knowledge gain | Pre-post test |
| Behavior | Application | Observation |
| Results | Performance | KPI tracking |
## Integration
Works with:
- `05-ourdigital-document` - Training slides
- `06-ourdigital-designer` - Visual materials
- `01-ourdigital-brand-guide` - Presentation style
- Google Slides, Notion
## Version
- Current: 1.0.0
- Author: OurDigital

View File

@@ -0,0 +1,151 @@
---
name: ourdigital-trainer
description: |
Training material creation and workshop planning for OurDigital.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital training", "ourdigital 교육"
- "ourdigital workshop", "ourdigital 워크샵"
Features:
- Template-based curriculum generation
- Evaluation form automation
- Material export
version: "1.0"
author: OurDigital
environment: Code
---
# OurDigital Trainer (Code)
Automated training material generation with script support.
## Activation
Only with "ourdigital" keyword:
- "ourdigital training [topic]"
- "ourdigital 워크샵 기획"
## Quick Start
```bash
# Generate curriculum outline
python code/scripts/generate_curriculum.py \
--topic "데이터 리터러시" \
--duration "4hours" \
--audience "마케터"
# Create workshop agenda
python code/scripts/create_workshop.py \
--topic "AI 활용법" \
--format "half-day" \
--participants 20
# Generate evaluation form
python code/scripts/create_evaluation.py \
--training "SEO 기초" \
--type "pre-post"
```
## Scripts
| Script | Purpose |
|--------|---------|
| `generate_curriculum.py` | Create curriculum structure |
| `create_workshop.py` | Design workshop agenda |
| `create_evaluation.py` | Build assessment forms |
| `export_materials.py` | Export to various formats |
## Curriculum Generation
```bash
# Basic curriculum
python code/scripts/generate_curriculum.py \
--topic "GTM 기초" \
--duration "2hours"
# With specific objectives
python code/scripts/generate_curriculum.py \
--topic "프롬프트 엔지니어링" \
--objectives "기초이해,실습,응용" \
--format markdown
```
## Workshop Templates
| Format | Duration | Modules |
|--------|----------|---------|
| mini | 2 hours | 2 |
| half-day | 4 hours | 3-4 |
| full-day | 8 hours | 5-6 |
| series | Multiple | Custom |
```bash
# Half-day workshop
python code/scripts/create_workshop.py \
--topic "마케팅 자동화" \
--format half-day \
--output workshop.md
```
## Evaluation Types
| Type | Purpose |
|------|---------|
| pre-post | 학습 전후 비교 |
| satisfaction | 만족도 조사 |
| knowledge | 지식 평가 |
| application | 현업 적용도 |
```bash
# Create pre-post evaluation
python code/scripts/create_evaluation.py \
--training "데이터 분석 기초" \
--type pre-post \
--questions 10
```
## Output Formats
```bash
# Markdown (default)
python code/scripts/generate_curriculum.py --format markdown
# JSON for integration
python code/scripts/generate_curriculum.py --format json
# Google Slides export
python code/scripts/export_materials.py \
--input curriculum.md \
--format gslides
```
## File Structure
```
08-ourdigital-trainer/
├── code/
│ ├── SKILL.md
│ └── scripts/
│ ├── generate_curriculum.py
│ ├── create_workshop.py
│ ├── create_evaluation.py
│ └── export_materials.py
├── desktop/SKILL.md
├── shared/
│ ├── references/
│ │ ├── training-frameworks.md
│ │ └── activity-library.md
│ └── templates/
│ └── workshop-template.md
└── docs/CHANGELOG.md
```
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital training [topic]" | Generate curriculum |
| "ourdigital workshop [topic]" | Create agenda |
| "ourdigital evaluation [training]" | Build assessment |

View File

@@ -0,0 +1,186 @@
---
name: ourdigital-trainer
description: |
Training material creation and workshop planning for OurDigital.
Activated with "ourdigital" keyword for education tasks.
Triggers (ourdigital or our prefix):
- "ourdigital training", "our training"
- "ourdigital 교육", "our 교육"
- "ourdigital workshop", "our workshop"
- "ourdigital 워크샵", "our 워크샵"
Features:
- Training material design
- Workshop agenda planning
- Participant evaluation design
- Exercise and activity creation
version: "1.0"
author: OurDigital
environment: Desktop
---
# OurDigital Trainer
Design training materials, plan workshops, and create evaluation frameworks for OurDigital education programs.
## Activation
Activate with "ourdigital" or "our" prefix:
- "ourdigital training" / "our training"
- "ourdigital 워크샵" / "our 워크샵"
- "our curriculum [subject]"
## Core Domains
OurDigital training expertise:
| Domain | Topics |
|--------|--------|
| **Data Literacy** | 데이터 리터러시, 분석 기초, 시각화 |
| **AI Literacy** | AI 활용, 프롬프트 엔지니어링, AI 윤리 |
| **Digital Marketing** | SEO, GTM, 마케팅 자동화 |
| **Brand Marketing** | 브랜드 전략, 콘텐츠 마케팅 |
## Workflow
### Phase 1: Training Needs Analysis
Gather requirements:
- **Target audience**: 직급, 경험 수준, 사전 지식
- **Learning objectives**: 교육 후 달성할 역량
- **Duration**: 시간 제약 (2시간/반일/전일/다회차)
- **Format**: 온라인/오프라인/하이브리드
- **Group size**: 참여 인원
### Phase 2: Curriculum Design
Structure the learning journey:
```
Module Structure:
├── 도입 (10-15%)
│ ├── Ice-breaker
│ ├── 학습 목표 공유
│ └── 사전 지식 확인
├── 핵심 학습 (60-70%)
│ ├── 개념 설명
│ ├── 사례 분석
│ ├── 실습 활동
│ └── 토론/질의응답
├── 심화/응용 (15-20%)
│ ├── 응용 과제
│ └── 그룹 활동
└── 마무리 (5-10%)
├── 핵심 정리
├── 평가
└── 후속 학습 안내
```
### Phase 3: Material Development
Create supporting materials:
| Material Type | Purpose |
|---------------|---------|
| 슬라이드 | 핵심 개념 전달 |
| 핸드아웃 | 참조 자료, 체크리스트 |
| 워크시트 | 실습 활동용 |
| 사례 연구 | 토론 및 분석용 |
| 퀴즈/평가지 | 학습 확인용 |
### Phase 4: Activity Design
Engagement techniques:
| Activity Type | Duration | Purpose |
|---------------|----------|---------|
| Think-Pair-Share | 5-10분 | 개별 사고 → 협력 |
| Case Study | 20-30분 | 실제 적용력 |
| Role Play | 15-20분 | 경험적 학습 |
| Gallery Walk | 15분 | 아이디어 공유 |
| Fishbowl | 20-30분 | 심층 토론 |
### Phase 5: Evaluation Design
Assessment framework:
| Level | What to Measure | Method |
|-------|-----------------|--------|
| 반응 | 만족도, 참여도 | 설문조사 |
| 학습 | 지식 습득 | 퀴즈, 테스트 |
| 행동 | 현업 적용 | 관찰, 피드백 |
| 결과 | 성과 개선 | KPI 측정 |
## Training Templates
### 2-Hour Workshop
```
00:00-00:10 도입 및 Ice-breaker
00:10-00:20 학습 목표 및 아젠다
00:20-00:50 핵심 개념 1
00:50-01:00 휴식
01:00-01:30 핵심 개념 2 + 실습
01:30-01:50 그룹 활동/토론
01:50-02:00 정리 및 Q&A
```
### Half-Day (4 Hours)
```
09:00-09:20 도입 및 네트워킹
09:20-10:20 모듈 1: 기초 개념
10:20-10:30 휴식
10:30-11:30 모듈 2: 심화 학습
11:30-12:00 실습 세션
12:00-12:30 사례 연구
12:30-13:00 정리, 평가, Q&A
```
### Full-Day (8 Hours)
```
09:00-09:30 도입
09:30-10:30 모듈 1
10:30-10:45 휴식
10:45-12:00 모듈 2 + 실습
12:00-13:00 점심
13:00-14:00 모듈 3
14:00-15:00 그룹 프로젝트
15:00-15:15 휴식
15:15-16:30 프로젝트 발표
16:30-17:00 종합 정리 및 평가
```
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital training [topic]" | Design curriculum |
| "ourdigital 워크샵 [주제]" | Workshop agenda |
| "ourdigital evaluation for [training]" | Assessment design |
| "ourdigital 교육자료 [주제]" | Material outline |
## Facilitation Tips
### Engagement Techniques
- **3의 법칙**: 핵심 메시지 3개 이하
- **10분 규칙**: 10분마다 활동 전환
- **참여 유도**: 질문 → 대기 → 지명
- **시각화**: 텍스트보다 다이어그램
### Korean Training Context
- 존칭 일관성 유지
- 실무 사례 강조
- 명함 교환 시간 확보
- 그룹 활동 시 리더 지정
## References
- `shared/references/training-frameworks.md` - 교수 설계 모델
- `shared/references/activity-library.md` - 활동 아이디어
- `shared/templates/workshop-template.md` - 워크샵 템플릿
- `01-ourdigital-brand-guide` - 발표 스타일

View File

@@ -0,0 +1,16 @@
name: ourdigital-trainer
description: |
Training material creation and workshop planning for OurDigital.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital training", "ourdigital 교육"
- "ourdigital workshop", "ourdigital 워크샵"
- "ourdigital curriculum", "ourdigital 커리큘럼"
allowed-tools:
- mcp__plugin_Notion_notion__*
- Read
- Write
license: Internal-use Only

View File

@@ -0,0 +1,25 @@
# Changelog
All notable changes to ourdigital-trainer will be documented here.
## [1.0.0] - 2026-01-31
### Added
- Initial skill creation
- Curriculum design workflow
- Workshop agenda planning
- Evaluation framework design
- Training material templates
- Activity library reference
- Desktop and Code versions
- Standardized directory structure
### Files Created
- `desktop/SKILL.md` - Desktop workflow
- `desktop/skill.yaml` - Metadata
- `code/SKILL.md` - Code version with scripts
- `shared/references/training-frameworks.md` - Instructional design models
- `shared/references/activity-library.md` - Engagement activities
- `shared/templates/workshop-template.md` - Workshop structure
- `docs/CHANGELOG.md`
- `README.md`

View File

@@ -0,0 +1,206 @@
# Activity Library
Engagement activities for training and workshops.
## Ice-Breakers
### Quick Starters (5-10 min)
| Activity | Description | Group Size |
|----------|-------------|------------|
| **Two Truths One Lie** | 자기소개 + 추측 게임 | 5-20 |
| **Speed Networking** | 2분씩 짝 교환 대화 | 10-30 |
| **Word Cloud** | 주제 관련 단어 수집 | Any |
| **Scale Line-up** | 경험/의견 기준 줄 서기 | 10-30 |
| **Object Introduction** | 물건으로 자기 소개 | 5-15 |
### Deeper Connection (10-15 min)
| Activity | Description | Group Size |
|----------|-------------|------------|
| **Hopes & Fears** | 기대와 우려 공유 | 5-20 |
| **Common Ground** | 공통점 찾기 게임 | 10-30 |
| **Expert Interview** | 짝꿍 인터뷰 후 소개 | 10-20 |
## Discussion Formats
### Think-Pair-Share (5-10 min)
```
1. Think (1-2분): 개인 사고
2. Pair (2-3분): 짝과 공유
3. Share (2-3분): 전체 발표
```
**Best for**: 초기 의견 형성, 참여 유도
### Fishbowl Discussion (20-30 min)
```
Inner circle: 토론 참여자 (4-6명)
Outer circle: 관찰자
빈 의자: 외부에서 참여 희망 시 이동
```
**Best for**: 심층 토론, 다양한 관점 청취
### World Café (30-45 min)
```
1. 3-4개 테이블 주제 설정
2. 라운드별 10-15분 토론
3. 테이블 이동 (호스트 잔류)
4. 전체 인사이트 공유
```
**Best for**: 다양한 주제 탐색, 크로스 아이디어
### Gallery Walk (15-20 min)
```
1. 그룹별 결과물 벽에 게시
2. 포스트잇 들고 순회
3. 피드백/질문 부착
4. 그룹별 피드백 리뷰
```
**Best for**: 아이디어 공유, 피드백 수집
## Group Activities
### Case Study Analysis (20-30 min)
**Structure:**
1. 사례 배포 및 읽기 (5분)
2. 분석 질문 제시
3. 소그룹 토론 (10분)
4. 전체 공유 (10분)
**Design Tips:**
- 실제 또는 현실적 사례 사용
- 명확한 분석 프레임 제공
- 정답 없는 토론 유도
### Role Play / Simulation (15-30 min)
**Structure:**
1. 시나리오 및 역할 설명 (5분)
2. 준비 시간 (5분)
3. 역할극 수행 (5-10분)
4. 디브리핑 (10분)
**Design Tips:**
- 실제 업무 상황 반영
- 관찰자 역할 포함
- 피드백 프레임 제공
### Jigsaw Method (30-45 min)
```
Phase 1 - Expert Groups:
- 각 그룹이 다른 주제 심화 학습
Phase 2 - Mixed Groups:
- 새 그룹 구성 (각 주제 전문가 1명씩)
- 서로 가르치기
Phase 3 - Application:
- 통합 과제 수행
```
**Best for**: 대량 콘텐츠 분담, 피어 러닝
## Reflection Activities
### One Word Check-out (2-3 min)
```
오늘 교육을 한 단어로 표현한다면?
```
### 3-2-1 Reflection (5 min)
```
3가지 배운 점
2가지 적용할 점
1가지 질문
```
### Start-Stop-Continue (10 min)
```
Start: 새롭게 시작할 것
Stop: 그만둘 것
Continue: 계속할 것
```
### Plus/Delta (5-10 min)
```
Plus (+): 잘된 점, 유지할 점
Delta (Δ): 개선할 점, 변화 필요
```
## Energizers
### Quick Energy Boosters (2-5 min)
| Activity | How |
|----------|-----|
| **Stand & Stretch** | 간단한 스트레칭 리드 |
| **Quick Poll** | 손들기 또는 이동 투표 |
| **Partner High-Five** | 파트너와 하이파이브 |
| **Brain Break Quiz** | 재미있는 상식 퀴즈 |
### Active Movement (5-10 min)
| Activity | How |
|----------|-----|
| **Four Corners** | 의견별 코너 이동 |
| **Human Bingo** | 특징 찾아 빙고 완성 |
| **Musical Shares** | 음악 멈추면 짝 대화 |
## Assessment Activities
### Quick Knowledge Check
| Method | Duration | Format |
|--------|----------|--------|
| **Hand signals** | 1분 | 1-5 손가락 신뢰도 |
| **Sticky vote** | 2분 | 포스트잇 투표 |
| **Quick quiz** | 5분 | 객관식 3-5문항 |
| **Exit ticket** | 3분 | 핵심 1가지 작성 |
### Application Check
| Method | Duration | Format |
|--------|----------|--------|
| **Teach-back** | 5분 | 짝에게 설명 |
| **Mini case** | 10분 | 짧은 시나리오 해결 |
| **Action plan** | 10분 | 적용 계획 작성 |
## Timing Guidelines
| Session Length | Ice-breaker | Activities | Reflection |
|----------------|-------------|------------|------------|
| 2시간 | 5분 | 20분×2 | 5분 |
| 4시간 | 10분 | 30분×3 | 10분 |
| 8시간 | 15분 | 45분×4 | 15분 |
## Facilitation Notes
### Managing Discussions
- **Silent first**: 개인 사고 시간 먼저
- **Time visible**: 타이머 표시
- **Quiet signal**: 주의 집중 신호 약속
- **Parking lot**: 벗어난 주제 기록
### Dealing with Challenges
| Challenge | Solution |
|-----------|----------|
| 침묵 | 작은 그룹 먼저, 서면 → 구두 |
| 독점 | 발언 시간 제한, 라운드 로빈 |
| 이탈 | 파킹랏, 목표 상기 |
| 저에너지 | 움직임 활동, 휴식 |

View File

@@ -0,0 +1,169 @@
# Training Frameworks
Instructional design models and methodologies for effective training.
## ADDIE Model
The foundational instructional design framework.
### Phases
| Phase | Activities | Outputs |
|-------|------------|---------|
| **Analysis** | 학습자 분석, 요구 분석, 환경 분석 | 학습 목표, 제약 조건 |
| **Design** | 학습 전략, 평가 방법, 콘텐츠 구조 | 설계 문서, 스토리보드 |
| **Development** | 자료 개발, 파일럿 테스트 | 학습 자료, 평가 도구 |
| **Implementation** | 교육 실행, 퍼실리테이션 | 교육 진행, 피드백 수집 |
| **Evaluation** | 효과 측정, 개선점 도출 | 평가 보고서, 개선안 |
### Application Tips
1. **Analysis 단계에서 충분한 시간 투자**
- 학습자 인터뷰 또는 설문
- 현업 관리자 니즈 확인
- 기존 역량 수준 파악
2. **Rapid Prototyping 활용**
- 전체 개발 전 핵심 모듈 먼저 테스트
- 피드백 기반 빠른 수정
## Kirkpatrick's 4 Levels
Training evaluation framework.
### Level 1: Reaction (반응)
**측정 대상**: 참가자 만족도, 교육 관련성
| 질문 영역 | 예시 문항 |
|-----------|-----------|
| 전반적 만족 | 전반적으로 교육에 만족하십니까? |
| 실무 관련성 | 교육 내용이 업무에 도움이 됩니까? |
| 강사 역량 | 강사의 전문성은 적절했습니까? |
| 교육 환경 | 교육 환경은 학습에 적합했습니까? |
### Level 2: Learning (학습)
**측정 대상**: 지식, 기술, 태도 변화
| 방법 | 적용 시점 | 비고 |
|------|-----------|------|
| Pre-Post Test | 교육 전후 | 지식 증가 측정 |
| Skill Demo | 교육 중/후 | 실습 역량 확인 |
| Case Analysis | 교육 후 | 적용 능력 평가 |
### Level 3: Behavior (행동)
**측정 대상**: 현업 적용, 행동 변화
| 방법 | 시점 | 수집 대상 |
|------|------|-----------|
| 자기 평가 | 3-6개월 후 | 학습자 |
| 상사 관찰 | 3-6개월 후 | 관리자 |
| 동료 피드백 | 3-6개월 후 | 팀원 |
### Level 4: Results (결과)
**측정 대상**: 비즈니스 성과, ROI
| 지표 | 측정 방법 |
|------|-----------|
| 생산성 | 업무 처리 시간 변화 |
| 품질 | 오류율 감소 |
| 효율성 | 비용 절감 |
| 고객 만족 | NPS 변화 |
## 70-20-10 Model
Learning blend framework.
| Ratio | Type | Examples |
|-------|------|----------|
| **70%** | 경험 학습 | On-the-job, 프로젝트, 도전 과제 |
| **20%** | 사회적 학습 | 멘토링, 코칭, 피드백, 협업 |
| **10%** | 형식 학습 | 교육, 워크샵, 이러닝, 독서 |
### Implementation
1. **70% 경험 학습 설계**
- 교육 후 즉시 적용 과제 부여
- 실제 프로젝트와 연계
- 도전적 과제로 stretch
2. **20% 사회적 학습 촉진**
- 학습 파트너 지정
- 피드백 세션 예약
- 커뮤니티 참여 독려
3. **10% 형식 학습 효율화**
- 핵심 개념에 집중
- 마이크로러닝 활용
- 필요 시점 학습 (Just-in-time)
## Bloom's Taxonomy
Learning objective levels.
### Cognitive Domain (인지 영역)
| Level | 동사 예시 | 활동 유형 |
|-------|-----------|-----------|
| **Remember** | 정의하다, 나열하다, 암기하다 | 퀴즈, 플래시카드 |
| **Understand** | 설명하다, 요약하다, 해석하다 | 토론, 사례 분석 |
| **Apply** | 적용하다, 사용하다, 실행하다 | 실습, 시뮬레이션 |
| **Analyze** | 분석하다, 비교하다, 구분하다 | 케이스 스터디, 진단 |
| **Evaluate** | 평가하다, 판단하다, 비평하다 | 피어 리뷰, 디브리핑 |
| **Create** | 설계하다, 개발하다, 구성하다 | 프로젝트, 프로토타입 |
### Writing Learning Objectives
**SMART 형식:**
```
교육 종료 후 학습자는 [조건]에서 [동사] + [대상]을 [기준]으로 수행할 수 있다.
```
**예시:**
- "교육 종료 후 학습자는 GTM 컨테이너에서 3가지 이상의 태그를 독립적으로 설정할 수 있다."
- "워크샵 종료 후 참가자는 주어진 데이터셋에서 핵심 인사이트 3개를 10분 내에 도출할 수 있다."
## Gagne's Nine Events
Instructional sequence for effective learning.
| # | Event | 적용 방법 |
|---|-------|-----------|
| 1 | Gain attention | 흥미로운 질문, 놀라운 통계, 영상 |
| 2 | Inform objectives | 학습 목표 명시적 공유 |
| 3 | Stimulate recall | 사전 지식 활성화 질문 |
| 4 | Present content | 체계적 내용 전달 |
| 5 | Provide guidance | 예시, 비유, 시각자료 |
| 6 | Elicit performance | 연습, 실습 기회 |
| 7 | Provide feedback | 즉각적, 구체적 피드백 |
| 8 | Assess performance | 학습 달성도 평가 |
| 9 | Enhance retention | 요약, 적용 과제, 리소스 |
## Adult Learning Principles (Andragogy)
Knowles' principles for adult learners.
| Principle | Training Design 적용 |
|-----------|---------------------|
| **Self-direction** | 선택권 부여, 자기 주도 활동 |
| **Experience** | 경험 공유, 사례 기반 학습 |
| **Relevance** | 실무 연계, 즉시 적용 가능성 |
| **Problem-centered** | 문제 해결 중심 설계 |
| **Internal motivation** | 내적 동기 자극, 성장 기회 |
### Practical Applications
1. **존중하는 분위기 조성**
- 경험 인정 및 활용
- 토론과 질문 환영
2. **선택과 자율성 제공**
- 활동 옵션 제시
- 자기 주도 학습 시간
3. **즉각적 적용 기회**
- 현업 과제와 연계
- 교육 중 실습

View File

@@ -0,0 +1,86 @@
# OurDigital Backoffice
Business document creation for OurDigital consulting services.
## Purpose
Generate professional business documents:
- Quotes and estimates (견적서)
- Service proposals (제안서)
- Contract drafts (계약서 초안)
- Cost-benefit analysis (비용 분석)
## Activation
Only activates with "ourdigital" keyword:
- "ourdigital 견적서 작성해줘"
- "ourdigital proposal for [client]"
- "ourdigital cost analysis"
## Important Notice
⚠️ **Legal Disclaimer**: Contract drafts require professional legal review before use.
## Structure
```
09-ourdigital-backoffice/
├── code/
│ ├── SKILL.md
│ └── scripts/
│ ├── generate_quote.py
│ ├── create_proposal.py
│ ├── cost_analysis.py
│ └── export_document.py
├── desktop/
│ ├── SKILL.md
│ └── skill.yaml
├── shared/
│ ├── references/
│ │ └── pricing-guide.md
│ └── templates/
│ ├── quote-template.md
│ ├── proposal-template.md
│ └── contract-template.md
├── docs/
│ └── CHANGELOG.md
└── README.md
```
## Document Types
| Type | Purpose | Turnaround |
|------|---------|------------|
| Quote | Pricing summary | Immediate |
| Proposal | Detailed offering | 1-2 days |
| Contract | Legal agreement | Requires review |
| Cost Analysis | ROI justification | 1 day |
## Service Catalog
### SEO Services
- Technical Audit: 300-500만원
- Monthly SEO: 150-300만원/월
- Local SEO: 100-200만원/월
### Data & Analytics
- GTM Setup: 200-400만원
- GA4 Implementation: 150-300만원
- Dashboard Development: 300-600만원
### Consulting & Training
- Brand Consulting: 500-1000만원
- Marketing Strategy: 300-700만원
- Workshop: 100-200만원/회
## Integration
Works with:
- `01-ourdigital-brand-guide` - Document styling
- `05-ourdigital-document` - Presentation format
- Google Docs, Word export
## Version
- Current: 1.0.0
- Author: OurDigital

View File

@@ -0,0 +1,167 @@
---
name: ourdigital-backoffice
description: |
Business document creation for OurDigital consulting services.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital quote", "ourdigital 견적서"
- "ourdigital proposal", "ourdigital 제안서"
Features:
- Template-based document generation
- Cost calculation automation
- Document export
version: "1.0"
author: OurDigital
environment: Code
---
# OurDigital Backoffice (Code)
Automated business document generation with script support.
## Activation
Only with "ourdigital" keyword:
- "ourdigital 견적서 [서비스]"
- "ourdigital proposal [client]"
## Quick Start
```bash
# Generate quote
python code/scripts/generate_quote.py \
--client "ABC Company" \
--services "seo_audit,gtm_setup" \
--output quote.md
# Create proposal
python code/scripts/create_proposal.py \
--client "XYZ Corp" \
--project "마케팅 자동화" \
--duration "3months"
# Cost analysis
python code/scripts/cost_analysis.py \
--project "GTM 구축" \
--investment 5000000 \
--period 12months
```
## Scripts
| Script | Purpose |
|--------|---------|
| `generate_quote.py` | Create quotes with pricing |
| `create_proposal.py` | Build service proposals |
| `cost_analysis.py` | ROI and cost-benefit |
| `export_document.py` | Export to PDF/DOCX |
## Quote Generation
```bash
# Single service
python code/scripts/generate_quote.py \
--client "Client Name" \
--services "seo_audit" \
--output quote.md
# Multiple services
python code/scripts/generate_quote.py \
--client "Client Name" \
--services "seo_audit,gtm_setup,dashboard" \
--discount 10
```
## Service Codes
| Code | Service | Base Price |
|------|---------|------------|
| `seo_audit` | SEO Technical Audit | 4,000,000 |
| `seo_monthly` | SEO Monthly | 2,000,000/월 |
| `gtm_setup` | GTM Setup | 3,000,000 |
| `ga4_setup` | GA4 Implementation | 2,000,000 |
| `dashboard` | Dashboard Dev | 4,000,000 |
| `consulting` | Consulting Day | 1,500,000/일 |
| `workshop` | Workshop | 1,500,000/회 |
## Proposal Generation
```bash
# Standard proposal
python code/scripts/create_proposal.py \
--client "XYZ Corp" \
--project "데이터 분석 환경 구축" \
--duration "2months" \
--services "gtm_setup,ga4_setup,dashboard"
# With custom sections
python code/scripts/create_proposal.py \
--client "ABC Company" \
--template custom \
--input requirements.json
```
## Cost Analysis
```bash
# ROI calculation
python code/scripts/cost_analysis.py \
--project "마케팅 자동화" \
--investment 10000000 \
--annual_benefit 5000000 \
--period 36months
# Comparison analysis
python code/scripts/cost_analysis.py \
--compare "inhouse,outsource,hybrid" \
--period 12months
```
## Output Formats
```bash
# Markdown (default)
python code/scripts/generate_quote.py --format markdown
# PDF export
python code/scripts/export_document.py \
--input quote.md \
--format pdf
# Word export
python code/scripts/export_document.py \
--input proposal.md \
--format docx
```
## File Structure
```
09-ourdigital-backoffice/
├── code/
│ ├── SKILL.md
│ └── scripts/
│ ├── generate_quote.py
│ ├── create_proposal.py
│ ├── cost_analysis.py
│ └── export_document.py
├── desktop/SKILL.md
├── shared/
│ ├── references/
│ │ └── pricing-guide.md
│ └── templates/
│ ├── quote-template.md
│ ├── proposal-template.md
│ └── contract-template.md
└── docs/CHANGELOG.md
```
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital 견적서 [서비스]" | Generate quote |
| "ourdigital proposal [client]" | Create proposal |
| "ourdigital 비용 분석 [project]" | Cost-benefit analysis |

View File

@@ -0,0 +1,231 @@
---
name: ourdigital-backoffice
description: |
Business document creation for OurDigital consulting services.
Activated with "ourdigital" keyword for business documents.
Triggers (ourdigital or our prefix):
- "ourdigital quote", "our quote"
- "ourdigital 견적서", "our 견적서"
- "ourdigital proposal", "our proposal"
- "ourdigital 비용 분석", "our 비용 분석"
Features:
- Quote/estimate generation
- Service proposal creation
- Contract draft (requires legal review)
- Cost-benefit analysis
version: "1.0"
author: OurDigital
environment: Desktop
---
# OurDigital Backoffice
Create business documents for OurDigital consulting services.
## Activation
Activate with "ourdigital" or "our" prefix:
- "ourdigital 견적서" / "our 견적서"
- "ourdigital proposal" / "our proposal"
- "our cost analysis [project]"
## Important Notice
⚠️ **Legal Disclaimer**: Contract drafts require professional legal review before use. This skill provides templates and structure only.
## Document Types
### 1. Quote/Estimate (견적서)
**Purpose**: Service pricing and scope summary
**Structure:**
```
견적서 번호: OD-YYYY-NNN
발행일: YYYY-MM-DD
유효기간: 30일
1. 고객 정보
- 회사명, 담당자, 연락처
2. 서비스 개요
- 프로젝트명
- 서비스 범위 요약
3. 세부 항목
| 항목 | 상세 | 수량 | 단가 | 금액 |
|------|------|------|------|------|
4. 합계
- 소계, VAT, 총액
5. 결제 조건
- 선금/잔금 비율
- 결제 방법
6. 특이사항
- 포함/미포함 사항
```
### 2. Service Proposal (서비스 제안서)
**Purpose**: Detailed service offering and value proposition
**Structure:**
```
1. Executive Summary
- 핵심 제안 1-2문단
2. 고객 상황 이해
- 현재 과제
- 니즈 분석
3. 제안 서비스
- 서비스 범위
- 접근 방법
- 예상 산출물
4. 프로젝트 계획
- 일정표
- 마일스톤
- 체크포인트
5. 투입 리소스
- 담당자 프로필
- 역할 분담
6. 비용 및 조건
- 비용 구조
- 결제 조건
7. 기대 효과
- 예상 성과
- ROI 추정
8. 왜 OurDigital인가
- 차별점
- 관련 경험
```
### 3. Contract Draft (계약서 초안)
**Purpose**: Service agreement framework
⚠️ **반드시 법률 전문가 검토 필요**
**Structure:**
```
제1조 (목적)
제2조 (용어의 정의)
제3조 (계약 기간)
제4조 (서비스 범위)
제5조 (대금 및 지급 조건)
제6조 (권리와 의무)
제7조 (비밀유지)
제8조 (지적재산권)
제9조 (계약의 해지)
제10조 (손해배상)
제11조 (분쟁 해결)
제12조 (일반 조항)
```
### 4. Cost-Benefit Analysis (비용 분석)
**Purpose**: ROI and investment justification
**Structure:**
```
1. 프로젝트 개요
- 목적 및 범위
2. 비용 분석
| 항목 | 초기비용 | 연간비용 | 3년 TCO |
3. 예상 효과
| 효과 | 정량적 가치 | 연간 효과 |
4. ROI 계산
- 투자회수기간
- NPV, IRR
5. 리스크 분석
- 잠재 리스크
- 완화 방안
6. 권장 사항
```
## Service Catalog
OurDigital standard service offerings:
### SEO Services
| Service | Description | Duration | Price Range |
|---------|-------------|----------|-------------|
| Technical Audit | 기술 SEO 진단 | 1-2주 | 300-500만원 |
| On-Page Optimization | 콘텐츠 최적화 | 월간 | 150-300만원/월 |
| Local SEO | 로컬 검색 최적화 | 월간 | 100-200만원/월 |
### Data & Analytics
| Service | Description | Duration | Price Range |
|---------|-------------|----------|-------------|
| GTM Setup | 태그 관리 구축 | 2-4주 | 200-400만원 |
| GA4 Implementation | 분석 환경 구축 | 1-3주 | 150-300만원 |
| Dashboard Development | 대시보드 개발 | 2-4주 | 300-600만원 |
### Consulting
| Service | Description | Duration | Price Range |
|---------|-------------|----------|-------------|
| Brand Consulting | 브랜드 전략 | 프로젝트 | 500-1000만원 |
| Marketing Strategy | 마케팅 전략 | 프로젝트 | 300-700만원 |
| Data Strategy | 데이터 전략 | 프로젝트 | 400-800만원 |
### Training
| Service | Description | Duration | Price Range |
|---------|-------------|----------|-------------|
| Workshop | 반일/전일 워크샵 | 4-8시간 | 100-200만원 |
| Corporate Training | 기업 교육 | 다회차 | 50-100만원/회 |
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital 견적서 [서비스]" | Generate quote |
| "ourdigital proposal [client]" | Create proposal |
| "ourdigital 계약서 초안" | Contract template |
| "ourdigital 비용 분석 [project]" | Cost-benefit analysis |
## Workflow
### Phase 1: Requirement Gathering
- Client information
- Service scope
- Timeline requirements
- Budget constraints
### Phase 2: Document Generation
- Select appropriate template
- Fill with gathered information
- Apply OurDigital branding
### Phase 3: Review & Finalize
- Internal review
- Client discussion points highlight
- Legal review (for contracts)
## References
- `shared/templates/quote-template.md` - 견적서 양식
- `shared/templates/proposal-template.md` - 제안서 양식
- `shared/templates/contract-template.md` - 계약서 양식
- `shared/references/pricing-guide.md` - 가격 가이드
- `01-ourdigital-brand-guide` - 문서 스타일

View File

@@ -0,0 +1,15 @@
name: ourdigital-backoffice
description: |
Business document creation for OurDigital consulting services.
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital quote", "ourdigital 견적서"
- "ourdigital proposal", "ourdigital 제안서"
- "ourdigital contract", "ourdigital 계약서"
allowed-tools:
- Read
- Write
license: Internal-use Only

View File

@@ -0,0 +1,26 @@
# Changelog
All notable changes to ourdigital-backoffice will be documented here.
## [1.0.0] - 2026-01-31
### Added
- Initial skill creation
- Quote generation workflow
- Service proposal creation
- Contract draft template (with legal disclaimer)
- Cost-benefit analysis framework
- Service catalog with pricing
- Desktop and Code versions
- Standardized directory structure
### Files Created
- `desktop/SKILL.md` - Desktop workflow
- `desktop/skill.yaml` - Metadata
- `code/SKILL.md` - Code version with scripts
- `shared/references/pricing-guide.md` - Service pricing
- `shared/templates/quote-template.md` - Quote format
- `shared/templates/proposal-template.md` - Proposal format
- `shared/templates/contract-template.md` - Contract format
- `docs/CHANGELOG.md`
- `README.md`

View File

@@ -0,0 +1,214 @@
# Pricing Guide
OurDigital service pricing and estimation guidelines.
## Pricing Philosophy
- **Value-based pricing**: 성과와 가치 기반
- **Transparency**: 명확한 범위와 산출물
- **Flexibility**: 고객 상황에 맞는 옵션
## Service Categories
### 1. SEO Services
#### Technical SEO Audit
| Scope | Duration | Price |
|-------|----------|-------|
| Small (50 pages) | 1주 | 300만원 |
| Medium (200 pages) | 2주 | 400만원 |
| Large (500+ pages) | 3주 | 500-700만원 |
**Includes:**
- Crawl analysis
- Technical issue identification
- Priority action plan
- Implementation guidance
#### Monthly SEO Management
| Tier | Activities | Price/월 |
|------|------------|----------|
| Basic | Monitoring, reporting | 150만원 |
| Standard | + Content optimization | 250만원 |
| Premium | + Link building strategy | 350만원 |
**Minimum commitment**: 3개월
#### Local SEO
| Scope | Price/월 |
|-------|----------|
| Single location | 100만원 |
| Multi-location (2-5) | 150만원 |
| Enterprise (5+) | 협의 |
### 2. Data & Analytics
#### GTM Implementation
| Complexity | Duration | Price |
|------------|----------|-------|
| Basic (5-10 tags) | 1주 | 200만원 |
| Standard (20-30 tags) | 2주 | 300만원 |
| Complex (50+ tags) | 3-4주 | 400-600만원 |
**Includes:**
- Tag architecture design
- Implementation
- QA testing
- Documentation
#### GA4 Setup
| Scope | Duration | Price |
|-------|----------|-------|
| Basic setup | 3-5일 | 150만원 |
| Enhanced (e-commerce) | 1-2주 | 250만원 |
| Enterprise | 2-3주 | 350-500만원 |
#### Dashboard Development
| Type | Platform | Price |
|------|----------|-------|
| Standard | Looker Studio | 300만원 |
| Custom | Tableau/Power BI | 400-600만원 |
| Executive | Custom design | 500-800만원 |
**Maintenance**: 50만원/월 (optional)
### 3. Consulting Services
#### Brand Consulting
| Engagement | Duration | Price |
|------------|----------|-------|
| Brand audit | 2주 | 300만원 |
| Brand strategy | 4-6주 | 500-700만원 |
| Full rebrand | 8-12주 | 800-1500만원 |
#### Marketing Strategy
| Scope | Duration | Price |
|-------|----------|-------|
| Channel strategy | 2주 | 300만원 |
| Full marketing plan | 4주 | 500만원 |
| Annual roadmap | 6주 | 700만원 |
#### Data Strategy
| Focus | Duration | Price |
|-------|----------|-------|
| Assessment | 2주 | 300만원 |
| Strategy development | 4주 | 500만원 |
| Implementation roadmap | 6주 | 700만원 |
### 4. Training Services
#### Workshops
| Format | Duration | Price |
|--------|----------|-------|
| Half-day | 4시간 | 100만원 |
| Full-day | 8시간 | 180만원 |
| 2-day intensive | 16시간 | 300만원 |
**Includes:**
- Customized content
- Materials
- Follow-up resources
#### Corporate Training
| Package | Sessions | Price |
|---------|----------|-------|
| Starter | 4회 | 300만원 |
| Standard | 8회 | 550만원 |
| Premium | 12회 | 750만원 |
**Per session**: 1.5-2시간
## Pricing Modifiers
### Discounts
| Condition | Discount |
|-----------|----------|
| Annual contract | 10-15% |
| Bundle (3+ services) | 10% |
| Referral client | 5% |
| Non-profit | 20% |
### Surcharges
| Condition | Adjustment |
|-----------|------------|
| Rush delivery (<50% normal) | +30% |
| Weekend/Holiday work | +50% |
| After-hours support | +25% |
| International | +Travel costs |
## Payment Terms
### Standard Terms
| Milestone | Payment |
|-----------|---------|
| Contract signing | 50% |
| Mid-project | 25% (optional) |
| Completion | 50% (or 25%) |
### Monthly Services
- 월초 선불
- 자동이체 할인 (5%)
### Large Projects (>10M)
- 협의 기반 마일스톤 지급
- 최대 4회 분할
## Quote Calculation
### Formula
```
Base Price
+ Scope Adjustments (complexity, size)
+ Rush Fee (if applicable)
- Discounts (bundle, annual, etc.)
= Subtotal
+ VAT (10%)
= Total
```
### Example
```
GTM Implementation (Standard): 3,000,000
+ Complex integrations: +500,000
+ Rush delivery (2주→1주): +900,000
- Annual contract discount: -440,000
= Subtotal: 3,960,000
+ VAT (10%): 396,000
= Total: 4,356,000원
```
## Validity & Updates
- 견적 유효기간: 30일
- 가격표 갱신: 분기별 검토
- 특별 프로모션: 별도 공지
## Competitor Reference
For competitive positioning:
| Service | OurDigital | Market Range |
|---------|------------|--------------|
| SEO Audit | 300-500만 | 200-800만 |
| GTM Setup | 200-400만 | 150-600만 |
| Workshop | 100-180만 | 80-300만 |
**Positioning**: Premium quality, mid-high price range

View File

@@ -0,0 +1,240 @@
# 서비스 제안서 Template
```markdown
---
문서번호: OD-PROP-YYYY-NNN
작성일: YYYY-MM-DD
버전: 1.0
---
# [프로젝트명] 제안서
**고객사**: [고객사명]
**제출일**: YYYY년 MM월 DD일
**제출**: OurDigital
---
## Executive Summary
[고객사]의 [과제/목표]를 해결하기 위해, OurDigital은 [핵심 솔루션]을 제안드립니다.
본 프로젝트를 통해:
- [기대 효과 1]
- [기대 효과 2]
- [기대 효과 3]
을 달성할 수 있습니다.
---
## 1. 고객 상황 이해
### 1.1 현재 상황
[고객사의 현재 상황에 대한 이해]
### 1.2 핵심 과제
| 과제 | 상세 | 영향도 |
|------|------|--------|
| [과제1] | [설명] | High |
| [과제2] | [설명] | Medium |
| [과제3] | [설명] | Medium |
### 1.3 프로젝트 목표
1. [목표 1]
2. [목표 2]
3. [목표 3]
---
## 2. 제안 서비스
### 2.1 서비스 개요
[서비스에 대한 전체적인 설명]
### 2.2 서비스 범위
| 영역 | 포함 내용 | 산출물 |
|------|----------|--------|
| [영역1] | [내용] | [산출물] |
| [영역2] | [내용] | [산출물] |
| [영역3] | [내용] | [산출물] |
### 2.3 접근 방법
**Phase 1: [단계명]** (Week 1-2)
- [활동 1]
- [활동 2]
**Phase 2: [단계명]** (Week 3-4)
- [활동 1]
- [활동 2]
**Phase 3: [단계명]** (Week 5-6)
- [활동 1]
- [활동 2]
---
## 3. 프로젝트 계획
### 3.1 일정표
```
Week 1 ████░░░░░░░░ Phase 1: 착수
Week 2 ████████░░░░ Phase 1: 분석
Week 3 ░░░░████░░░░ Phase 2: 설계
Week 4 ░░░░████████ Phase 2: 개발
Week 5 ░░░░░░░░████ Phase 3: 테스트
Week 6 ░░░░░░░░░░██ Phase 3: 완료
```
### 3.2 마일스톤
| 마일스톤 | 일정 | 산출물 |
|----------|------|--------|
| 킥오프 | Week 1 | 프로젝트 헌장 |
| 중간 점검 | Week 3 | 중간 보고서 |
| 최종 납품 | Week 6 | 최종 산출물 |
### 3.3 의사소통 계획
| 유형 | 빈도 | 참석자 | 방식 |
|------|------|--------|------|
| 주간 리포트 | 주 1회 | PM | 이메일 |
| 진행 미팅 | 격주 | 양사 담당자 | 화상/대면 |
| 이슈 협의 | 수시 | 관련자 | 메신저 |
---
## 4. 투입 리소스
### 4.1 프로젝트 팀
| 역할 | 담당자 | 투입률 | 주요 책임 |
|------|--------|--------|-----------|
| PM | [이름] | 50% | 전체 관리 |
| 전문가 | [이름] | 100% | 실무 수행 |
| QA | [이름] | 30% | 품질 관리 |
### 4.2 담당자 프로필
**[담당자명]** - [역할]
- [경력 요약]
- [관련 프로젝트 경험]
- [보유 자격/스킬]
---
## 5. 비용 및 조건
### 5.1 프로젝트 비용
| 항목 | 금액 | 비고 |
|------|------|------|
| [서비스1] | ₩0,000,000 | |
| [서비스2] | ₩0,000,000 | |
| **소계** | ₩0,000,000 | |
| 부가세 (10%) | ₩000,000 | |
| **총액** | ₩0,000,000 | |
### 5.2 결제 조건
| 시점 | 비율 | 금액 |
|------|------|------|
| 계약 시 | 50% | ₩0,000,000 |
| 완료 시 | 50% | ₩0,000,000 |
### 5.3 계약 조건
- 계약 기간: YYYY.MM.DD ~ YYYY.MM.DD
- 하자보수: 납품 후 1개월
- 비밀유지: 상호 비밀유지 의무
---
## 6. 기대 효과
### 6.1 정량적 효과
| 지표 | 현재 | 목표 | 개선율 |
|------|------|------|--------|
| [지표1] | [현재값] | [목표값] | +00% |
| [지표2] | [현재값] | [목표값] | +00% |
### 6.2 정성적 효과
- [정성적 효과 1]
- [정성적 효과 2]
- [정성적 효과 3]
### 6.3 ROI 추정
| 항목 | 금액/연 |
|------|---------|
| 예상 효과 | ₩00,000,000 |
| 투자 비용 | ₩0,000,000 |
| **ROI** | **000%** |
투자회수기간: 약 N개월
---
## 7. 왜 OurDigital인가
### 7.1 차별화 포인트
1. **[강점 1]**: [설명]
2. **[강점 2]**: [설명]
3. **[강점 3]**: [설명]
### 7.2 관련 경험
| 고객사 | 프로젝트 | 성과 |
|--------|----------|------|
| [고객1] | [프로젝트] | [성과] |
| [고객2] | [프로젝트] | [성과] |
### 7.3 OurDigital 소개
OurDigital은 Data Intelligence 전문 기업 D.intelligence의 컨설팅 브랜드입니다.
- **전문 영역**: SEO, Data Analytics, Brand Marketing
- **철학**: "사람, 디지털, 그리고 문화"
- **강점**: 기술과 비즈니스의 균형 잡힌 시각
---
## 8. 다음 단계
1. 제안서 검토 및 피드백
2. 상세 협의 미팅
3. 계약 체결
4. 프로젝트 착수
### 연락처
**OurDigital**
- 담당: [이름]
- 이메일: [email]
- 전화: [phone]
---
**OurDigital**
*사람, 디지털, 그리고 문화*
www.ourdigital.org
```
## Template Variables
| Variable | Description |
|----------|-------------|
| `[고객사명]` | 고객사 이름 |
| `[프로젝트명]` | 프로젝트 제목 |
| `[과제]` | 해결할 비즈니스 과제 |
| `[핵심 솔루션]` | 제안하는 솔루션 요약 |

View File

@@ -0,0 +1,145 @@
# 견적서 Template
```markdown
---
문서번호: OD-QUOTE-YYYY-NNN
발행일: YYYY-MM-DD
유효기간: 30일
---
# 견적서
## 1. 발신/수신 정보
### 발신
| 항목 | 내용 |
|------|------|
| 상호 | OurDigital (D.intelligence) |
| 대표 | Andrew Yim |
| 연락처 | contact@ourdigital.org |
### 수신
| 항목 | 내용 |
|------|------|
| 회사명 | [고객사명] |
| 담당자 | [담당자명] |
| 연락처 | [이메일/전화] |
---
## 2. 프로젝트 개요
### 프로젝트명
[프로젝트명]
### 서비스 범위 요약
[1-2문장 요약]
---
## 3. 견적 상세
### 서비스 항목
| # | 항목 | 상세 설명 | 수량 | 단가 | 금액 |
|---|------|----------|------|------|------|
| 1 | [서비스1] | [설명] | 1 | ₩0,000,000 | ₩0,000,000 |
| 2 | [서비스2] | [설명] | 1 | ₩0,000,000 | ₩0,000,000 |
| 3 | [서비스3] | [설명] | 1 | ₩0,000,000 | ₩0,000,000 |
### 할인/조정
| 항목 | 내용 | 금액 |
|------|------|------|
| [할인 사유] | [설명] | -₩000,000 |
---
## 4. 합계
| 항목 | 금액 |
|------|------|
| 소계 | ₩0,000,000 |
| 부가세 (10%) | ₩000,000 |
| **총액** | **₩0,000,000** |
---
## 5. 결제 조건
### 결제 일정
| 시점 | 비율 | 금액 |
|------|------|------|
| 계약 시 | 50% | ₩0,000,000 |
| 완료 시 | 50% | ₩0,000,000 |
### 결제 방법
- 계좌이체: [은행] [계좌번호] [예금주]
- 세금계산서 발행
---
## 6. 프로젝트 일정
| 단계 | 기간 | 비고 |
|------|------|------|
| 착수 | Week 1 | 킥오프 미팅 |
| 진행 | Week 2-3 | 주간 리포트 |
| 완료 | Week 4 | 최종 산출물 |
예상 총 기간: [N주]
---
## 7. 포함/미포함 사항
### 포함 사항
- [포함 항목 1]
- [포함 항목 2]
- [포함 항목 3]
### 미포함 사항
- [미포함 항목 1]
- [미포함 항목 2]
- 추가 요청 사항 (별도 견적)
---
## 8. 특이사항
- [특이사항 1]
- [특이사항 2]
- 본 견적서는 발행일로부터 30일간 유효합니다.
---
## 9. 담당자
| 역할 | 이름 | 연락처 |
|------|------|--------|
| 프로젝트 매니저 | [이름] | [이메일] |
| 영업 담당 | [이름] | [이메일] |
---
**OurDigital**
*사람, 디지털, 그리고 문화*
www.ourdigital.org
```
## Usage Notes
### 필수 입력 항목
- [ ] 고객사 정보
- [ ] 서비스 항목 및 금액
- [ ] 프로젝트 일정
- [ ] 포함/미포함 사항
### 자동 계산
- 소계 = Σ(수량 × 단가)
- VAT = 소계 × 10%
- 총액 = 소계 + VAT
### 견적번호 규칙
- Format: OD-QUOTE-YYYY-NNN
- 예: OD-QUOTE-2026-001

View File

@@ -0,0 +1,75 @@
# OurDigital Skill Creator
Meta skill for creating, validating, and managing OurDigital Claude Skills.
## Purpose
This skill helps create new OurDigital skills with:
- Proper directory structure
- YAML frontmatter conventions
- OurDigital trigger patterns
- Notion history tracking
## Activation
Only activates with "ourdigital" keyword:
- "ourdigital 스킬 만들기"
- "ourdigital skill creator"
- "create ourdigital skill"
## Structure
```
10-ourdigital-skill-creator/
├── code/
│ └── SKILL.md # Claude Code version
├── desktop/
│ └── SKILL.md # Claude Desktop version
├── shared/
│ ├── references/
│ │ ├── suitability-criteria.md
│ │ └── skill-patterns.md
│ ├── templates/
│ │ └── SKILL-TEMPLATE.md
│ └── scripts/
│ ├── init_skill.py
│ └── validate_skill.py
├── docs/
│ ├── CHANGELOG.md
│ └── logs/
└── README.md
```
## Usage
### Create a New Skill
```bash
python shared/scripts/init_skill.py {name} --number XX
# Example
python shared/scripts/init_skill.py blog --number 02
```
### Validate a Skill
```bash
python shared/scripts/validate_skill.py {skill-directory}
# Example
python shared/scripts/validate_skill.py 02-ourdigital-blog
```
## Workflow
1. **Suitability Check** - Evaluate if need fits Claude Skill criteria
2. **Requirements Q&A** - Gather purpose, triggers, tools, outputs
3. **Generate Structure** - Create directories and files
4. **Validation** - Verify structure and content
5. **Notion Sync** - Record to Working with AI database
## Version
- Current: 1.0.0
- Author: OurDigital
- Environment: Both (Desktop & Code)

View File

@@ -0,0 +1,170 @@
---
name: ourdigital-skill-creator
description: |
Meta skill for creating OurDigital Claude Skills in Code environment.
Activated with "ourdigital" keyword + skill creation requests.
Triggers:
- "ourdigital 스킬 만들기", "ourdigital skill creator"
- "create ourdigital skill", "new ourdigital skill"
Features:
- Skill suitability evaluation
- Interactive requirements gathering
- Directory/file generation
- Notion history sync
version: "1.0"
author: OurDigital
environment: Code
---
# OurDigital Skill Creator (Code)
Create and manage OurDigital Claude Skills with automated scaffolding.
## Activation
Only when "ourdigital" + skill-related request:
- "ourdigital 스킬 만들어줘"
- "create ourdigital skill for X"
## Quick Start
```bash
# Initialize new skill
python shared/scripts/init_skill.py {skill-name} --number XX
# Validate skill structure
python shared/scripts/validate_skill.py XX-ourdigital-{skill-name}
# Sync to Notion
python shared/scripts/sync_notion.py XX-ourdigital-{skill-name} --action=create
```
## Workflow
### 1. Suitability Check
Before creating, evaluate:
| Criterion | Pass? |
|-----------|-------|
| Clear trigger (includes "ourdigital") | |
| Focused scope (1-3 functions) | |
| Reusable resources needed | |
| Domain-specific knowledge | |
| No overlap with existing skills | |
≥3 passes → proceed with creation.
### 2. Requirements Q&A
Ask in sequence:
1. **Purpose**: Core function of the skill?
2. **Trigger**: When should it activate? (must include "ourdigital")
3. **Tools**: External APIs, MCPs, or scripts needed?
4. **Output**: Expected deliverables?
5. **Environment**: Desktop, Code, or Both?
### 3. Generate Structure
Create directories and files:
```bash
mkdir -p XX-ourdigital-{name}/{code,desktop,shared/{references,templates,scripts},docs/logs}
```
Generate files:
- `desktop/SKILL.md` - MCP-focused version
- `code/SKILL.md` - Action-oriented version
- `shared/references/` - Common documentation
- `docs/CHANGELOG.md` - Initial changelog
- `README.md` - Skill overview
### 4. YAML Frontmatter
Apply standard template:
```yaml
---
name: ourdigital-{skill-name}
description: |
[One-line purpose]
Activated with "ourdigital" keyword.
Triggers:
- "ourdigital {keyword1}"
- "ourdigital {keyword2}"
Features:
- Feature 1
- Feature 2
version: "1.0"
author: OurDigital
environment: Code
---
```
### 5. Validation Checklist
- [ ] Directory structure matches template
- [ ] SKILL.md in both code/ and desktop/
- [ ] "ourdigital" in description triggers
- [ ] Body content 800-1,200 words
- [ ] CHANGELOG.md initialized
- [ ] No conflicts with existing skills
### 6. Notion Sync
Record creation to Working with AI database:
```python
# Properties
{
"Name": "ourdigital-{skill-name} v1.0",
"Status": "Done",
"AI used": "Claude Code",
"AI summary": "Skill description"
}
```
## Scripts
| Script | Purpose |
|--------|---------|
| `init_skill.py` | Scaffold new skill directory |
| `validate_skill.py` | Check skill structure |
| `sync_notion.py` | Sync to Notion database |
## Skill Categories
| Number | Category |
|--------|----------|
| 01-09 | OurDigital Core |
| 10 | Meta (this skill) |
| 11-19 | SEO |
| 20-29 | GTM/Analytics |
| 31-39 | Notion |
| 40-49 | Jamie Clinic |
## Files Reference
```
10-ourdigital-skill-creator/
├── code/SKILL.md # This file
├── desktop/SKILL.md # Desktop version
├── shared/
│ ├── references/
│ │ ├── suitability-criteria.md
│ │ └── skill-patterns.md
│ ├── templates/
│ │ └── skill-template/
│ └── scripts/
│ ├── init_skill.py
│ ├── validate_skill.py
│ └── sync_notion.py
└── docs/
├── CHANGELOG.md
└── logs/
```

View File

@@ -0,0 +1,167 @@
---
name: ourdigital-skill-creator
description: |
Meta skill for creating and managing OurDigital Claude Skills.
Activated when user includes "ourdigital" keyword with skill creation requests.
Triggers (ourdigital or our prefix):
- "ourdigital skill create", "our skill create"
- "ourdigital 스킬 만들기", "our 스킬 만들기"
- "ourdigital skill creator", "our skill creator"
Features:
- Skill suitability evaluation
- Interactive Q&A for requirements gathering
- Optimized skill generation (Desktop/Code)
- Notion history tracking
version: "1.0"
author: OurDigital
environment: Desktop
---
# OurDigital Skill Creator
Meta skill for creating, validating, and managing OurDigital Claude Skills.
## Activation
Activate with "ourdigital" or "our" prefix:
- "ourdigital 스킬 만들어줘" / "our 스킬 만들어줘"
- "ourdigital skill creator" / "our skill creator"
- "our skill create [name]"
Do NOT activate for generic "make a skill" requests (without our/ourdigital prefix).
## Interactive Workflow
### Phase 1: Need Assessment
When user requests a new skill:
1. **Acknowledge** the initial request
2. **Ask clarifying questions** (max 3 per turn):
- What is the core purpose?
- What triggers this skill?
- What outputs do you expect?
### Phase 2: Suitability Check
Evaluate against Claude Skill criteria:
| Criterion | Question to Ask |
|-----------|-----------------|
| Clear trigger | When exactly should this skill activate? |
| Focused scope | Can you describe 1-3 core functions? |
| Reusable resources | What scripts, templates, or references are needed? |
| Domain knowledge | What specialized knowledge does Claude lack? |
| Clear boundaries | How does this differ from existing skills? |
**Decision**: If ≥3 criteria pass → proceed. Otherwise, suggest alternatives.
### Phase 3: Requirements Definition
Guide user through structured Q&A:
```
Q1. 스킬 목적과 핵심 기능은 무엇인가요?
(What is the skill's purpose and core functions?)
Q2. 어떤 상황에서 이 스킬이 트리거되어야 하나요?
(When should this skill be triggered?)
Q3. 필요한 외부 도구나 API가 있나요?
(Any external tools or APIs needed?)
Q4. 기대하는 출력 형식은 무엇인가요?
(What output format do you expect?)
Q5. Desktop, Code, 또는 Both 환경이 필요한가요?
(Which environment: Desktop, Code, or Both?)
```
### Phase 4: Skill Generation
Generate skill structure following OurDigital standards:
```
XX-ourdigital-{skill-name}/
├── desktop/
│ └── SKILL.md # Desktop version
├── code/
│ └── SKILL.md # Code version (CLAUDE.md pattern)
├── shared/
│ ├── references/ # Common documentation
│ ├── templates/ # Shared templates
│ └── scripts/ # Utility scripts
├── docs/
│ ├── CHANGELOG.md # Version history
│ └── logs/ # Update logs
└── README.md # Overview
```
### Phase 5: Validation
Before finalizing, verify:
- [ ] YAML frontmatter includes "ourdigital" trigger keywords
- [ ] Description clearly states activation conditions
- [ ] Body content is 800-1,200 words
- [ ] shared/ resources are properly referenced
- [ ] No overlap with existing ourdigital skills
### Phase 6: Notion Sync
Record to Working with AI database:
- **Database**: f8f19ede-32bd-43ac-9f60-0651f6f40afe
- **Properties**:
- Name: `ourdigital-{skill-name} v{version}`
- Status: In progress → Done
- AI used: Claude Desktop
- AI summary: Brief skill description
## YAML Frontmatter Template
```yaml
---
name: ourdigital-{skill-name}
description: |
[Purpose summary]
Activated when user includes "ourdigital" keyword.
Triggers:
- "ourdigital {keyword1}", "ourdigital {keyword2}"
Features:
- Feature 1
- Feature 2
version: "1.0"
author: OurDigital
environment: Desktop | Code | Both
---
```
## Skill Numbering
| Range | Category |
|-------|----------|
| 01-09 | OurDigital Core (brand, blog, journal, research, etc.) |
| 10 | Meta (skill-creator) |
| 11-19 | SEO Tools |
| 20-29 | GTM/Analytics Tools |
| 31-39 | Notion Tools |
| 40-49 | Jamie Clinic Tools |
## Reference Files
- `shared/references/suitability-criteria.md` - Skill evaluation criteria
- `shared/references/skill-patterns.md` - Common patterns
- `shared/templates/skill-template/` - Blank skill template
## Quick Commands
| Command | Action |
|---------|--------|
| "ourdigital 스킬 적합성" | Run suitability check only |
| "ourdigital 스킬 생성" | Full creation workflow |
| "ourdigital 스킬 검증" | Validate existing skill |

View File

@@ -0,0 +1,26 @@
# Changelog
All notable changes to ourdigital-skill-creator will be documented here.
## [1.0.0] - 2026-01-31
### Added
- Initial skill creation
- Desktop and Code versions with YAML frontmatter
- Interactive Q&A workflow for requirements gathering
- Skill suitability evaluation criteria
- Directory structure scaffolding scripts
- Validation script for skill structure checking
- Skill patterns and templates reference
### Files
- `desktop/SKILL.md` - Claude Desktop version
- `code/SKILL.md` - Claude Code version
- `shared/references/suitability-criteria.md`
- `shared/references/skill-patterns.md`
- `shared/templates/SKILL-TEMPLATE.md`
- `shared/scripts/init_skill.py`
- `shared/scripts/validate_skill.py`
### Notion Ref
- (To be synced)

Some files were not shown because too many files have changed in this diff Show More