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

@@ -20,11 +20,11 @@ Lightweight Google Tag Manager audit tool.
```bash ```bash
# Audit GTM container # Audit GTM container
python ourdigital-custom-skills/20-gtm-audit/code/scripts/gtm_audit.py \ python custom-skills/20-gtm-audit/code/scripts/gtm_audit.py \
--url https://example.com --url https://example.com
# With detailed dataLayer check # With detailed dataLayer check
python ourdigital-custom-skills/20-gtm-audit/code/scripts/gtm_audit.py \ python custom-skills/20-gtm-audit/code/scripts/gtm_audit.py \
--url https://example.com --check-datalayer --output report.json --url https://example.com --check-datalayer --output report.json
``` ```

View File

@@ -20,15 +20,15 @@ Full GTM management with dataLayer injection and tag generation.
```bash ```bash
# Full GTM management # Full GTM management
python ourdigital-custom-skills/21-gtm-manager/code/scripts/gtm_manager.py \ python custom-skills/21-gtm-manager/code/scripts/gtm_manager.py \
--url https://example.com --full-audit --url https://example.com --full-audit
# Generate dataLayer tag # Generate dataLayer tag
python ourdigital-custom-skills/21-gtm-manager/code/scripts/gtm_manager.py \ python custom-skills/21-gtm-manager/code/scripts/gtm_manager.py \
--generate-tag purchase --output purchase_tag.html --generate-tag purchase --output purchase_tag.html
# Export to Notion # Export to Notion
python ourdigital-custom-skills/21-gtm-manager/code/scripts/gtm_manager.py \ python custom-skills/21-gtm-manager/code/scripts/gtm_manager.py \
--url https://example.com --notion-export --database DATABASE_ID --url https://example.com --notion-export --database DATABASE_ID
``` ```

View File

@@ -21,15 +21,15 @@ Jamie Clinic content **generation** toolkit.
```bash ```bash
# Check content compliance # Check content compliance
python ourdigital-custom-skills/40-jamie-brand-editor/code/scripts/compliance_checker.py \ python custom-skills/40-jamie-brand-editor/code/scripts/compliance_checker.py \
--input draft.md --input draft.md
# With detailed report # With detailed report
python ourdigital-custom-skills/40-jamie-brand-editor/code/scripts/compliance_checker.py \ python custom-skills/40-jamie-brand-editor/code/scripts/compliance_checker.py \
--input draft.md --verbose --output report.json --input draft.md --verbose --output report.json
# Batch check # Batch check
python ourdigital-custom-skills/40-jamie-brand-editor/code/scripts/compliance_checker.py \ python custom-skills/40-jamie-brand-editor/code/scripts/compliance_checker.py \
--dir ./drafts --output compliance_report.json --dir ./drafts --output compliance_report.json
``` ```

View File

@@ -20,15 +20,15 @@ Notion workspace management agent for organizing, restructuring, and maintaining
```bash ```bash
# Analyze database schema # Analyze database schema
python ourdigital-custom-skills/01-notion-organizer/code/scripts/schema_migrator.py \ python custom-skills/01-notion-organizer/code/scripts/schema_migrator.py \
--source-db DATABASE_ID --analyze --source-db DATABASE_ID --analyze
# Migrate with mapping # Migrate with mapping
python ourdigital-custom-skills/01-notion-organizer/code/scripts/schema_migrator.py \ python custom-skills/01-notion-organizer/code/scripts/schema_migrator.py \
--source-db SOURCE_ID --target-db TARGET_ID --mapping mapping.json --source-db SOURCE_ID --target-db TARGET_ID --mapping mapping.json
# Async bulk operations # Async bulk operations
python ourdigital-custom-skills/01-notion-organizer/code/scripts/async_organizer.py \ python custom-skills/01-notion-organizer/code/scripts/async_organizer.py \
--database DATABASE_ID --operation archive --filter "Status=Done" --database DATABASE_ID --operation archive --filter "Status=Done"
``` ```

View File

@@ -20,15 +20,15 @@ Visual storytelling toolkit for blog featured images.
```bash ```bash
# Generate image prompt # Generate image prompt
python ourdigital-custom-skills/30-ourdigital-designer/code/scripts/generate_prompt.py \ python custom-skills/30-ourdigital-designer/code/scripts/generate_prompt.py \
--topic "AI identity" --mood "contemplative" --topic "AI identity" --mood "contemplative"
# From essay text # From essay text
python ourdigital-custom-skills/30-ourdigital-designer/code/scripts/generate_prompt.py \ python custom-skills/30-ourdigital-designer/code/scripts/generate_prompt.py \
--input essay.txt --auto-extract --input essay.txt --auto-extract
# Calibrate mood # Calibrate mood
python ourdigital-custom-skills/30-ourdigital-designer/code/scripts/mood_calibrator.py \ python custom-skills/30-ourdigital-designer/code/scripts/mood_calibrator.py \
--input "essay excerpt" --style "minimalist" --input "essay excerpt" --style "minimalist"
``` ```

View File

@@ -20,13 +20,13 @@ Notion-to-presentation workflow for branded slides.
```bash ```bash
# Full automated workflow # Full automated workflow
python ourdigital-custom-skills/32-ourdigital-presentation/code/scripts/run_workflow.py \ python custom-skills/32-ourdigital-presentation/code/scripts/run_workflow.py \
--notion-url [NOTION_URL] --output presentation.pptx --notion-url [NOTION_URL] --output presentation.pptx
# Step-by-step # Step-by-step
python ourdigital-custom-skills/32-ourdigital-presentation/code/scripts/extract_notion.py [URL] > research.json python custom-skills/32-ourdigital-presentation/code/scripts/extract_notion.py [URL] > research.json
python ourdigital-custom-skills/32-ourdigital-presentation/code/scripts/synthesize_content.py research.json > synthesis.json python custom-skills/32-ourdigital-presentation/code/scripts/synthesize_content.py research.json > synthesis.json
python ourdigital-custom-skills/32-ourdigital-presentation/code/scripts/apply_brand.py synthesis.json --output presentation.pptx python custom-skills/32-ourdigital-presentation/code/scripts/apply_brand.py synthesis.json --output presentation.pptx
``` ```
## Pipeline ## Pipeline

View File

@@ -20,17 +20,17 @@ Research-to-publication workflow for OurDigital blogs.
```bash ```bash
# Export to Ulysses # Export to Ulysses
python ourdigital-custom-skills/31-ourdigital-research/code/scripts/export_to_ulysses.py \ python custom-skills/31-ourdigital-research/code/scripts/export_to_ulysses.py \
--input research.md --group "Blog Drafts" --input research.md --group "Blog Drafts"
# With tags # With tags
python ourdigital-custom-skills/31-ourdigital-research/code/scripts/export_to_ulysses.py \ python custom-skills/31-ourdigital-research/code/scripts/export_to_ulysses.py \
--input research.md \ --input research.md \
--group "Blog Drafts" \ --group "Blog Drafts" \
--tags "AI,research,draft" --tags "AI,research,draft"
# From Notion export # From Notion export
python ourdigital-custom-skills/31-ourdigital-research/code/scripts/export_to_ulysses.py \ python custom-skills/31-ourdigital-research/code/scripts/export_to_ulysses.py \
--notion-export notion_export.zip \ --notion-export notion_export.zip \
--group "From Notion" --group "From Notion"
``` ```

View File

@@ -20,11 +20,11 @@ Keyword strategy and content architecture for gateway pages.
```bash ```bash
# Analyze keyword # Analyze keyword
python ourdigital-custom-skills/17-seo-gateway-architect/code/scripts/keyword_analyzer.py \ python custom-skills/17-seo-gateway-architect/code/scripts/keyword_analyzer.py \
--topic "눈 성형" --topic "눈 성형"
# With location targeting # With location targeting
python ourdigital-custom-skills/17-seo-gateway-architect/code/scripts/keyword_analyzer.py \ python custom-skills/17-seo-gateway-architect/code/scripts/keyword_analyzer.py \
--topic "눈 성형" --market "강남" --output strategy.json --topic "눈 성형" --market "강남" --output strategy.json
``` ```

View File

@@ -20,10 +20,10 @@ Generate SEO-optimized gateway pages from templates.
```bash ```bash
# Generate with sample data # Generate with sample data
python ourdigital-custom-skills/18-seo-gateway-builder/code/scripts/generate_pages.py python custom-skills/18-seo-gateway-builder/code/scripts/generate_pages.py
# Custom configuration # Custom configuration
python ourdigital-custom-skills/18-seo-gateway-builder/code/scripts/generate_pages.py \ python custom-skills/18-seo-gateway-builder/code/scripts/generate_pages.py \
--config config/services.json \ --config config/services.json \
--locations config/locations.json \ --locations config/locations.json \
--output ./pages --output ./pages

View File

@@ -20,15 +20,15 @@ Google Search Console data retrieval and analysis.
```bash ```bash
# Get search performance # Get search performance
python ourdigital-custom-skills/16-seo-search-console/code/scripts/gsc_client.py \ python custom-skills/16-seo-search-console/code/scripts/gsc_client.py \
--site https://example.com --days 28 --site https://example.com --days 28
# Query analysis # Query analysis
python ourdigital-custom-skills/16-seo-search-console/code/scripts/gsc_client.py \ python custom-skills/16-seo-search-console/code/scripts/gsc_client.py \
--site https://example.com --report queries --limit 100 --site https://example.com --report queries --limit 100
# Page performance # Page performance
python ourdigital-custom-skills/16-seo-search-console/code/scripts/gsc_client.py \ python custom-skills/16-seo-search-console/code/scripts/gsc_client.py \
--site https://example.com --report pages --output pages_report.json --site https://example.com --report pages --output pages_report.json
``` ```

View File

@@ -20,11 +20,11 @@ On-page SEO analysis for meta tags, headings, content, and links.
```bash ```bash
# Full page analysis # Full page analysis
python ourdigital-custom-skills/11-seo-on-page-audit/code/scripts/page_analyzer.py \ python custom-skills/11-seo-on-page-audit/code/scripts/page_analyzer.py \
--url https://example.com/page --url https://example.com/page
# Multiple pages # Multiple pages
python ourdigital-custom-skills/11-seo-on-page-audit/code/scripts/page_analyzer.py \ python custom-skills/11-seo-on-page-audit/code/scripts/page_analyzer.py \
--urls urls.txt --output report.json --urls urls.txt --output report.json
``` ```

View File

@@ -19,11 +19,11 @@ Generate JSON-LD structured data markup from templates.
```bash ```bash
# Generate from template # Generate from template
python ourdigital-custom-skills/14-seo-schema-generator/code/scripts/schema_generator.py \ python custom-skills/14-seo-schema-generator/code/scripts/schema_generator.py \
--type LocalBusiness --output schema.json --type LocalBusiness --output schema.json
# With custom data # With custom data
python ourdigital-custom-skills/14-seo-schema-generator/code/scripts/schema_generator.py \ python custom-skills/14-seo-schema-generator/code/scripts/schema_generator.py \
--type Article \ --type Article \
--data '{"headline": "My Article", "author": "John Doe"}' \ --data '{"headline": "My Article", "author": "John Doe"}' \
--output article-schema.json --output article-schema.json

View File

@@ -20,15 +20,15 @@ JSON-LD structured data validation and analysis.
```bash ```bash
# Validate page schema # Validate page schema
python ourdigital-custom-skills/13-seo-schema-validator/code/scripts/schema_validator.py \ python custom-skills/13-seo-schema-validator/code/scripts/schema_validator.py \
--url https://example.com --url https://example.com
# Validate local file # Validate local file
python ourdigital-custom-skills/13-seo-schema-validator/code/scripts/schema_validator.py \ python custom-skills/13-seo-schema-validator/code/scripts/schema_validator.py \
--file schema.json --file schema.json
# Batch validation # Batch validation
python ourdigital-custom-skills/13-seo-schema-validator/code/scripts/schema_validator.py \ python custom-skills/13-seo-schema-validator/code/scripts/schema_validator.py \
--urls urls.txt --output validation_report.json --urls urls.txt --output validation_report.json
``` ```

View File

@@ -19,15 +19,15 @@ Technical SEO audit for robots.txt and sitemap validation.
```bash ```bash
# Check robots.txt # Check robots.txt
python ourdigital-custom-skills/10-seo-technical-audit/code/scripts/robots_checker.py \ python custom-skills/10-seo-technical-audit/code/scripts/robots_checker.py \
--url https://example.com --url https://example.com
# Validate sitemap # Validate sitemap
python ourdigital-custom-skills/10-seo-technical-audit/code/scripts/sitemap_validator.py \ python custom-skills/10-seo-technical-audit/code/scripts/sitemap_validator.py \
--url https://example.com/sitemap.xml --url https://example.com/sitemap.xml
# Crawl sitemap URLs # Crawl sitemap URLs
python ourdigital-custom-skills/10-seo-technical-audit/code/scripts/sitemap_crawler.py \ python custom-skills/10-seo-technical-audit/code/scripts/sitemap_crawler.py \
--sitemap https://example.com/sitemap.xml --output report.json --sitemap https://example.com/sitemap.xml --output report.json
``` ```

View File

@@ -20,15 +20,15 @@ Google PageSpeed Insights and Core Web Vitals analysis.
```bash ```bash
# Analyze single URL # Analyze single URL
python ourdigital-custom-skills/15-seo-core-web-vitals/code/scripts/pagespeed_client.py \ python custom-skills/15-seo-core-web-vitals/code/scripts/pagespeed_client.py \
--url https://example.com --url https://example.com
# Mobile and desktop # Mobile and desktop
python ourdigital-custom-skills/15-seo-core-web-vitals/code/scripts/pagespeed_client.py \ python custom-skills/15-seo-core-web-vitals/code/scripts/pagespeed_client.py \
--url https://example.com --strategy both --url https://example.com --strategy both
# Batch analysis # Batch analysis
python ourdigital-custom-skills/15-seo-core-web-vitals/code/scripts/pagespeed_client.py \ python custom-skills/15-seo-core-web-vitals/code/scripts/pagespeed_client.py \
--urls urls.txt --output vitals_report.json --urls urls.txt --output vitals_report.json
``` ```

View File

@@ -26,7 +26,12 @@
"Bash(brew services:*)", "Bash(brew services:*)",
"Bash(source ~/.envrc)", "Bash(source ~/.envrc)",
"mcp__plugin_Notion_notion__notion-fetch", "mcp__plugin_Notion_notion__notion-fetch",
"mcp__plugin_Notion_notion__notion-update-page" "mcp__plugin_Notion_notion__notion-update-page",
"Skill(settings-audit)",
"mcp__plugin_figma_figma__whoami",
"mcp__plugin_figma_figma__get_metadata",
"mcp__plugin_figma_figma__get_screenshot",
"WebSearch"
] ]
} }
} }

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` - 발표 스타일

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