From 0bc24d00b94ccb3a50708045c9bc55aed8092cae Mon Sep 17 00:00:00 2001
From: Andrew Yim
Date: Sat, 31 Jan 2026 16:50:17 +0700
Subject: [PATCH] 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
---
.claude/commands/gtm-audit.md | 4 +-
.claude/commands/gtm-manager.md | 6 +-
.claude/commands/jamie-editor.md | 6 +-
.claude/commands/notion-organizer.md | 6 +-
.claude/commands/ourdigital-designer.md | 6 +-
.claude/commands/ourdigital-presentation.md | 8 +-
.claude/commands/ourdigital-research.md | 6 +-
.claude/commands/seo-gateway-architect.md | 4 +-
.claude/commands/seo-gateway-builder.md | 4 +-
.claude/commands/seo-gsc.md | 6 +-
.claude/commands/seo-on-page.md | 4 +-
.claude/commands/seo-schema-generator.md | 4 +-
.claude/commands/seo-schema-validator.md | 6 +-
.claude/commands/seo-technical.md | 6 +-
.claude/commands/seo-vitals.md | 6 +-
.claude/settings.local.json | 7 +-
.../01-ourdigital-brand-guide/README.md | 88 +++
.../01-ourdigital-brand-guide/code/SKILL.md | 145 +++++
.../desktop/SKILL.md | 151 +++++
.../docs/CHANGELOG.md | 32 +
.../shared/assets/tokens.css | 69 +++
.../shared/references/brand-foundation.md | 127 ++++
.../shared/references/color-palette.md | 121 ++++
.../shared/references/writing-style.md | 152 +++++
.../01-ourdigital-research/desktop/SKILL.md | 198 ------
custom-skills/02-ourdigital-blog/README.md | 80 +++
.../02-ourdigital-blog/code/SKILL.md | 147 +++++
.../02-ourdigital-blog/desktop/SKILL.md | 145 +++++
.../02-ourdigital-blog/docs/CHANGELOG.md | 24 +
.../shared/references/blog-style-guide.md | 149 +++++
.../shared/scripts/ghost_publish.py | 166 +++++
.../shared/templates/blog-template.md | 70 +++
.../02-ourdigital-designer/README.md | 168 ------
.../02-ourdigital-designer/desktop/SKILL.md | 135 -----
.../02-ourdigital-designer/desktop/skill.yaml | 11 -
custom-skills/03-ourdigital-journal/README.md | 71 +++
.../03-ourdigital-journal/code/SKILL.md | 128 ++++
.../03-ourdigital-journal/desktop/SKILL.md | 173 ++++++
.../03-ourdigital-journal/docs/CHANGELOG.md | 23 +
.../shared/references/journal-style-guide.md | 166 +++++
.../shared/templates/essay-template.md | 64 ++
.../desktop/SKILL.md | 170 ------
.../desktop/skill.yaml | 9 -
.../04-ourdigital-research/README.md | 77 +++
.../code/CLAUDE.md | 0
.../04-ourdigital-research/code/SKILL.md | 124 ++++
.../code/assets/blog-template.md | 0
.../code/references/blog-style-guide.md | 0
.../code/references/ghost-api-config.md | 0
.../code/references/publishing-checklist.md | 0
.../code/references/research-frameworks.md | 0
.../code/scripts/export_to_ulysses.py | 0
.../code/scripts/requirements.txt | 0
.../04-ourdigital-research/desktop/SKILL.md | 172 ++++++
.../desktop/skill.yaml | 0
.../04-ourdigital-research/docs/CHANGELOG.md | 30 +
.../05-ourdigital-document/README.md | 85 +++
.../code/CLAUDE.md | 0
.../05-ourdigital-document/code/SKILL.md | 133 ++++
.../code/assets/brand_config.json | 0
.../code/references/agenda_templates.md | 0
.../code/references/research_patterns.md | 0
.../code/references/slide_layouts.md | 0
.../code/scripts/apply_brand.py | 0
.../code/scripts/extract_notion.py | 0
.../code/scripts/generate_pptx.js | 0
.../code/scripts/requirements.txt | 0
.../code/scripts/run_workflow.py | 0
.../code/scripts/synthesize_content.py | 0
.../05-ourdigital-document/desktop/SKILL.md | 155 +++++
.../05-ourdigital-document/desktop/skill.yaml | 17 +
.../05-ourdigital-document/docs/CHANGELOG.md | 29 +
.../shared/references/agenda_templates.md | 269 +++++++++
.../shared/references/research_patterns.md | 150 +++++
.../shared/references/slide_layouts.md | 327 ++++++++++
.../06-ourdigital-designer/README.md | 80 +++
.../code/CLAUDE.md | 0
.../06-ourdigital-designer/code/SKILL.md | 125 ++++
.../code/references/advanced_techniques.md | 0
.../code/references/color_palettes.md | 0
.../code/references/visual_metaphors.md | 0
.../code/scripts/generate_prompt.py | 0
.../code/scripts/mood_calibrator.py | 0
.../code/scripts/requirements.txt | 0
.../06-ourdigital-designer/desktop/SKILL.md | 145 +++++
.../06-ourdigital-designer/desktop/skill.yaml | 16 +
.../06-ourdigital-designer/docs/CHANGELOG.md | 30 +
.../shared/references/advanced_techniques.md | 214 +++++++
.../shared/references/color_palettes.md | 147 +++++
.../shared/references/visual_metaphors.md | 101 ++++
.../07-ourdigital-ad-manager/README.md | 81 +++
.../07-ourdigital-ad-manager/code/SKILL.md | 133 ++++
.../07-ourdigital-ad-manager/desktop/SKILL.md | 173 ++++++
.../desktop/skill.yaml | 17 +
.../docs/CHANGELOG.md | 24 +
.../shared/references/ad-copy-formulas.md | 160 +++++
.../shared/references/platform-specs.md | 196 ++++++
custom-skills/08-ourdigital-trainer/README.md | 82 +++
.../08-ourdigital-trainer/code/SKILL.md | 151 +++++
.../08-ourdigital-trainer/desktop/SKILL.md | 186 ++++++
.../08-ourdigital-trainer/desktop/skill.yaml | 16 +
.../08-ourdigital-trainer/docs/CHANGELOG.md | 25 +
.../shared/references/activity-library.md | 206 +++++++
.../shared/references/training-frameworks.md | 169 ++++++
.../09-ourdigital-backoffice/README.md | 86 +++
.../09-ourdigital-backoffice/code/SKILL.md | 167 +++++
.../09-ourdigital-backoffice/desktop/SKILL.md | 231 +++++++
.../desktop/skill.yaml | 15 +
.../docs/CHANGELOG.md | 26 +
.../shared/references/pricing-guide.md | 214 +++++++
.../shared/templates/proposal-template.md | 240 ++++++++
.../shared/templates/quote-template.md | 145 +++++
.../10-ourdigital-skill-creator/README.md | 75 +++
.../10-ourdigital-skill-creator/code/SKILL.md | 170 ++++++
.../desktop/SKILL.md | 167 +++++
.../docs/CHANGELOG.md | 26 +
.../shared/references/skill-patterns.md | 203 +++++++
.../shared/references/suitability-criteria.md | 105 ++++
.../shared/scripts/init_skill.py | 215 +++++++
.../shared/scripts/validate_skill.py | 171 ++++++
.../shared/templates/SKILL-TEMPLATE.md | 56 ++
.../code/CLAUDE.md | 0
.../code/scripts/base_client.py | 0
.../code/scripts/page_analyzer.py | 0
.../code/scripts/requirements.txt | 0
.../code/scripts/robots_checker.py | 0
.../code/scripts/sitemap_crawler.py | 0
.../code/scripts/sitemap_validator.py | 0
.../desktop/SKILL.md | 0
.../desktop/skill.yaml | 0
.../desktop/tools/firecrawl.md | 0
.../desktop/tools/notion.md | 0
.../desktop/tools/perplexity.md | 0
custom-skills/32-notion-writer/code/CLAUDE.md | 4 +-
.../32-notion-writer/desktop/SKILL.md | 4 +-
.../43-jamie-youtube-manager/code/CLAUDE.md | 4 +-
.../43-jamie-youtube-manager/desktop/SKILL.md | 4 +-
.../code/CLAUDE.md | 0
.../code/references/hashtag_database.md | 0
.../instagram_content_calendar_template.md | 0
.../code/references/reply_templates.md | 0
.../desktop/SKILL.md | 0
.../desktop/references/hashtag_database.md | 0
.../instagram_content_calendar_template.md | 0
.../desktop/references/reply_templates.md | 0
.../desktop/skill.yaml | 0
custom-skills/91-multi-agent-guide/README.md | 172 ++++++
.../commands/setup-agents.md | 56 ++
.../{ => skills/multi-agent-guide}/SKILL.md | 0
.../examples/minimal-setup/README.md | 0
.../references/ownership-matrix.md | 0
.../scripts/check-ownership.py | 0
.../multi-agent-guide}/templates/agents-md.md | 0
.../multi-agent-guide}/templates/claude-md.md | 0
.../multi-agent-guide}/templates/codex-md.md | 0
.../multi-agent-guide}/templates/gemini-md.md | 0
.../templates/github-workflow.yaml | 0
.../templates/guardrails-md.md | 0
.../templates/locks-yaml.yaml | 0
.../templates/pre-commit-config.yaml | 0
.../templates/tasks-yaml.yaml | 0
custom-skills/OUR_SKILL_PROJECT_PLAN_v1.1.md | 571 ++++++++++++++++++
.../.env.ourdigital.template | 69 +++
custom-skills/_ourdigital-shared/README.md | 129 ++++
.../_ourdigital-shared/config/ourdigital.yaml | 141 +++++
.../_ourdigital-shared/pyproject.toml | 64 ++
.../_ourdigital-shared/requirements/base.txt | 29 +
.../_ourdigital-shared/requirements/code.txt | 23 +
.../requirements/desktop.txt | 13 +
169 files changed, 9970 insertions(+), 741 deletions(-)
create mode 100644 custom-skills/01-ourdigital-brand-guide/README.md
create mode 100644 custom-skills/01-ourdigital-brand-guide/code/SKILL.md
create mode 100644 custom-skills/01-ourdigital-brand-guide/desktop/SKILL.md
create mode 100644 custom-skills/01-ourdigital-brand-guide/docs/CHANGELOG.md
create mode 100644 custom-skills/01-ourdigital-brand-guide/shared/assets/tokens.css
create mode 100644 custom-skills/01-ourdigital-brand-guide/shared/references/brand-foundation.md
create mode 100644 custom-skills/01-ourdigital-brand-guide/shared/references/color-palette.md
create mode 100644 custom-skills/01-ourdigital-brand-guide/shared/references/writing-style.md
delete mode 100644 custom-skills/01-ourdigital-research/desktop/SKILL.md
create mode 100644 custom-skills/02-ourdigital-blog/README.md
create mode 100644 custom-skills/02-ourdigital-blog/code/SKILL.md
create mode 100644 custom-skills/02-ourdigital-blog/desktop/SKILL.md
create mode 100644 custom-skills/02-ourdigital-blog/docs/CHANGELOG.md
create mode 100644 custom-skills/02-ourdigital-blog/shared/references/blog-style-guide.md
create mode 100644 custom-skills/02-ourdigital-blog/shared/scripts/ghost_publish.py
create mode 100644 custom-skills/02-ourdigital-blog/shared/templates/blog-template.md
delete mode 100644 custom-skills/02-ourdigital-designer/README.md
delete mode 100644 custom-skills/02-ourdigital-designer/desktop/SKILL.md
delete mode 100644 custom-skills/02-ourdigital-designer/desktop/skill.yaml
create mode 100644 custom-skills/03-ourdigital-journal/README.md
create mode 100644 custom-skills/03-ourdigital-journal/code/SKILL.md
create mode 100644 custom-skills/03-ourdigital-journal/desktop/SKILL.md
create mode 100644 custom-skills/03-ourdigital-journal/docs/CHANGELOG.md
create mode 100644 custom-skills/03-ourdigital-journal/shared/references/journal-style-guide.md
create mode 100644 custom-skills/03-ourdigital-journal/shared/templates/essay-template.md
delete mode 100644 custom-skills/03-ourdigital-presentation/desktop/SKILL.md
delete mode 100644 custom-skills/03-ourdigital-presentation/desktop/skill.yaml
create mode 100644 custom-skills/04-ourdigital-research/README.md
rename custom-skills/{01-ourdigital-research => 04-ourdigital-research}/code/CLAUDE.md (100%)
create mode 100644 custom-skills/04-ourdigital-research/code/SKILL.md
rename custom-skills/{01-ourdigital-research => 04-ourdigital-research}/code/assets/blog-template.md (100%)
rename custom-skills/{01-ourdigital-research => 04-ourdigital-research}/code/references/blog-style-guide.md (100%)
rename custom-skills/{01-ourdigital-research => 04-ourdigital-research}/code/references/ghost-api-config.md (100%)
rename custom-skills/{01-ourdigital-research => 04-ourdigital-research}/code/references/publishing-checklist.md (100%)
rename custom-skills/{01-ourdigital-research => 04-ourdigital-research}/code/references/research-frameworks.md (100%)
rename custom-skills/{01-ourdigital-research => 04-ourdigital-research}/code/scripts/export_to_ulysses.py (100%)
rename custom-skills/{01-ourdigital-research => 04-ourdigital-research}/code/scripts/requirements.txt (100%)
create mode 100644 custom-skills/04-ourdigital-research/desktop/SKILL.md
rename custom-skills/{01-ourdigital-research => 04-ourdigital-research}/desktop/skill.yaml (100%)
create mode 100644 custom-skills/04-ourdigital-research/docs/CHANGELOG.md
create mode 100644 custom-skills/05-ourdigital-document/README.md
rename custom-skills/{03-ourdigital-presentation => 05-ourdigital-document}/code/CLAUDE.md (100%)
create mode 100644 custom-skills/05-ourdigital-document/code/SKILL.md
rename custom-skills/{03-ourdigital-presentation => 05-ourdigital-document}/code/assets/brand_config.json (100%)
rename custom-skills/{03-ourdigital-presentation => 05-ourdigital-document}/code/references/agenda_templates.md (100%)
rename custom-skills/{03-ourdigital-presentation => 05-ourdigital-document}/code/references/research_patterns.md (100%)
rename custom-skills/{03-ourdigital-presentation => 05-ourdigital-document}/code/references/slide_layouts.md (100%)
rename custom-skills/{03-ourdigital-presentation => 05-ourdigital-document}/code/scripts/apply_brand.py (100%)
rename custom-skills/{03-ourdigital-presentation => 05-ourdigital-document}/code/scripts/extract_notion.py (100%)
rename custom-skills/{03-ourdigital-presentation => 05-ourdigital-document}/code/scripts/generate_pptx.js (100%)
rename custom-skills/{03-ourdigital-presentation => 05-ourdigital-document}/code/scripts/requirements.txt (100%)
rename custom-skills/{03-ourdigital-presentation => 05-ourdigital-document}/code/scripts/run_workflow.py (100%)
rename custom-skills/{03-ourdigital-presentation => 05-ourdigital-document}/code/scripts/synthesize_content.py (100%)
create mode 100644 custom-skills/05-ourdigital-document/desktop/SKILL.md
create mode 100644 custom-skills/05-ourdigital-document/desktop/skill.yaml
create mode 100644 custom-skills/05-ourdigital-document/docs/CHANGELOG.md
create mode 100644 custom-skills/05-ourdigital-document/shared/references/agenda_templates.md
create mode 100644 custom-skills/05-ourdigital-document/shared/references/research_patterns.md
create mode 100644 custom-skills/05-ourdigital-document/shared/references/slide_layouts.md
create mode 100644 custom-skills/06-ourdigital-designer/README.md
rename custom-skills/{02-ourdigital-designer => 06-ourdigital-designer}/code/CLAUDE.md (100%)
create mode 100644 custom-skills/06-ourdigital-designer/code/SKILL.md
rename custom-skills/{02-ourdigital-designer => 06-ourdigital-designer}/code/references/advanced_techniques.md (100%)
rename custom-skills/{02-ourdigital-designer => 06-ourdigital-designer}/code/references/color_palettes.md (100%)
rename custom-skills/{02-ourdigital-designer => 06-ourdigital-designer}/code/references/visual_metaphors.md (100%)
rename custom-skills/{02-ourdigital-designer => 06-ourdigital-designer}/code/scripts/generate_prompt.py (100%)
rename custom-skills/{02-ourdigital-designer => 06-ourdigital-designer}/code/scripts/mood_calibrator.py (100%)
rename custom-skills/{02-ourdigital-designer => 06-ourdigital-designer}/code/scripts/requirements.txt (100%)
create mode 100644 custom-skills/06-ourdigital-designer/desktop/SKILL.md
create mode 100644 custom-skills/06-ourdigital-designer/desktop/skill.yaml
create mode 100644 custom-skills/06-ourdigital-designer/docs/CHANGELOG.md
create mode 100644 custom-skills/06-ourdigital-designer/shared/references/advanced_techniques.md
create mode 100644 custom-skills/06-ourdigital-designer/shared/references/color_palettes.md
create mode 100644 custom-skills/06-ourdigital-designer/shared/references/visual_metaphors.md
create mode 100644 custom-skills/07-ourdigital-ad-manager/README.md
create mode 100644 custom-skills/07-ourdigital-ad-manager/code/SKILL.md
create mode 100644 custom-skills/07-ourdigital-ad-manager/desktop/SKILL.md
create mode 100644 custom-skills/07-ourdigital-ad-manager/desktop/skill.yaml
create mode 100644 custom-skills/07-ourdigital-ad-manager/docs/CHANGELOG.md
create mode 100644 custom-skills/07-ourdigital-ad-manager/shared/references/ad-copy-formulas.md
create mode 100644 custom-skills/07-ourdigital-ad-manager/shared/references/platform-specs.md
create mode 100644 custom-skills/08-ourdigital-trainer/README.md
create mode 100644 custom-skills/08-ourdigital-trainer/code/SKILL.md
create mode 100644 custom-skills/08-ourdigital-trainer/desktop/SKILL.md
create mode 100644 custom-skills/08-ourdigital-trainer/desktop/skill.yaml
create mode 100644 custom-skills/08-ourdigital-trainer/docs/CHANGELOG.md
create mode 100644 custom-skills/08-ourdigital-trainer/shared/references/activity-library.md
create mode 100644 custom-skills/08-ourdigital-trainer/shared/references/training-frameworks.md
create mode 100644 custom-skills/09-ourdigital-backoffice/README.md
create mode 100644 custom-skills/09-ourdigital-backoffice/code/SKILL.md
create mode 100644 custom-skills/09-ourdigital-backoffice/desktop/SKILL.md
create mode 100644 custom-skills/09-ourdigital-backoffice/desktop/skill.yaml
create mode 100644 custom-skills/09-ourdigital-backoffice/docs/CHANGELOG.md
create mode 100644 custom-skills/09-ourdigital-backoffice/shared/references/pricing-guide.md
create mode 100644 custom-skills/09-ourdigital-backoffice/shared/templates/proposal-template.md
create mode 100644 custom-skills/09-ourdigital-backoffice/shared/templates/quote-template.md
create mode 100644 custom-skills/10-ourdigital-skill-creator/README.md
create mode 100644 custom-skills/10-ourdigital-skill-creator/code/SKILL.md
create mode 100644 custom-skills/10-ourdigital-skill-creator/desktop/SKILL.md
create mode 100644 custom-skills/10-ourdigital-skill-creator/docs/CHANGELOG.md
create mode 100644 custom-skills/10-ourdigital-skill-creator/shared/references/skill-patterns.md
create mode 100644 custom-skills/10-ourdigital-skill-creator/shared/references/suitability-criteria.md
create mode 100644 custom-skills/10-ourdigital-skill-creator/shared/scripts/init_skill.py
create mode 100644 custom-skills/10-ourdigital-skill-creator/shared/scripts/validate_skill.py
create mode 100644 custom-skills/10-ourdigital-skill-creator/shared/templates/SKILL-TEMPLATE.md
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/code/CLAUDE.md (100%)
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/code/scripts/base_client.py (100%)
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/code/scripts/page_analyzer.py (100%)
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/code/scripts/requirements.txt (100%)
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/code/scripts/robots_checker.py (100%)
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/code/scripts/sitemap_crawler.py (100%)
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/code/scripts/sitemap_validator.py (100%)
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/desktop/SKILL.md (100%)
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/desktop/skill.yaml (100%)
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/desktop/tools/firecrawl.md (100%)
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/desktop/tools/notion.md (100%)
rename custom-skills/{10-seo-technical-audit => 19-seo-technical-audit}/desktop/tools/perplexity.md (100%)
rename custom-skills/{42-jamie-instagram-manager => 45-jamie-instagram-manager}/code/CLAUDE.md (100%)
rename custom-skills/{42-jamie-instagram-manager => 45-jamie-instagram-manager}/code/references/hashtag_database.md (100%)
rename custom-skills/{42-jamie-instagram-manager => 45-jamie-instagram-manager}/code/references/instagram_content_calendar_template.md (100%)
rename custom-skills/{42-jamie-instagram-manager => 45-jamie-instagram-manager}/code/references/reply_templates.md (100%)
rename custom-skills/{42-jamie-instagram-manager => 45-jamie-instagram-manager}/desktop/SKILL.md (100%)
rename custom-skills/{42-jamie-instagram-manager => 45-jamie-instagram-manager}/desktop/references/hashtag_database.md (100%)
rename custom-skills/{42-jamie-instagram-manager => 45-jamie-instagram-manager}/desktop/references/instagram_content_calendar_template.md (100%)
rename custom-skills/{42-jamie-instagram-manager => 45-jamie-instagram-manager}/desktop/references/reply_templates.md (100%)
rename custom-skills/{42-jamie-instagram-manager => 45-jamie-instagram-manager}/desktop/skill.yaml (100%)
create mode 100644 custom-skills/91-multi-agent-guide/README.md
create mode 100644 custom-skills/91-multi-agent-guide/commands/setup-agents.md
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/SKILL.md (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/examples/minimal-setup/README.md (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/references/ownership-matrix.md (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/scripts/check-ownership.py (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/templates/agents-md.md (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/templates/claude-md.md (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/templates/codex-md.md (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/templates/gemini-md.md (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/templates/github-workflow.yaml (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/templates/guardrails-md.md (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/templates/locks-yaml.yaml (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/templates/pre-commit-config.yaml (100%)
rename custom-skills/91-multi-agent-guide/{ => skills/multi-agent-guide}/templates/tasks-yaml.yaml (100%)
create mode 100644 custom-skills/OUR_SKILL_PROJECT_PLAN_v1.1.md
create mode 100644 custom-skills/_ourdigital-shared/.env.ourdigital.template
create mode 100644 custom-skills/_ourdigital-shared/README.md
create mode 100644 custom-skills/_ourdigital-shared/config/ourdigital.yaml
create mode 100644 custom-skills/_ourdigital-shared/pyproject.toml
create mode 100644 custom-skills/_ourdigital-shared/requirements/base.txt
create mode 100644 custom-skills/_ourdigital-shared/requirements/code.txt
create mode 100644 custom-skills/_ourdigital-shared/requirements/desktop.txt
diff --git a/.claude/commands/gtm-audit.md b/.claude/commands/gtm-audit.md
index 7f6fb1b..bd74326 100644
--- a/.claude/commands/gtm-audit.md
+++ b/.claude/commands/gtm-audit.md
@@ -20,11 +20,11 @@ Lightweight Google Tag Manager audit tool.
```bash
# 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
# 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
```
diff --git a/.claude/commands/gtm-manager.md b/.claude/commands/gtm-manager.md
index 1a15a6b..d6ded28 100644
--- a/.claude/commands/gtm-manager.md
+++ b/.claude/commands/gtm-manager.md
@@ -20,15 +20,15 @@ Full GTM management with dataLayer injection and tag generation.
```bash
# 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
# 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
# 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
```
diff --git a/.claude/commands/jamie-editor.md b/.claude/commands/jamie-editor.md
index cefb1a5..0f7623a 100644
--- a/.claude/commands/jamie-editor.md
+++ b/.claude/commands/jamie-editor.md
@@ -21,15 +21,15 @@ Jamie Clinic content **generation** toolkit.
```bash
# 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
# 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
# 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
```
diff --git a/.claude/commands/notion-organizer.md b/.claude/commands/notion-organizer.md
index 0e4f87d..59e51bc 100644
--- a/.claude/commands/notion-organizer.md
+++ b/.claude/commands/notion-organizer.md
@@ -20,15 +20,15 @@ Notion workspace management agent for organizing, restructuring, and maintaining
```bash
# 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
# 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
# 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"
```
diff --git a/.claude/commands/ourdigital-designer.md b/.claude/commands/ourdigital-designer.md
index aa87bab..5a02caa 100644
--- a/.claude/commands/ourdigital-designer.md
+++ b/.claude/commands/ourdigital-designer.md
@@ -20,15 +20,15 @@ Visual storytelling toolkit for blog featured images.
```bash
# 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"
# 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
# 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"
```
diff --git a/.claude/commands/ourdigital-presentation.md b/.claude/commands/ourdigital-presentation.md
index 4dadd1c..5009417 100644
--- a/.claude/commands/ourdigital-presentation.md
+++ b/.claude/commands/ourdigital-presentation.md
@@ -20,13 +20,13 @@ Notion-to-presentation workflow for branded slides.
```bash
# 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
# Step-by-step
-python ourdigital-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 ourdigital-custom-skills/32-ourdigital-presentation/code/scripts/apply_brand.py synthesis.json --output presentation.pptx
+python custom-skills/32-ourdigital-presentation/code/scripts/extract_notion.py [URL] > research.json
+python custom-skills/32-ourdigital-presentation/code/scripts/synthesize_content.py research.json > synthesis.json
+python custom-skills/32-ourdigital-presentation/code/scripts/apply_brand.py synthesis.json --output presentation.pptx
```
## Pipeline
diff --git a/.claude/commands/ourdigital-research.md b/.claude/commands/ourdigital-research.md
index 3bcc619..446b603 100644
--- a/.claude/commands/ourdigital-research.md
+++ b/.claude/commands/ourdigital-research.md
@@ -20,17 +20,17 @@ Research-to-publication workflow for OurDigital blogs.
```bash
# 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"
# 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 \
--group "Blog Drafts" \
--tags "AI,research,draft"
# 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 \
--group "From Notion"
```
diff --git a/.claude/commands/seo-gateway-architect.md b/.claude/commands/seo-gateway-architect.md
index 2613dc4..432021e 100644
--- a/.claude/commands/seo-gateway-architect.md
+++ b/.claude/commands/seo-gateway-architect.md
@@ -20,11 +20,11 @@ Keyword strategy and content architecture for gateway pages.
```bash
# 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 "눈 성형"
# 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
```
diff --git a/.claude/commands/seo-gateway-builder.md b/.claude/commands/seo-gateway-builder.md
index 539ab87..d8f0eb2 100644
--- a/.claude/commands/seo-gateway-builder.md
+++ b/.claude/commands/seo-gateway-builder.md
@@ -20,10 +20,10 @@ Generate SEO-optimized gateway pages from templates.
```bash
# 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
-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 \
--locations config/locations.json \
--output ./pages
diff --git a/.claude/commands/seo-gsc.md b/.claude/commands/seo-gsc.md
index 908378a..63c72ca 100644
--- a/.claude/commands/seo-gsc.md
+++ b/.claude/commands/seo-gsc.md
@@ -20,15 +20,15 @@ Google Search Console data retrieval and analysis.
```bash
# 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
# 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
# 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
```
diff --git a/.claude/commands/seo-on-page.md b/.claude/commands/seo-on-page.md
index 190adba..39f9a90 100644
--- a/.claude/commands/seo-on-page.md
+++ b/.claude/commands/seo-on-page.md
@@ -20,11 +20,11 @@ On-page SEO analysis for meta tags, headings, content, and links.
```bash
# 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
# 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
```
diff --git a/.claude/commands/seo-schema-generator.md b/.claude/commands/seo-schema-generator.md
index d964195..5ebc6d8 100644
--- a/.claude/commands/seo-schema-generator.md
+++ b/.claude/commands/seo-schema-generator.md
@@ -19,11 +19,11 @@ Generate JSON-LD structured data markup from templates.
```bash
# 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
# 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 \
--data '{"headline": "My Article", "author": "John Doe"}' \
--output article-schema.json
diff --git a/.claude/commands/seo-schema-validator.md b/.claude/commands/seo-schema-validator.md
index a02792f..b9d217f 100644
--- a/.claude/commands/seo-schema-validator.md
+++ b/.claude/commands/seo-schema-validator.md
@@ -20,15 +20,15 @@ JSON-LD structured data validation and analysis.
```bash
# 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
# 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
# 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
```
diff --git a/.claude/commands/seo-technical.md b/.claude/commands/seo-technical.md
index f207a94..2214803 100644
--- a/.claude/commands/seo-technical.md
+++ b/.claude/commands/seo-technical.md
@@ -19,15 +19,15 @@ Technical SEO audit for robots.txt and sitemap validation.
```bash
# 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
# 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
# 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
```
diff --git a/.claude/commands/seo-vitals.md b/.claude/commands/seo-vitals.md
index 850bc94..47b5a42 100644
--- a/.claude/commands/seo-vitals.md
+++ b/.claude/commands/seo-vitals.md
@@ -20,15 +20,15 @@ Google PageSpeed Insights and Core Web Vitals analysis.
```bash
# 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
# 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
# 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
```
diff --git a/.claude/settings.local.json b/.claude/settings.local.json
index df9ff60..f47c1f8 100644
--- a/.claude/settings.local.json
+++ b/.claude/settings.local.json
@@ -26,7 +26,12 @@
"Bash(brew services:*)",
"Bash(source ~/.envrc)",
"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"
]
}
}
diff --git a/custom-skills/01-ourdigital-brand-guide/README.md b/custom-skills/01-ourdigital-brand-guide/README.md
new file mode 100644
index 0000000..8f8b129
--- /dev/null
+++ b/custom-skills/01-ourdigital-brand-guide/README.md
@@ -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)
diff --git a/custom-skills/01-ourdigital-brand-guide/code/SKILL.md b/custom-skills/01-ourdigital-brand-guide/code/SKILL.md
new file mode 100644
index 0000000..b763c51
--- /dev/null
+++ b/custom-skills/01-ourdigital-brand-guide/code/SKILL.md
@@ -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
+```
diff --git a/custom-skills/01-ourdigital-brand-guide/desktop/SKILL.md b/custom-skills/01-ourdigital-brand-guide/desktop/SKILL.md
new file mode 100644
index 0000000..cb81562
--- /dev/null
+++ b/custom-skills/01-ourdigital-brand-guide/desktop/SKILL.md
@@ -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
diff --git a/custom-skills/01-ourdigital-brand-guide/docs/CHANGELOG.md b/custom-skills/01-ourdigital-brand-guide/docs/CHANGELOG.md
new file mode 100644
index 0000000..405f97c
--- /dev/null
+++ b/custom-skills/01-ourdigital-brand-guide/docs/CHANGELOG.md
@@ -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)
diff --git a/custom-skills/01-ourdigital-brand-guide/shared/assets/tokens.css b/custom-skills/01-ourdigital-brand-guide/shared/assets/tokens.css
new file mode 100644
index 0000000..aa00bc2
--- /dev/null
+++ b/custom-skills/01-ourdigital-brand-guide/shared/assets/tokens.css
@@ -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);
+}
diff --git a/custom-skills/01-ourdigital-brand-guide/shared/references/brand-foundation.md b/custom-skills/01-ourdigital-brand-guide/shared/references/brand-foundation.md
new file mode 100644
index 0000000..6da3c1c
--- /dev/null
+++ b/custom-skills/01-ourdigital-brand-guide/shared/references/brand-foundation.md
@@ -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 | 맞춤 견적 상담받기 |
diff --git a/custom-skills/01-ourdigital-brand-guide/shared/references/color-palette.md b/custom-skills/01-ourdigital-brand-guide/shared/references/color-palette.md
new file mode 100644
index 0000000..e6a6de9
--- /dev/null
+++ b/custom-skills/01-ourdigital-brand-guide/shared/references/color-palette.md
@@ -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
diff --git a/custom-skills/01-ourdigital-brand-guide/shared/references/writing-style.md b/custom-skills/01-ourdigital-brand-guide/shared/references/writing-style.md
new file mode 100644
index 0000000..479f74f
--- /dev/null
+++ b/custom-skills/01-ourdigital-brand-guide/shared/references/writing-style.md
@@ -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 |
diff --git a/custom-skills/01-ourdigital-research/desktop/SKILL.md b/custom-skills/01-ourdigital-research/desktop/SKILL.md
deleted file mode 100644
index 511f5ee..0000000
--- a/custom-skills/01-ourdigital-research/desktop/SKILL.md
+++ /dev/null
@@ -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 |
diff --git a/custom-skills/02-ourdigital-blog/README.md b/custom-skills/02-ourdigital-blog/README.md
new file mode 100644
index 0000000..06cc9d3
--- /dev/null
+++ b/custom-skills/02-ourdigital-blog/README.md
@@ -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=
+```
+
+## Version
+
+- Current: 1.0.0
+- Author: OurDigital
diff --git a/custom-skills/02-ourdigital-blog/code/SKILL.md b/custom-skills/02-ourdigital-blog/code/SKILL.md
new file mode 100644
index 0000000..b23cd11
--- /dev/null
+++ b/custom-skills/02-ourdigital-blog/code/SKILL.md
@@ -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=
+```
+
+## 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
+```
diff --git a/custom-skills/02-ourdigital-blog/desktop/SKILL.md b/custom-skills/02-ourdigital-blog/desktop/SKILL.md
new file mode 100644
index 0000000..fde7ab6
--- /dev/null
+++ b/custom-skills/02-ourdigital-blog/desktop/SKILL.md
@@ -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
diff --git a/custom-skills/02-ourdigital-blog/docs/CHANGELOG.md b/custom-skills/02-ourdigital-blog/docs/CHANGELOG.md
new file mode 100644
index 0000000..e5040de
--- /dev/null
+++ b/custom-skills/02-ourdigital-blog/docs/CHANGELOG.md
@@ -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)
diff --git a/custom-skills/02-ourdigital-blog/shared/references/blog-style-guide.md b/custom-skills/02-ourdigital-blog/shared/references/blog-style-guide.md
new file mode 100644
index 0000000..5887601
--- /dev/null
+++ b/custom-skills/02-ourdigital-blog/shared/references/blog-style-guide.md
@@ -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자 범위인가?
diff --git a/custom-skills/02-ourdigital-blog/shared/scripts/ghost_publish.py b/custom-skills/02-ourdigital-blog/shared/scripts/ghost_publish.py
new file mode 100644
index 0000000..09550ce
--- /dev/null
+++ b/custom-skills/02-ourdigital-blog/shared/scripts/ghost_publish.py
@@ -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", "
")
+ html = f"
{html}
"
+ 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())
diff --git a/custom-skills/02-ourdigital-blog/shared/templates/blog-template.md b/custom-skills/02-ourdigital-blog/shared/templates/blog-template.md
new file mode 100644
index 0000000..27f371b
--- /dev/null
+++ b/custom-skills/02-ourdigital-blog/shared/templates/blog-template.md
@@ -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)에 게재된 콘텐츠입니다.*
+
+
diff --git a/custom-skills/02-ourdigital-designer/README.md b/custom-skills/02-ourdigital-designer/README.md
deleted file mode 100644
index 811cb76..0000000
--- a/custom-skills/02-ourdigital-designer/README.md
+++ /dev/null
@@ -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
\ No newline at end of file
diff --git a/custom-skills/02-ourdigital-designer/desktop/SKILL.md b/custom-skills/02-ourdigital-designer/desktop/SKILL.md
deleted file mode 100644
index ae760ec..0000000
--- a/custom-skills/02-ourdigital-designer/desktop/SKILL.md
+++ /dev/null
@@ -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.
\ No newline at end of file
diff --git a/custom-skills/02-ourdigital-designer/desktop/skill.yaml b/custom-skills/02-ourdigital-designer/desktop/skill.yaml
deleted file mode 100644
index eafa0ab..0000000
--- a/custom-skills/02-ourdigital-designer/desktop/skill.yaml
+++ /dev/null
@@ -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
diff --git a/custom-skills/03-ourdigital-journal/README.md b/custom-skills/03-ourdigital-journal/README.md
new file mode 100644
index 0000000..e8526dc
--- /dev/null
+++ b/custom-skills/03-ourdigital-journal/README.md
@@ -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=
+```
+
+## Version
+
+- Current: 1.0.0
+- Author: OurDigital
diff --git a/custom-skills/03-ourdigital-journal/code/SKILL.md b/custom-skills/03-ourdigital-journal/code/SKILL.md
new file mode 100644
index 0000000..a7f7288
--- /dev/null
+++ b/custom-skills/03-ourdigital-journal/code/SKILL.md
@@ -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=
+```
+
+## 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
+```
diff --git a/custom-skills/03-ourdigital-journal/desktop/SKILL.md b/custom-skills/03-ourdigital-journal/desktop/SKILL.md
new file mode 100644
index 0000000..a3a133d
--- /dev/null
+++ b/custom-skills/03-ourdigital-journal/desktop/SKILL.md
@@ -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
diff --git a/custom-skills/03-ourdigital-journal/docs/CHANGELOG.md b/custom-skills/03-ourdigital-journal/docs/CHANGELOG.md
new file mode 100644
index 0000000..feb6c19
--- /dev/null
+++ b/custom-skills/03-ourdigital-journal/docs/CHANGELOG.md
@@ -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)
diff --git a/custom-skills/03-ourdigital-journal/shared/references/journal-style-guide.md b/custom-skills/03-ourdigital-journal/shared/references/journal-style-guide.md
new file mode 100644
index 0000000..c244a5a
--- /dev/null
+++ b/custom-skills/03-ourdigital-journal/shared/references/journal-style-guide.md
@@ -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?
diff --git a/custom-skills/03-ourdigital-journal/shared/templates/essay-template.md b/custom-skills/03-ourdigital-journal/shared/templates/essay-template.md
new file mode 100644
index 0000000..d81f959
--- /dev/null
+++ b/custom-skills/03-ourdigital-journal/shared/templates/essay-template.md
@@ -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)*
+
+
diff --git a/custom-skills/03-ourdigital-presentation/desktop/SKILL.md b/custom-skills/03-ourdigital-presentation/desktop/SKILL.md
deleted file mode 100644
index 4e04a66..0000000
--- a/custom-skills/03-ourdigital-presentation/desktop/SKILL.md
+++ /dev/null
@@ -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
diff --git a/custom-skills/03-ourdigital-presentation/desktop/skill.yaml b/custom-skills/03-ourdigital-presentation/desktop/skill.yaml
deleted file mode 100644
index 8fb2ee5..0000000
--- a/custom-skills/03-ourdigital-presentation/desktop/skill.yaml
+++ /dev/null
@@ -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
diff --git a/custom-skills/04-ourdigital-research/README.md b/custom-skills/04-ourdigital-research/README.md
new file mode 100644
index 0000000..813995c
--- /dev/null
+++ b/custom-skills/04-ourdigital-research/README.md
@@ -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
diff --git a/custom-skills/01-ourdigital-research/code/CLAUDE.md b/custom-skills/04-ourdigital-research/code/CLAUDE.md
similarity index 100%
rename from custom-skills/01-ourdigital-research/code/CLAUDE.md
rename to custom-skills/04-ourdigital-research/code/CLAUDE.md
diff --git a/custom-skills/04-ourdigital-research/code/SKILL.md b/custom-skills/04-ourdigital-research/code/SKILL.md
new file mode 100644
index 0000000..4a7250e
--- /dev/null
+++ b/custom-skills/04-ourdigital-research/code/SKILL.md
@@ -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
+```
diff --git a/custom-skills/01-ourdigital-research/code/assets/blog-template.md b/custom-skills/04-ourdigital-research/code/assets/blog-template.md
similarity index 100%
rename from custom-skills/01-ourdigital-research/code/assets/blog-template.md
rename to custom-skills/04-ourdigital-research/code/assets/blog-template.md
diff --git a/custom-skills/01-ourdigital-research/code/references/blog-style-guide.md b/custom-skills/04-ourdigital-research/code/references/blog-style-guide.md
similarity index 100%
rename from custom-skills/01-ourdigital-research/code/references/blog-style-guide.md
rename to custom-skills/04-ourdigital-research/code/references/blog-style-guide.md
diff --git a/custom-skills/01-ourdigital-research/code/references/ghost-api-config.md b/custom-skills/04-ourdigital-research/code/references/ghost-api-config.md
similarity index 100%
rename from custom-skills/01-ourdigital-research/code/references/ghost-api-config.md
rename to custom-skills/04-ourdigital-research/code/references/ghost-api-config.md
diff --git a/custom-skills/01-ourdigital-research/code/references/publishing-checklist.md b/custom-skills/04-ourdigital-research/code/references/publishing-checklist.md
similarity index 100%
rename from custom-skills/01-ourdigital-research/code/references/publishing-checklist.md
rename to custom-skills/04-ourdigital-research/code/references/publishing-checklist.md
diff --git a/custom-skills/01-ourdigital-research/code/references/research-frameworks.md b/custom-skills/04-ourdigital-research/code/references/research-frameworks.md
similarity index 100%
rename from custom-skills/01-ourdigital-research/code/references/research-frameworks.md
rename to custom-skills/04-ourdigital-research/code/references/research-frameworks.md
diff --git a/custom-skills/01-ourdigital-research/code/scripts/export_to_ulysses.py b/custom-skills/04-ourdigital-research/code/scripts/export_to_ulysses.py
similarity index 100%
rename from custom-skills/01-ourdigital-research/code/scripts/export_to_ulysses.py
rename to custom-skills/04-ourdigital-research/code/scripts/export_to_ulysses.py
diff --git a/custom-skills/01-ourdigital-research/code/scripts/requirements.txt b/custom-skills/04-ourdigital-research/code/scripts/requirements.txt
similarity index 100%
rename from custom-skills/01-ourdigital-research/code/scripts/requirements.txt
rename to custom-skills/04-ourdigital-research/code/scripts/requirements.txt
diff --git a/custom-skills/04-ourdigital-research/desktop/SKILL.md b/custom-skills/04-ourdigital-research/desktop/SKILL.md
new file mode 100644
index 0000000..156bc80
--- /dev/null
+++ b/custom-skills/04-ourdigital-research/desktop/SKILL.md
@@ -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
diff --git a/custom-skills/01-ourdigital-research/desktop/skill.yaml b/custom-skills/04-ourdigital-research/desktop/skill.yaml
similarity index 100%
rename from custom-skills/01-ourdigital-research/desktop/skill.yaml
rename to custom-skills/04-ourdigital-research/desktop/skill.yaml
diff --git a/custom-skills/04-ourdigital-research/docs/CHANGELOG.md b/custom-skills/04-ourdigital-research/docs/CHANGELOG.md
new file mode 100644
index 0000000..a8634c2
--- /dev/null
+++ b/custom-skills/04-ourdigital-research/docs/CHANGELOG.md
@@ -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)
diff --git a/custom-skills/05-ourdigital-document/README.md b/custom-skills/05-ourdigital-document/README.md
new file mode 100644
index 0000000..3d326c8
--- /dev/null
+++ b/custom-skills/05-ourdigital-document/README.md
@@ -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=
+FIGMA_ACCESS_TOKEN=
+```
+
+## Version
+
+- Current: 1.1.0
+- Author: OurDigital
diff --git a/custom-skills/03-ourdigital-presentation/code/CLAUDE.md b/custom-skills/05-ourdigital-document/code/CLAUDE.md
similarity index 100%
rename from custom-skills/03-ourdigital-presentation/code/CLAUDE.md
rename to custom-skills/05-ourdigital-document/code/CLAUDE.md
diff --git a/custom-skills/05-ourdigital-document/code/SKILL.md b/custom-skills/05-ourdigital-document/code/SKILL.md
new file mode 100644
index 0000000..521bb9e
--- /dev/null
+++ b/custom-skills/05-ourdigital-document/code/SKILL.md
@@ -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
+```
diff --git a/custom-skills/03-ourdigital-presentation/code/assets/brand_config.json b/custom-skills/05-ourdigital-document/code/assets/brand_config.json
similarity index 100%
rename from custom-skills/03-ourdigital-presentation/code/assets/brand_config.json
rename to custom-skills/05-ourdigital-document/code/assets/brand_config.json
diff --git a/custom-skills/03-ourdigital-presentation/code/references/agenda_templates.md b/custom-skills/05-ourdigital-document/code/references/agenda_templates.md
similarity index 100%
rename from custom-skills/03-ourdigital-presentation/code/references/agenda_templates.md
rename to custom-skills/05-ourdigital-document/code/references/agenda_templates.md
diff --git a/custom-skills/03-ourdigital-presentation/code/references/research_patterns.md b/custom-skills/05-ourdigital-document/code/references/research_patterns.md
similarity index 100%
rename from custom-skills/03-ourdigital-presentation/code/references/research_patterns.md
rename to custom-skills/05-ourdigital-document/code/references/research_patterns.md
diff --git a/custom-skills/03-ourdigital-presentation/code/references/slide_layouts.md b/custom-skills/05-ourdigital-document/code/references/slide_layouts.md
similarity index 100%
rename from custom-skills/03-ourdigital-presentation/code/references/slide_layouts.md
rename to custom-skills/05-ourdigital-document/code/references/slide_layouts.md
diff --git a/custom-skills/03-ourdigital-presentation/code/scripts/apply_brand.py b/custom-skills/05-ourdigital-document/code/scripts/apply_brand.py
similarity index 100%
rename from custom-skills/03-ourdigital-presentation/code/scripts/apply_brand.py
rename to custom-skills/05-ourdigital-document/code/scripts/apply_brand.py
diff --git a/custom-skills/03-ourdigital-presentation/code/scripts/extract_notion.py b/custom-skills/05-ourdigital-document/code/scripts/extract_notion.py
similarity index 100%
rename from custom-skills/03-ourdigital-presentation/code/scripts/extract_notion.py
rename to custom-skills/05-ourdigital-document/code/scripts/extract_notion.py
diff --git a/custom-skills/03-ourdigital-presentation/code/scripts/generate_pptx.js b/custom-skills/05-ourdigital-document/code/scripts/generate_pptx.js
similarity index 100%
rename from custom-skills/03-ourdigital-presentation/code/scripts/generate_pptx.js
rename to custom-skills/05-ourdigital-document/code/scripts/generate_pptx.js
diff --git a/custom-skills/03-ourdigital-presentation/code/scripts/requirements.txt b/custom-skills/05-ourdigital-document/code/scripts/requirements.txt
similarity index 100%
rename from custom-skills/03-ourdigital-presentation/code/scripts/requirements.txt
rename to custom-skills/05-ourdigital-document/code/scripts/requirements.txt
diff --git a/custom-skills/03-ourdigital-presentation/code/scripts/run_workflow.py b/custom-skills/05-ourdigital-document/code/scripts/run_workflow.py
similarity index 100%
rename from custom-skills/03-ourdigital-presentation/code/scripts/run_workflow.py
rename to custom-skills/05-ourdigital-document/code/scripts/run_workflow.py
diff --git a/custom-skills/03-ourdigital-presentation/code/scripts/synthesize_content.py b/custom-skills/05-ourdigital-document/code/scripts/synthesize_content.py
similarity index 100%
rename from custom-skills/03-ourdigital-presentation/code/scripts/synthesize_content.py
rename to custom-skills/05-ourdigital-document/code/scripts/synthesize_content.py
diff --git a/custom-skills/05-ourdigital-document/desktop/SKILL.md b/custom-skills/05-ourdigital-document/desktop/SKILL.md
new file mode 100644
index 0000000..f31f260
--- /dev/null
+++ b/custom-skills/05-ourdigital-document/desktop/SKILL.md
@@ -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
diff --git a/custom-skills/05-ourdigital-document/desktop/skill.yaml b/custom-skills/05-ourdigital-document/desktop/skill.yaml
new file mode 100644
index 0000000..873b29a
--- /dev/null
+++ b/custom-skills/05-ourdigital-document/desktop/skill.yaml
@@ -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
diff --git a/custom-skills/05-ourdigital-document/docs/CHANGELOG.md b/custom-skills/05-ourdigital-document/docs/CHANGELOG.md
new file mode 100644
index 0000000..f16eedb
--- /dev/null
+++ b/custom-skills/05-ourdigital-document/docs/CHANGELOG.md
@@ -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
diff --git a/custom-skills/05-ourdigital-document/shared/references/agenda_templates.md b/custom-skills/05-ourdigital-document/shared/references/agenda_templates.md
new file mode 100644
index 0000000..9c0ed54
--- /dev/null
+++ b/custom-skills/05-ourdigital-document/shared/references/agenda_templates.md
@@ -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]
+```
diff --git a/custom-skills/05-ourdigital-document/shared/references/research_patterns.md b/custom-skills/05-ourdigital-document/shared/references/research_patterns.md
new file mode 100644
index 0000000..dcb6adf
--- /dev/null
+++ b/custom-skills/05-ourdigital-document/shared/references/research_patterns.md
@@ -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
+```
diff --git a/custom-skills/05-ourdigital-document/shared/references/slide_layouts.md b/custom-skills/05-ourdigital-document/shared/references/slide_layouts.md
new file mode 100644
index 0000000..5b3b7e5
--- /dev/null
+++ b/custom-skills/05-ourdigital-document/shared/references/slide_layouts.md
@@ -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
diff --git a/custom-skills/06-ourdigital-designer/README.md b/custom-skills/06-ourdigital-designer/README.md
new file mode 100644
index 0000000..a4d30fd
--- /dev/null
+++ b/custom-skills/06-ourdigital-designer/README.md
@@ -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
diff --git a/custom-skills/02-ourdigital-designer/code/CLAUDE.md b/custom-skills/06-ourdigital-designer/code/CLAUDE.md
similarity index 100%
rename from custom-skills/02-ourdigital-designer/code/CLAUDE.md
rename to custom-skills/06-ourdigital-designer/code/CLAUDE.md
diff --git a/custom-skills/06-ourdigital-designer/code/SKILL.md b/custom-skills/06-ourdigital-designer/code/SKILL.md
new file mode 100644
index 0000000..5313a71
--- /dev/null
+++ b/custom-skills/06-ourdigital-designer/code/SKILL.md
@@ -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 |
diff --git a/custom-skills/02-ourdigital-designer/code/references/advanced_techniques.md b/custom-skills/06-ourdigital-designer/code/references/advanced_techniques.md
similarity index 100%
rename from custom-skills/02-ourdigital-designer/code/references/advanced_techniques.md
rename to custom-skills/06-ourdigital-designer/code/references/advanced_techniques.md
diff --git a/custom-skills/02-ourdigital-designer/code/references/color_palettes.md b/custom-skills/06-ourdigital-designer/code/references/color_palettes.md
similarity index 100%
rename from custom-skills/02-ourdigital-designer/code/references/color_palettes.md
rename to custom-skills/06-ourdigital-designer/code/references/color_palettes.md
diff --git a/custom-skills/02-ourdigital-designer/code/references/visual_metaphors.md b/custom-skills/06-ourdigital-designer/code/references/visual_metaphors.md
similarity index 100%
rename from custom-skills/02-ourdigital-designer/code/references/visual_metaphors.md
rename to custom-skills/06-ourdigital-designer/code/references/visual_metaphors.md
diff --git a/custom-skills/02-ourdigital-designer/code/scripts/generate_prompt.py b/custom-skills/06-ourdigital-designer/code/scripts/generate_prompt.py
similarity index 100%
rename from custom-skills/02-ourdigital-designer/code/scripts/generate_prompt.py
rename to custom-skills/06-ourdigital-designer/code/scripts/generate_prompt.py
diff --git a/custom-skills/02-ourdigital-designer/code/scripts/mood_calibrator.py b/custom-skills/06-ourdigital-designer/code/scripts/mood_calibrator.py
similarity index 100%
rename from custom-skills/02-ourdigital-designer/code/scripts/mood_calibrator.py
rename to custom-skills/06-ourdigital-designer/code/scripts/mood_calibrator.py
diff --git a/custom-skills/02-ourdigital-designer/code/scripts/requirements.txt b/custom-skills/06-ourdigital-designer/code/scripts/requirements.txt
similarity index 100%
rename from custom-skills/02-ourdigital-designer/code/scripts/requirements.txt
rename to custom-skills/06-ourdigital-designer/code/scripts/requirements.txt
diff --git a/custom-skills/06-ourdigital-designer/desktop/SKILL.md b/custom-skills/06-ourdigital-designer/desktop/SKILL.md
new file mode 100644
index 0000000..6b8359f
--- /dev/null
+++ b/custom-skills/06-ourdigital-designer/desktop/SKILL.md
@@ -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
diff --git a/custom-skills/06-ourdigital-designer/desktop/skill.yaml b/custom-skills/06-ourdigital-designer/desktop/skill.yaml
new file mode 100644
index 0000000..e1519f4
--- /dev/null
+++ b/custom-skills/06-ourdigital-designer/desktop/skill.yaml
@@ -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
diff --git a/custom-skills/06-ourdigital-designer/docs/CHANGELOG.md b/custom-skills/06-ourdigital-designer/docs/CHANGELOG.md
new file mode 100644
index 0000000..514eaef
--- /dev/null
+++ b/custom-skills/06-ourdigital-designer/docs/CHANGELOG.md
@@ -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
diff --git a/custom-skills/06-ourdigital-designer/shared/references/advanced_techniques.md b/custom-skills/06-ourdigital-designer/shared/references/advanced_techniques.md
new file mode 100644
index 0000000..5462918
--- /dev/null
+++ b/custom-skills/06-ourdigital-designer/shared/references/advanced_techniques.md
@@ -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.
\ No newline at end of file
diff --git a/custom-skills/06-ourdigital-designer/shared/references/color_palettes.md b/custom-skills/06-ourdigital-designer/shared/references/color_palettes.md
new file mode 100644
index 0000000..bee51a6
--- /dev/null
+++ b/custom-skills/06-ourdigital-designer/shared/references/color_palettes.md
@@ -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.
\ No newline at end of file
diff --git a/custom-skills/06-ourdigital-designer/shared/references/visual_metaphors.md b/custom-skills/06-ourdigital-designer/shared/references/visual_metaphors.md
new file mode 100644
index 0000000..80877b5
--- /dev/null
+++ b/custom-skills/06-ourdigital-designer/shared/references/visual_metaphors.md
@@ -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
\ No newline at end of file
diff --git a/custom-skills/07-ourdigital-ad-manager/README.md b/custom-skills/07-ourdigital-ad-manager/README.md
new file mode 100644
index 0000000..67448f3
--- /dev/null
+++ b/custom-skills/07-ourdigital-ad-manager/README.md
@@ -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
diff --git a/custom-skills/07-ourdigital-ad-manager/code/SKILL.md b/custom-skills/07-ourdigital-ad-manager/code/SKILL.md
new file mode 100644
index 0000000..ace6e89
--- /dev/null
+++ b/custom-skills/07-ourdigital-ad-manager/code/SKILL.md
@@ -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 |
diff --git a/custom-skills/07-ourdigital-ad-manager/desktop/SKILL.md b/custom-skills/07-ourdigital-ad-manager/desktop/SKILL.md
new file mode 100644
index 0000000..97a49ae
--- /dev/null
+++ b/custom-skills/07-ourdigital-ad-manager/desktop/SKILL.md
@@ -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
diff --git a/custom-skills/07-ourdigital-ad-manager/desktop/skill.yaml b/custom-skills/07-ourdigital-ad-manager/desktop/skill.yaml
new file mode 100644
index 0000000..7408c17
--- /dev/null
+++ b/custom-skills/07-ourdigital-ad-manager/desktop/skill.yaml
@@ -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
diff --git a/custom-skills/07-ourdigital-ad-manager/docs/CHANGELOG.md b/custom-skills/07-ourdigital-ad-manager/docs/CHANGELOG.md
new file mode 100644
index 0000000..c650d90
--- /dev/null
+++ b/custom-skills/07-ourdigital-ad-manager/docs/CHANGELOG.md
@@ -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`
diff --git a/custom-skills/07-ourdigital-ad-manager/shared/references/ad-copy-formulas.md b/custom-skills/07-ourdigital-ad-manager/shared/references/ad-copy-formulas.md
new file mode 100644
index 0000000..db080d2
--- /dev/null
+++ b/custom-skills/07-ourdigital-ad-manager/shared/references/ad-copy-formulas.md
@@ -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
diff --git a/custom-skills/07-ourdigital-ad-manager/shared/references/platform-specs.md b/custom-skills/07-ourdigital-ad-manager/shared/references/platform-specs.md
new file mode 100644
index 0000000..cdfe13f
--- /dev/null
+++ b/custom-skills/07-ourdigital-ad-manager/shared/references/platform-specs.md
@@ -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
diff --git a/custom-skills/08-ourdigital-trainer/README.md b/custom-skills/08-ourdigital-trainer/README.md
new file mode 100644
index 0000000..64b11aa
--- /dev/null
+++ b/custom-skills/08-ourdigital-trainer/README.md
@@ -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
diff --git a/custom-skills/08-ourdigital-trainer/code/SKILL.md b/custom-skills/08-ourdigital-trainer/code/SKILL.md
new file mode 100644
index 0000000..c8f8a6d
--- /dev/null
+++ b/custom-skills/08-ourdigital-trainer/code/SKILL.md
@@ -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 |
diff --git a/custom-skills/08-ourdigital-trainer/desktop/SKILL.md b/custom-skills/08-ourdigital-trainer/desktop/SKILL.md
new file mode 100644
index 0000000..3ca52ba
--- /dev/null
+++ b/custom-skills/08-ourdigital-trainer/desktop/SKILL.md
@@ -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` - 발표 스타일
diff --git a/custom-skills/08-ourdigital-trainer/desktop/skill.yaml b/custom-skills/08-ourdigital-trainer/desktop/skill.yaml
new file mode 100644
index 0000000..6619326
--- /dev/null
+++ b/custom-skills/08-ourdigital-trainer/desktop/skill.yaml
@@ -0,0 +1,16 @@
+name: ourdigital-trainer
+description: |
+ Training material creation and workshop planning for OurDigital.
+ Activated with "ourdigital" keyword.
+
+ Triggers:
+ - "ourdigital training", "ourdigital 교육"
+ - "ourdigital workshop", "ourdigital 워크샵"
+ - "ourdigital curriculum", "ourdigital 커리큘럼"
+
+allowed-tools:
+ - mcp__plugin_Notion_notion__*
+ - Read
+ - Write
+
+license: Internal-use Only
diff --git a/custom-skills/08-ourdigital-trainer/docs/CHANGELOG.md b/custom-skills/08-ourdigital-trainer/docs/CHANGELOG.md
new file mode 100644
index 0000000..55bd6c7
--- /dev/null
+++ b/custom-skills/08-ourdigital-trainer/docs/CHANGELOG.md
@@ -0,0 +1,25 @@
+# Changelog
+
+All notable changes to ourdigital-trainer will be documented here.
+
+## [1.0.0] - 2026-01-31
+
+### Added
+- Initial skill creation
+- Curriculum design workflow
+- Workshop agenda planning
+- Evaluation framework design
+- Training material templates
+- Activity library reference
+- Desktop and Code versions
+- Standardized directory structure
+
+### Files Created
+- `desktop/SKILL.md` - Desktop workflow
+- `desktop/skill.yaml` - Metadata
+- `code/SKILL.md` - Code version with scripts
+- `shared/references/training-frameworks.md` - Instructional design models
+- `shared/references/activity-library.md` - Engagement activities
+- `shared/templates/workshop-template.md` - Workshop structure
+- `docs/CHANGELOG.md`
+- `README.md`
diff --git a/custom-skills/08-ourdigital-trainer/shared/references/activity-library.md b/custom-skills/08-ourdigital-trainer/shared/references/activity-library.md
new file mode 100644
index 0000000..3daa5a9
--- /dev/null
+++ b/custom-skills/08-ourdigital-trainer/shared/references/activity-library.md
@@ -0,0 +1,206 @@
+# Activity Library
+
+Engagement activities for training and workshops.
+
+## Ice-Breakers
+
+### Quick Starters (5-10 min)
+
+| Activity | Description | Group Size |
+|----------|-------------|------------|
+| **Two Truths One Lie** | 자기소개 + 추측 게임 | 5-20 |
+| **Speed Networking** | 2분씩 짝 교환 대화 | 10-30 |
+| **Word Cloud** | 주제 관련 단어 수집 | Any |
+| **Scale Line-up** | 경험/의견 기준 줄 서기 | 10-30 |
+| **Object Introduction** | 물건으로 자기 소개 | 5-15 |
+
+### Deeper Connection (10-15 min)
+
+| Activity | Description | Group Size |
+|----------|-------------|------------|
+| **Hopes & Fears** | 기대와 우려 공유 | 5-20 |
+| **Common Ground** | 공통점 찾기 게임 | 10-30 |
+| **Expert Interview** | 짝꿍 인터뷰 후 소개 | 10-20 |
+
+## Discussion Formats
+
+### Think-Pair-Share (5-10 min)
+
+```
+1. Think (1-2분): 개인 사고
+2. Pair (2-3분): 짝과 공유
+3. Share (2-3분): 전체 발표
+```
+
+**Best for**: 초기 의견 형성, 참여 유도
+
+### Fishbowl Discussion (20-30 min)
+
+```
+Inner circle: 토론 참여자 (4-6명)
+Outer circle: 관찰자
+빈 의자: 외부에서 참여 희망 시 이동
+```
+
+**Best for**: 심층 토론, 다양한 관점 청취
+
+### World Café (30-45 min)
+
+```
+1. 3-4개 테이블 주제 설정
+2. 라운드별 10-15분 토론
+3. 테이블 이동 (호스트 잔류)
+4. 전체 인사이트 공유
+```
+
+**Best for**: 다양한 주제 탐색, 크로스 아이디어
+
+### Gallery Walk (15-20 min)
+
+```
+1. 그룹별 결과물 벽에 게시
+2. 포스트잇 들고 순회
+3. 피드백/질문 부착
+4. 그룹별 피드백 리뷰
+```
+
+**Best for**: 아이디어 공유, 피드백 수집
+
+## Group Activities
+
+### Case Study Analysis (20-30 min)
+
+**Structure:**
+1. 사례 배포 및 읽기 (5분)
+2. 분석 질문 제시
+3. 소그룹 토론 (10분)
+4. 전체 공유 (10분)
+
+**Design Tips:**
+- 실제 또는 현실적 사례 사용
+- 명확한 분석 프레임 제공
+- 정답 없는 토론 유도
+
+### Role Play / Simulation (15-30 min)
+
+**Structure:**
+1. 시나리오 및 역할 설명 (5분)
+2. 준비 시간 (5분)
+3. 역할극 수행 (5-10분)
+4. 디브리핑 (10분)
+
+**Design Tips:**
+- 실제 업무 상황 반영
+- 관찰자 역할 포함
+- 피드백 프레임 제공
+
+### Jigsaw Method (30-45 min)
+
+```
+Phase 1 - Expert Groups:
+- 각 그룹이 다른 주제 심화 학습
+
+Phase 2 - Mixed Groups:
+- 새 그룹 구성 (각 주제 전문가 1명씩)
+- 서로 가르치기
+
+Phase 3 - Application:
+- 통합 과제 수행
+```
+
+**Best for**: 대량 콘텐츠 분담, 피어 러닝
+
+## Reflection Activities
+
+### One Word Check-out (2-3 min)
+
+```
+오늘 교육을 한 단어로 표현한다면?
+```
+
+### 3-2-1 Reflection (5 min)
+
+```
+3가지 배운 점
+2가지 적용할 점
+1가지 질문
+```
+
+### Start-Stop-Continue (10 min)
+
+```
+Start: 새롭게 시작할 것
+Stop: 그만둘 것
+Continue: 계속할 것
+```
+
+### Plus/Delta (5-10 min)
+
+```
+Plus (+): 잘된 점, 유지할 점
+Delta (Δ): 개선할 점, 변화 필요
+```
+
+## Energizers
+
+### Quick Energy Boosters (2-5 min)
+
+| Activity | How |
+|----------|-----|
+| **Stand & Stretch** | 간단한 스트레칭 리드 |
+| **Quick Poll** | 손들기 또는 이동 투표 |
+| **Partner High-Five** | 파트너와 하이파이브 |
+| **Brain Break Quiz** | 재미있는 상식 퀴즈 |
+
+### Active Movement (5-10 min)
+
+| Activity | How |
+|----------|-----|
+| **Four Corners** | 의견별 코너 이동 |
+| **Human Bingo** | 특징 찾아 빙고 완성 |
+| **Musical Shares** | 음악 멈추면 짝 대화 |
+
+## Assessment Activities
+
+### Quick Knowledge Check
+
+| Method | Duration | Format |
+|--------|----------|--------|
+| **Hand signals** | 1분 | 1-5 손가락 신뢰도 |
+| **Sticky vote** | 2분 | 포스트잇 투표 |
+| **Quick quiz** | 5분 | 객관식 3-5문항 |
+| **Exit ticket** | 3분 | 핵심 1가지 작성 |
+
+### Application Check
+
+| Method | Duration | Format |
+|--------|----------|--------|
+| **Teach-back** | 5분 | 짝에게 설명 |
+| **Mini case** | 10분 | 짧은 시나리오 해결 |
+| **Action plan** | 10분 | 적용 계획 작성 |
+
+## Timing Guidelines
+
+| Session Length | Ice-breaker | Activities | Reflection |
+|----------------|-------------|------------|------------|
+| 2시간 | 5분 | 20분×2 | 5분 |
+| 4시간 | 10분 | 30분×3 | 10분 |
+| 8시간 | 15분 | 45분×4 | 15분 |
+
+## Facilitation Notes
+
+### Managing Discussions
+
+- **Silent first**: 개인 사고 시간 먼저
+- **Time visible**: 타이머 표시
+- **Quiet signal**: 주의 집중 신호 약속
+- **Parking lot**: 벗어난 주제 기록
+
+### Dealing with Challenges
+
+| Challenge | Solution |
+|-----------|----------|
+| 침묵 | 작은 그룹 먼저, 서면 → 구두 |
+| 독점 | 발언 시간 제한, 라운드 로빈 |
+| 이탈 | 파킹랏, 목표 상기 |
+| 저에너지 | 움직임 활동, 휴식 |
diff --git a/custom-skills/08-ourdigital-trainer/shared/references/training-frameworks.md b/custom-skills/08-ourdigital-trainer/shared/references/training-frameworks.md
new file mode 100644
index 0000000..7724a9c
--- /dev/null
+++ b/custom-skills/08-ourdigital-trainer/shared/references/training-frameworks.md
@@ -0,0 +1,169 @@
+# Training Frameworks
+
+Instructional design models and methodologies for effective training.
+
+## ADDIE Model
+
+The foundational instructional design framework.
+
+### Phases
+
+| Phase | Activities | Outputs |
+|-------|------------|---------|
+| **Analysis** | 학습자 분석, 요구 분석, 환경 분석 | 학습 목표, 제약 조건 |
+| **Design** | 학습 전략, 평가 방법, 콘텐츠 구조 | 설계 문서, 스토리보드 |
+| **Development** | 자료 개발, 파일럿 테스트 | 학습 자료, 평가 도구 |
+| **Implementation** | 교육 실행, 퍼실리테이션 | 교육 진행, 피드백 수집 |
+| **Evaluation** | 효과 측정, 개선점 도출 | 평가 보고서, 개선안 |
+
+### Application Tips
+
+1. **Analysis 단계에서 충분한 시간 투자**
+ - 학습자 인터뷰 또는 설문
+ - 현업 관리자 니즈 확인
+ - 기존 역량 수준 파악
+
+2. **Rapid Prototyping 활용**
+ - 전체 개발 전 핵심 모듈 먼저 테스트
+ - 피드백 기반 빠른 수정
+
+## Kirkpatrick's 4 Levels
+
+Training evaluation framework.
+
+### Level 1: Reaction (반응)
+
+**측정 대상**: 참가자 만족도, 교육 관련성
+
+| 질문 영역 | 예시 문항 |
+|-----------|-----------|
+| 전반적 만족 | 전반적으로 교육에 만족하십니까? |
+| 실무 관련성 | 교육 내용이 업무에 도움이 됩니까? |
+| 강사 역량 | 강사의 전문성은 적절했습니까? |
+| 교육 환경 | 교육 환경은 학습에 적합했습니까? |
+
+### Level 2: Learning (학습)
+
+**측정 대상**: 지식, 기술, 태도 변화
+
+| 방법 | 적용 시점 | 비고 |
+|------|-----------|------|
+| Pre-Post Test | 교육 전후 | 지식 증가 측정 |
+| Skill Demo | 교육 중/후 | 실습 역량 확인 |
+| Case Analysis | 교육 후 | 적용 능력 평가 |
+
+### Level 3: Behavior (행동)
+
+**측정 대상**: 현업 적용, 행동 변화
+
+| 방법 | 시점 | 수집 대상 |
+|------|------|-----------|
+| 자기 평가 | 3-6개월 후 | 학습자 |
+| 상사 관찰 | 3-6개월 후 | 관리자 |
+| 동료 피드백 | 3-6개월 후 | 팀원 |
+
+### Level 4: Results (결과)
+
+**측정 대상**: 비즈니스 성과, ROI
+
+| 지표 | 측정 방법 |
+|------|-----------|
+| 생산성 | 업무 처리 시간 변화 |
+| 품질 | 오류율 감소 |
+| 효율성 | 비용 절감 |
+| 고객 만족 | NPS 변화 |
+
+## 70-20-10 Model
+
+Learning blend framework.
+
+| Ratio | Type | Examples |
+|-------|------|----------|
+| **70%** | 경험 학습 | On-the-job, 프로젝트, 도전 과제 |
+| **20%** | 사회적 학습 | 멘토링, 코칭, 피드백, 협업 |
+| **10%** | 형식 학습 | 교육, 워크샵, 이러닝, 독서 |
+
+### Implementation
+
+1. **70% 경험 학습 설계**
+ - 교육 후 즉시 적용 과제 부여
+ - 실제 프로젝트와 연계
+ - 도전적 과제로 stretch
+
+2. **20% 사회적 학습 촉진**
+ - 학습 파트너 지정
+ - 피드백 세션 예약
+ - 커뮤니티 참여 독려
+
+3. **10% 형식 학습 효율화**
+ - 핵심 개념에 집중
+ - 마이크로러닝 활용
+ - 필요 시점 학습 (Just-in-time)
+
+## Bloom's Taxonomy
+
+Learning objective levels.
+
+### Cognitive Domain (인지 영역)
+
+| Level | 동사 예시 | 활동 유형 |
+|-------|-----------|-----------|
+| **Remember** | 정의하다, 나열하다, 암기하다 | 퀴즈, 플래시카드 |
+| **Understand** | 설명하다, 요약하다, 해석하다 | 토론, 사례 분석 |
+| **Apply** | 적용하다, 사용하다, 실행하다 | 실습, 시뮬레이션 |
+| **Analyze** | 분석하다, 비교하다, 구분하다 | 케이스 스터디, 진단 |
+| **Evaluate** | 평가하다, 판단하다, 비평하다 | 피어 리뷰, 디브리핑 |
+| **Create** | 설계하다, 개발하다, 구성하다 | 프로젝트, 프로토타입 |
+
+### Writing Learning Objectives
+
+**SMART 형식:**
+```
+교육 종료 후 학습자는 [조건]에서 [동사] + [대상]을 [기준]으로 수행할 수 있다.
+```
+
+**예시:**
+- "교육 종료 후 학습자는 GTM 컨테이너에서 3가지 이상의 태그를 독립적으로 설정할 수 있다."
+- "워크샵 종료 후 참가자는 주어진 데이터셋에서 핵심 인사이트 3개를 10분 내에 도출할 수 있다."
+
+## Gagne's Nine Events
+
+Instructional sequence for effective learning.
+
+| # | Event | 적용 방법 |
+|---|-------|-----------|
+| 1 | Gain attention | 흥미로운 질문, 놀라운 통계, 영상 |
+| 2 | Inform objectives | 학습 목표 명시적 공유 |
+| 3 | Stimulate recall | 사전 지식 활성화 질문 |
+| 4 | Present content | 체계적 내용 전달 |
+| 5 | Provide guidance | 예시, 비유, 시각자료 |
+| 6 | Elicit performance | 연습, 실습 기회 |
+| 7 | Provide feedback | 즉각적, 구체적 피드백 |
+| 8 | Assess performance | 학습 달성도 평가 |
+| 9 | Enhance retention | 요약, 적용 과제, 리소스 |
+
+## Adult Learning Principles (Andragogy)
+
+Knowles' principles for adult learners.
+
+| Principle | Training Design 적용 |
+|-----------|---------------------|
+| **Self-direction** | 선택권 부여, 자기 주도 활동 |
+| **Experience** | 경험 공유, 사례 기반 학습 |
+| **Relevance** | 실무 연계, 즉시 적용 가능성 |
+| **Problem-centered** | 문제 해결 중심 설계 |
+| **Internal motivation** | 내적 동기 자극, 성장 기회 |
+
+### Practical Applications
+
+1. **존중하는 분위기 조성**
+ - 경험 인정 및 활용
+ - 토론과 질문 환영
+
+2. **선택과 자율성 제공**
+ - 활동 옵션 제시
+ - 자기 주도 학습 시간
+
+3. **즉각적 적용 기회**
+ - 현업 과제와 연계
+ - 교육 중 실습
diff --git a/custom-skills/09-ourdigital-backoffice/README.md b/custom-skills/09-ourdigital-backoffice/README.md
new file mode 100644
index 0000000..8c695ea
--- /dev/null
+++ b/custom-skills/09-ourdigital-backoffice/README.md
@@ -0,0 +1,86 @@
+# OurDigital Backoffice
+
+Business document creation for OurDigital consulting services.
+
+## Purpose
+
+Generate professional business documents:
+- Quotes and estimates (견적서)
+- Service proposals (제안서)
+- Contract drafts (계약서 초안)
+- Cost-benefit analysis (비용 분석)
+
+## Activation
+
+Only activates with "ourdigital" keyword:
+- "ourdigital 견적서 작성해줘"
+- "ourdigital proposal for [client]"
+- "ourdigital cost analysis"
+
+## Important Notice
+
+⚠️ **Legal Disclaimer**: Contract drafts require professional legal review before use.
+
+## Structure
+
+```
+09-ourdigital-backoffice/
+├── code/
+│ ├── SKILL.md
+│ └── scripts/
+│ ├── generate_quote.py
+│ ├── create_proposal.py
+│ ├── cost_analysis.py
+│ └── export_document.py
+├── desktop/
+│ ├── SKILL.md
+│ └── skill.yaml
+├── shared/
+│ ├── references/
+│ │ └── pricing-guide.md
+│ └── templates/
+│ ├── quote-template.md
+│ ├── proposal-template.md
+│ └── contract-template.md
+├── docs/
+│ └── CHANGELOG.md
+└── README.md
+```
+
+## Document Types
+
+| Type | Purpose | Turnaround |
+|------|---------|------------|
+| Quote | Pricing summary | Immediate |
+| Proposal | Detailed offering | 1-2 days |
+| Contract | Legal agreement | Requires review |
+| Cost Analysis | ROI justification | 1 day |
+
+## Service Catalog
+
+### SEO Services
+- Technical Audit: 300-500만원
+- Monthly SEO: 150-300만원/월
+- Local SEO: 100-200만원/월
+
+### Data & Analytics
+- GTM Setup: 200-400만원
+- GA4 Implementation: 150-300만원
+- Dashboard Development: 300-600만원
+
+### Consulting & Training
+- Brand Consulting: 500-1000만원
+- Marketing Strategy: 300-700만원
+- Workshop: 100-200만원/회
+
+## Integration
+
+Works with:
+- `01-ourdigital-brand-guide` - Document styling
+- `05-ourdigital-document` - Presentation format
+- Google Docs, Word export
+
+## Version
+
+- Current: 1.0.0
+- Author: OurDigital
diff --git a/custom-skills/09-ourdigital-backoffice/code/SKILL.md b/custom-skills/09-ourdigital-backoffice/code/SKILL.md
new file mode 100644
index 0000000..3fe1691
--- /dev/null
+++ b/custom-skills/09-ourdigital-backoffice/code/SKILL.md
@@ -0,0 +1,167 @@
+---
+name: ourdigital-backoffice
+description: |
+ Business document creation for OurDigital consulting services.
+ Activated with "ourdigital" keyword.
+
+ Triggers:
+ - "ourdigital quote", "ourdigital 견적서"
+ - "ourdigital proposal", "ourdigital 제안서"
+
+ Features:
+ - Template-based document generation
+ - Cost calculation automation
+ - Document export
+version: "1.0"
+author: OurDigital
+environment: Code
+---
+
+# OurDigital Backoffice (Code)
+
+Automated business document generation with script support.
+
+## Activation
+
+Only with "ourdigital" keyword:
+- "ourdigital 견적서 [서비스]"
+- "ourdigital proposal [client]"
+
+## Quick Start
+
+```bash
+# Generate quote
+python code/scripts/generate_quote.py \
+ --client "ABC Company" \
+ --services "seo_audit,gtm_setup" \
+ --output quote.md
+
+# Create proposal
+python code/scripts/create_proposal.py \
+ --client "XYZ Corp" \
+ --project "마케팅 자동화" \
+ --duration "3months"
+
+# Cost analysis
+python code/scripts/cost_analysis.py \
+ --project "GTM 구축" \
+ --investment 5000000 \
+ --period 12months
+```
+
+## Scripts
+
+| Script | Purpose |
+|--------|---------|
+| `generate_quote.py` | Create quotes with pricing |
+| `create_proposal.py` | Build service proposals |
+| `cost_analysis.py` | ROI and cost-benefit |
+| `export_document.py` | Export to PDF/DOCX |
+
+## Quote Generation
+
+```bash
+# Single service
+python code/scripts/generate_quote.py \
+ --client "Client Name" \
+ --services "seo_audit" \
+ --output quote.md
+
+# Multiple services
+python code/scripts/generate_quote.py \
+ --client "Client Name" \
+ --services "seo_audit,gtm_setup,dashboard" \
+ --discount 10
+```
+
+## Service Codes
+
+| Code | Service | Base Price |
+|------|---------|------------|
+| `seo_audit` | SEO Technical Audit | 4,000,000 |
+| `seo_monthly` | SEO Monthly | 2,000,000/월 |
+| `gtm_setup` | GTM Setup | 3,000,000 |
+| `ga4_setup` | GA4 Implementation | 2,000,000 |
+| `dashboard` | Dashboard Dev | 4,000,000 |
+| `consulting` | Consulting Day | 1,500,000/일 |
+| `workshop` | Workshop | 1,500,000/회 |
+
+## Proposal Generation
+
+```bash
+# Standard proposal
+python code/scripts/create_proposal.py \
+ --client "XYZ Corp" \
+ --project "데이터 분석 환경 구축" \
+ --duration "2months" \
+ --services "gtm_setup,ga4_setup,dashboard"
+
+# With custom sections
+python code/scripts/create_proposal.py \
+ --client "ABC Company" \
+ --template custom \
+ --input requirements.json
+```
+
+## Cost Analysis
+
+```bash
+# ROI calculation
+python code/scripts/cost_analysis.py \
+ --project "마케팅 자동화" \
+ --investment 10000000 \
+ --annual_benefit 5000000 \
+ --period 36months
+
+# Comparison analysis
+python code/scripts/cost_analysis.py \
+ --compare "inhouse,outsource,hybrid" \
+ --period 12months
+```
+
+## Output Formats
+
+```bash
+# Markdown (default)
+python code/scripts/generate_quote.py --format markdown
+
+# PDF export
+python code/scripts/export_document.py \
+ --input quote.md \
+ --format pdf
+
+# Word export
+python code/scripts/export_document.py \
+ --input proposal.md \
+ --format docx
+```
+
+## File Structure
+
+```
+09-ourdigital-backoffice/
+├── code/
+│ ├── SKILL.md
+│ └── scripts/
+│ ├── generate_quote.py
+│ ├── create_proposal.py
+│ ├── cost_analysis.py
+│ └── export_document.py
+├── desktop/SKILL.md
+├── shared/
+│ ├── references/
+│ │ └── pricing-guide.md
+│ └── templates/
+│ ├── quote-template.md
+│ ├── proposal-template.md
+│ └── contract-template.md
+└── docs/CHANGELOG.md
+```
+
+## Quick Commands
+
+| Command | Action |
+|---------|--------|
+| "ourdigital 견적서 [서비스]" | Generate quote |
+| "ourdigital proposal [client]" | Create proposal |
+| "ourdigital 비용 분석 [project]" | Cost-benefit analysis |
diff --git a/custom-skills/09-ourdigital-backoffice/desktop/SKILL.md b/custom-skills/09-ourdigital-backoffice/desktop/SKILL.md
new file mode 100644
index 0000000..02af8ab
--- /dev/null
+++ b/custom-skills/09-ourdigital-backoffice/desktop/SKILL.md
@@ -0,0 +1,231 @@
+---
+name: ourdigital-backoffice
+description: |
+ Business document creation for OurDigital consulting services.
+ Activated with "ourdigital" keyword for business documents.
+
+ Triggers (ourdigital or our prefix):
+ - "ourdigital quote", "our quote"
+ - "ourdigital 견적서", "our 견적서"
+ - "ourdigital proposal", "our proposal"
+ - "ourdigital 비용 분석", "our 비용 분석"
+
+ Features:
+ - Quote/estimate generation
+ - Service proposal creation
+ - Contract draft (requires legal review)
+ - Cost-benefit analysis
+version: "1.0"
+author: OurDigital
+environment: Desktop
+---
+
+# OurDigital Backoffice
+
+Create business documents for OurDigital consulting services.
+
+## Activation
+
+Activate with "ourdigital" or "our" prefix:
+- "ourdigital 견적서" / "our 견적서"
+- "ourdigital proposal" / "our proposal"
+- "our cost analysis [project]"
+
+## Important Notice
+
+⚠️ **Legal Disclaimer**: Contract drafts require professional legal review before use. This skill provides templates and structure only.
+
+## Document Types
+
+### 1. Quote/Estimate (견적서)
+
+**Purpose**: Service pricing and scope summary
+
+**Structure:**
+```
+견적서 번호: OD-YYYY-NNN
+발행일: YYYY-MM-DD
+유효기간: 30일
+
+1. 고객 정보
+ - 회사명, 담당자, 연락처
+
+2. 서비스 개요
+ - 프로젝트명
+ - 서비스 범위 요약
+
+3. 세부 항목
+ | 항목 | 상세 | 수량 | 단가 | 금액 |
+ |------|------|------|------|------|
+
+4. 합계
+ - 소계, VAT, 총액
+
+5. 결제 조건
+ - 선금/잔금 비율
+ - 결제 방법
+
+6. 특이사항
+ - 포함/미포함 사항
+```
+
+### 2. Service Proposal (서비스 제안서)
+
+**Purpose**: Detailed service offering and value proposition
+
+**Structure:**
+```
+1. Executive Summary
+ - 핵심 제안 1-2문단
+
+2. 고객 상황 이해
+ - 현재 과제
+ - 니즈 분석
+
+3. 제안 서비스
+ - 서비스 범위
+ - 접근 방법
+ - 예상 산출물
+
+4. 프로젝트 계획
+ - 일정표
+ - 마일스톤
+ - 체크포인트
+
+5. 투입 리소스
+ - 담당자 프로필
+ - 역할 분담
+
+6. 비용 및 조건
+ - 비용 구조
+ - 결제 조건
+
+7. 기대 효과
+ - 예상 성과
+ - ROI 추정
+
+8. 왜 OurDigital인가
+ - 차별점
+ - 관련 경험
+```
+
+### 3. Contract Draft (계약서 초안)
+
+**Purpose**: Service agreement framework
+
+⚠️ **반드시 법률 전문가 검토 필요**
+
+**Structure:**
+```
+제1조 (목적)
+제2조 (용어의 정의)
+제3조 (계약 기간)
+제4조 (서비스 범위)
+제5조 (대금 및 지급 조건)
+제6조 (권리와 의무)
+제7조 (비밀유지)
+제8조 (지적재산권)
+제9조 (계약의 해지)
+제10조 (손해배상)
+제11조 (분쟁 해결)
+제12조 (일반 조항)
+```
+
+### 4. Cost-Benefit Analysis (비용 분석)
+
+**Purpose**: ROI and investment justification
+
+**Structure:**
+```
+1. 프로젝트 개요
+ - 목적 및 범위
+
+2. 비용 분석
+ | 항목 | 초기비용 | 연간비용 | 3년 TCO |
+
+3. 예상 효과
+ | 효과 | 정량적 가치 | 연간 효과 |
+
+4. ROI 계산
+ - 투자회수기간
+ - NPV, IRR
+
+5. 리스크 분석
+ - 잠재 리스크
+ - 완화 방안
+
+6. 권장 사항
+```
+
+## Service Catalog
+
+OurDigital standard service offerings:
+
+### SEO Services
+
+| Service | Description | Duration | Price Range |
+|---------|-------------|----------|-------------|
+| Technical Audit | 기술 SEO 진단 | 1-2주 | 300-500만원 |
+| On-Page Optimization | 콘텐츠 최적화 | 월간 | 150-300만원/월 |
+| Local SEO | 로컬 검색 최적화 | 월간 | 100-200만원/월 |
+
+### Data & Analytics
+
+| Service | Description | Duration | Price Range |
+|---------|-------------|----------|-------------|
+| GTM Setup | 태그 관리 구축 | 2-4주 | 200-400만원 |
+| GA4 Implementation | 분석 환경 구축 | 1-3주 | 150-300만원 |
+| Dashboard Development | 대시보드 개발 | 2-4주 | 300-600만원 |
+
+### Consulting
+
+| Service | Description | Duration | Price Range |
+|---------|-------------|----------|-------------|
+| Brand Consulting | 브랜드 전략 | 프로젝트 | 500-1000만원 |
+| Marketing Strategy | 마케팅 전략 | 프로젝트 | 300-700만원 |
+| Data Strategy | 데이터 전략 | 프로젝트 | 400-800만원 |
+
+### Training
+
+| Service | Description | Duration | Price Range |
+|---------|-------------|----------|-------------|
+| Workshop | 반일/전일 워크샵 | 4-8시간 | 100-200만원 |
+| Corporate Training | 기업 교육 | 다회차 | 50-100만원/회 |
+
+## Quick Commands
+
+| Command | Action |
+|---------|--------|
+| "ourdigital 견적서 [서비스]" | Generate quote |
+| "ourdigital proposal [client]" | Create proposal |
+| "ourdigital 계약서 초안" | Contract template |
+| "ourdigital 비용 분석 [project]" | Cost-benefit analysis |
+
+## Workflow
+
+### Phase 1: Requirement Gathering
+
+- Client information
+- Service scope
+- Timeline requirements
+- Budget constraints
+
+### Phase 2: Document Generation
+
+- Select appropriate template
+- Fill with gathered information
+- Apply OurDigital branding
+
+### Phase 3: Review & Finalize
+
+- Internal review
+- Client discussion points highlight
+- Legal review (for contracts)
+
+## References
+
+- `shared/templates/quote-template.md` - 견적서 양식
+- `shared/templates/proposal-template.md` - 제안서 양식
+- `shared/templates/contract-template.md` - 계약서 양식
+- `shared/references/pricing-guide.md` - 가격 가이드
+- `01-ourdigital-brand-guide` - 문서 스타일
diff --git a/custom-skills/09-ourdigital-backoffice/desktop/skill.yaml b/custom-skills/09-ourdigital-backoffice/desktop/skill.yaml
new file mode 100644
index 0000000..3430f38
--- /dev/null
+++ b/custom-skills/09-ourdigital-backoffice/desktop/skill.yaml
@@ -0,0 +1,15 @@
+name: ourdigital-backoffice
+description: |
+ Business document creation for OurDigital consulting services.
+ Activated with "ourdigital" keyword.
+
+ Triggers:
+ - "ourdigital quote", "ourdigital 견적서"
+ - "ourdigital proposal", "ourdigital 제안서"
+ - "ourdigital contract", "ourdigital 계약서"
+
+allowed-tools:
+ - Read
+ - Write
+
+license: Internal-use Only
diff --git a/custom-skills/09-ourdigital-backoffice/docs/CHANGELOG.md b/custom-skills/09-ourdigital-backoffice/docs/CHANGELOG.md
new file mode 100644
index 0000000..31e7a90
--- /dev/null
+++ b/custom-skills/09-ourdigital-backoffice/docs/CHANGELOG.md
@@ -0,0 +1,26 @@
+# Changelog
+
+All notable changes to ourdigital-backoffice will be documented here.
+
+## [1.0.0] - 2026-01-31
+
+### Added
+- Initial skill creation
+- Quote generation workflow
+- Service proposal creation
+- Contract draft template (with legal disclaimer)
+- Cost-benefit analysis framework
+- Service catalog with pricing
+- Desktop and Code versions
+- Standardized directory structure
+
+### Files Created
+- `desktop/SKILL.md` - Desktop workflow
+- `desktop/skill.yaml` - Metadata
+- `code/SKILL.md` - Code version with scripts
+- `shared/references/pricing-guide.md` - Service pricing
+- `shared/templates/quote-template.md` - Quote format
+- `shared/templates/proposal-template.md` - Proposal format
+- `shared/templates/contract-template.md` - Contract format
+- `docs/CHANGELOG.md`
+- `README.md`
diff --git a/custom-skills/09-ourdigital-backoffice/shared/references/pricing-guide.md b/custom-skills/09-ourdigital-backoffice/shared/references/pricing-guide.md
new file mode 100644
index 0000000..24fcf6e
--- /dev/null
+++ b/custom-skills/09-ourdigital-backoffice/shared/references/pricing-guide.md
@@ -0,0 +1,214 @@
+# Pricing Guide
+
+OurDigital service pricing and estimation guidelines.
+
+## Pricing Philosophy
+
+- **Value-based pricing**: 성과와 가치 기반
+- **Transparency**: 명확한 범위와 산출물
+- **Flexibility**: 고객 상황에 맞는 옵션
+
+## Service Categories
+
+### 1. SEO Services
+
+#### Technical SEO Audit
+
+| Scope | Duration | Price |
+|-------|----------|-------|
+| Small (50 pages) | 1주 | 300만원 |
+| Medium (200 pages) | 2주 | 400만원 |
+| Large (500+ pages) | 3주 | 500-700만원 |
+
+**Includes:**
+- Crawl analysis
+- Technical issue identification
+- Priority action plan
+- Implementation guidance
+
+#### Monthly SEO Management
+
+| Tier | Activities | Price/월 |
+|------|------------|----------|
+| Basic | Monitoring, reporting | 150만원 |
+| Standard | + Content optimization | 250만원 |
+| Premium | + Link building strategy | 350만원 |
+
+**Minimum commitment**: 3개월
+
+#### Local SEO
+
+| Scope | Price/월 |
+|-------|----------|
+| Single location | 100만원 |
+| Multi-location (2-5) | 150만원 |
+| Enterprise (5+) | 협의 |
+
+### 2. Data & Analytics
+
+#### GTM Implementation
+
+| Complexity | Duration | Price |
+|------------|----------|-------|
+| Basic (5-10 tags) | 1주 | 200만원 |
+| Standard (20-30 tags) | 2주 | 300만원 |
+| Complex (50+ tags) | 3-4주 | 400-600만원 |
+
+**Includes:**
+- Tag architecture design
+- Implementation
+- QA testing
+- Documentation
+
+#### GA4 Setup
+
+| Scope | Duration | Price |
+|-------|----------|-------|
+| Basic setup | 3-5일 | 150만원 |
+| Enhanced (e-commerce) | 1-2주 | 250만원 |
+| Enterprise | 2-3주 | 350-500만원 |
+
+#### Dashboard Development
+
+| Type | Platform | Price |
+|------|----------|-------|
+| Standard | Looker Studio | 300만원 |
+| Custom | Tableau/Power BI | 400-600만원 |
+| Executive | Custom design | 500-800만원 |
+
+**Maintenance**: 50만원/월 (optional)
+
+### 3. Consulting Services
+
+#### Brand Consulting
+
+| Engagement | Duration | Price |
+|------------|----------|-------|
+| Brand audit | 2주 | 300만원 |
+| Brand strategy | 4-6주 | 500-700만원 |
+| Full rebrand | 8-12주 | 800-1500만원 |
+
+#### Marketing Strategy
+
+| Scope | Duration | Price |
+|-------|----------|-------|
+| Channel strategy | 2주 | 300만원 |
+| Full marketing plan | 4주 | 500만원 |
+| Annual roadmap | 6주 | 700만원 |
+
+#### Data Strategy
+
+| Focus | Duration | Price |
+|-------|----------|-------|
+| Assessment | 2주 | 300만원 |
+| Strategy development | 4주 | 500만원 |
+| Implementation roadmap | 6주 | 700만원 |
+
+### 4. Training Services
+
+#### Workshops
+
+| Format | Duration | Price |
+|--------|----------|-------|
+| Half-day | 4시간 | 100만원 |
+| Full-day | 8시간 | 180만원 |
+| 2-day intensive | 16시간 | 300만원 |
+
+**Includes:**
+- Customized content
+- Materials
+- Follow-up resources
+
+#### Corporate Training
+
+| Package | Sessions | Price |
+|---------|----------|-------|
+| Starter | 4회 | 300만원 |
+| Standard | 8회 | 550만원 |
+| Premium | 12회 | 750만원 |
+
+**Per session**: 1.5-2시간
+
+## Pricing Modifiers
+
+### Discounts
+
+| Condition | Discount |
+|-----------|----------|
+| Annual contract | 10-15% |
+| Bundle (3+ services) | 10% |
+| Referral client | 5% |
+| Non-profit | 20% |
+
+### Surcharges
+
+| Condition | Adjustment |
+|-----------|------------|
+| Rush delivery (<50% normal) | +30% |
+| Weekend/Holiday work | +50% |
+| After-hours support | +25% |
+| International | +Travel costs |
+
+## Payment Terms
+
+### Standard Terms
+
+| Milestone | Payment |
+|-----------|---------|
+| Contract signing | 50% |
+| Mid-project | 25% (optional) |
+| Completion | 50% (or 25%) |
+
+### Monthly Services
+
+- 월초 선불
+- 자동이체 할인 (5%)
+
+### Large Projects (>10M)
+
+- 협의 기반 마일스톤 지급
+- 최대 4회 분할
+
+## Quote Calculation
+
+### Formula
+
+```
+Base Price
++ Scope Adjustments (complexity, size)
++ Rush Fee (if applicable)
+- Discounts (bundle, annual, etc.)
+= Subtotal
++ VAT (10%)
+= Total
+```
+
+### Example
+
+```
+GTM Implementation (Standard): 3,000,000
++ Complex integrations: +500,000
++ Rush delivery (2주→1주): +900,000
+- Annual contract discount: -440,000
+= Subtotal: 3,960,000
++ VAT (10%): 396,000
+= Total: 4,356,000원
+```
+
+## Validity & Updates
+
+- 견적 유효기간: 30일
+- 가격표 갱신: 분기별 검토
+- 특별 프로모션: 별도 공지
+
+## Competitor Reference
+
+For competitive positioning:
+
+| Service | OurDigital | Market Range |
+|---------|------------|--------------|
+| SEO Audit | 300-500만 | 200-800만 |
+| GTM Setup | 200-400만 | 150-600만 |
+| Workshop | 100-180만 | 80-300만 |
+
+**Positioning**: Premium quality, mid-high price range
diff --git a/custom-skills/09-ourdigital-backoffice/shared/templates/proposal-template.md b/custom-skills/09-ourdigital-backoffice/shared/templates/proposal-template.md
new file mode 100644
index 0000000..cbf840d
--- /dev/null
+++ b/custom-skills/09-ourdigital-backoffice/shared/templates/proposal-template.md
@@ -0,0 +1,240 @@
+# 서비스 제안서 Template
+
+```markdown
+---
+문서번호: OD-PROP-YYYY-NNN
+작성일: YYYY-MM-DD
+버전: 1.0
+---
+
+# [프로젝트명] 제안서
+
+**고객사**: [고객사명]
+**제출일**: YYYY년 MM월 DD일
+**제출**: OurDigital
+
+---
+
+## Executive Summary
+
+[고객사]의 [과제/목표]를 해결하기 위해, OurDigital은 [핵심 솔루션]을 제안드립니다.
+
+본 프로젝트를 통해:
+- [기대 효과 1]
+- [기대 효과 2]
+- [기대 효과 3]
+
+을 달성할 수 있습니다.
+
+---
+
+## 1. 고객 상황 이해
+
+### 1.1 현재 상황
+
+[고객사의 현재 상황에 대한 이해]
+
+### 1.2 핵심 과제
+
+| 과제 | 상세 | 영향도 |
+|------|------|--------|
+| [과제1] | [설명] | High |
+| [과제2] | [설명] | Medium |
+| [과제3] | [설명] | Medium |
+
+### 1.3 프로젝트 목표
+
+1. [목표 1]
+2. [목표 2]
+3. [목표 3]
+
+---
+
+## 2. 제안 서비스
+
+### 2.1 서비스 개요
+
+[서비스에 대한 전체적인 설명]
+
+### 2.2 서비스 범위
+
+| 영역 | 포함 내용 | 산출물 |
+|------|----------|--------|
+| [영역1] | [내용] | [산출물] |
+| [영역2] | [내용] | [산출물] |
+| [영역3] | [내용] | [산출물] |
+
+### 2.3 접근 방법
+
+**Phase 1: [단계명]** (Week 1-2)
+- [활동 1]
+- [활동 2]
+
+**Phase 2: [단계명]** (Week 3-4)
+- [활동 1]
+- [활동 2]
+
+**Phase 3: [단계명]** (Week 5-6)
+- [활동 1]
+- [활동 2]
+
+---
+
+## 3. 프로젝트 계획
+
+### 3.1 일정표
+
+```
+Week 1 ████░░░░░░░░ Phase 1: 착수
+Week 2 ████████░░░░ Phase 1: 분석
+Week 3 ░░░░████░░░░ Phase 2: 설계
+Week 4 ░░░░████████ Phase 2: 개발
+Week 5 ░░░░░░░░████ Phase 3: 테스트
+Week 6 ░░░░░░░░░░██ Phase 3: 완료
+```
+
+### 3.2 마일스톤
+
+| 마일스톤 | 일정 | 산출물 |
+|----------|------|--------|
+| 킥오프 | Week 1 | 프로젝트 헌장 |
+| 중간 점검 | Week 3 | 중간 보고서 |
+| 최종 납품 | Week 6 | 최종 산출물 |
+
+### 3.3 의사소통 계획
+
+| 유형 | 빈도 | 참석자 | 방식 |
+|------|------|--------|------|
+| 주간 리포트 | 주 1회 | PM | 이메일 |
+| 진행 미팅 | 격주 | 양사 담당자 | 화상/대면 |
+| 이슈 협의 | 수시 | 관련자 | 메신저 |
+
+---
+
+## 4. 투입 리소스
+
+### 4.1 프로젝트 팀
+
+| 역할 | 담당자 | 투입률 | 주요 책임 |
+|------|--------|--------|-----------|
+| PM | [이름] | 50% | 전체 관리 |
+| 전문가 | [이름] | 100% | 실무 수행 |
+| QA | [이름] | 30% | 품질 관리 |
+
+### 4.2 담당자 프로필
+
+**[담당자명]** - [역할]
+- [경력 요약]
+- [관련 프로젝트 경험]
+- [보유 자격/스킬]
+
+---
+
+## 5. 비용 및 조건
+
+### 5.1 프로젝트 비용
+
+| 항목 | 금액 | 비고 |
+|------|------|------|
+| [서비스1] | ₩0,000,000 | |
+| [서비스2] | ₩0,000,000 | |
+| **소계** | ₩0,000,000 | |
+| 부가세 (10%) | ₩000,000 | |
+| **총액** | ₩0,000,000 | |
+
+### 5.2 결제 조건
+
+| 시점 | 비율 | 금액 |
+|------|------|------|
+| 계약 시 | 50% | ₩0,000,000 |
+| 완료 시 | 50% | ₩0,000,000 |
+
+### 5.3 계약 조건
+
+- 계약 기간: YYYY.MM.DD ~ YYYY.MM.DD
+- 하자보수: 납품 후 1개월
+- 비밀유지: 상호 비밀유지 의무
+
+---
+
+## 6. 기대 효과
+
+### 6.1 정량적 효과
+
+| 지표 | 현재 | 목표 | 개선율 |
+|------|------|------|--------|
+| [지표1] | [현재값] | [목표값] | +00% |
+| [지표2] | [현재값] | [목표값] | +00% |
+
+### 6.2 정성적 효과
+
+- [정성적 효과 1]
+- [정성적 효과 2]
+- [정성적 효과 3]
+
+### 6.3 ROI 추정
+
+| 항목 | 금액/연 |
+|------|---------|
+| 예상 효과 | ₩00,000,000 |
+| 투자 비용 | ₩0,000,000 |
+| **ROI** | **000%** |
+
+투자회수기간: 약 N개월
+
+---
+
+## 7. 왜 OurDigital인가
+
+### 7.1 차별화 포인트
+
+1. **[강점 1]**: [설명]
+2. **[강점 2]**: [설명]
+3. **[강점 3]**: [설명]
+
+### 7.2 관련 경험
+
+| 고객사 | 프로젝트 | 성과 |
+|--------|----------|------|
+| [고객1] | [프로젝트] | [성과] |
+| [고객2] | [프로젝트] | [성과] |
+
+### 7.3 OurDigital 소개
+
+OurDigital은 Data Intelligence 전문 기업 D.intelligence의 컨설팅 브랜드입니다.
+
+- **전문 영역**: SEO, Data Analytics, Brand Marketing
+- **철학**: "사람, 디지털, 그리고 문화"
+- **강점**: 기술과 비즈니스의 균형 잡힌 시각
+
+---
+
+## 8. 다음 단계
+
+1. 제안서 검토 및 피드백
+2. 상세 협의 미팅
+3. 계약 체결
+4. 프로젝트 착수
+
+### 연락처
+
+**OurDigital**
+- 담당: [이름]
+- 이메일: [email]
+- 전화: [phone]
+
+---
+
+**OurDigital**
+*사람, 디지털, 그리고 문화*
+www.ourdigital.org
+```
+
+## Template Variables
+
+| Variable | Description |
+|----------|-------------|
+| `[고객사명]` | 고객사 이름 |
+| `[프로젝트명]` | 프로젝트 제목 |
+| `[과제]` | 해결할 비즈니스 과제 |
+| `[핵심 솔루션]` | 제안하는 솔루션 요약 |
diff --git a/custom-skills/09-ourdigital-backoffice/shared/templates/quote-template.md b/custom-skills/09-ourdigital-backoffice/shared/templates/quote-template.md
new file mode 100644
index 0000000..54b2584
--- /dev/null
+++ b/custom-skills/09-ourdigital-backoffice/shared/templates/quote-template.md
@@ -0,0 +1,145 @@
+# 견적서 Template
+
+```markdown
+---
+문서번호: OD-QUOTE-YYYY-NNN
+발행일: YYYY-MM-DD
+유효기간: 30일
+---
+
+# 견적서
+
+## 1. 발신/수신 정보
+
+### 발신
+| 항목 | 내용 |
+|------|------|
+| 상호 | OurDigital (D.intelligence) |
+| 대표 | Andrew Yim |
+| 연락처 | contact@ourdigital.org |
+
+### 수신
+| 항목 | 내용 |
+|------|------|
+| 회사명 | [고객사명] |
+| 담당자 | [담당자명] |
+| 연락처 | [이메일/전화] |
+
+---
+
+## 2. 프로젝트 개요
+
+### 프로젝트명
+[프로젝트명]
+
+### 서비스 범위 요약
+[1-2문장 요약]
+
+---
+
+## 3. 견적 상세
+
+### 서비스 항목
+
+| # | 항목 | 상세 설명 | 수량 | 단가 | 금액 |
+|---|------|----------|------|------|------|
+| 1 | [서비스1] | [설명] | 1 | ₩0,000,000 | ₩0,000,000 |
+| 2 | [서비스2] | [설명] | 1 | ₩0,000,000 | ₩0,000,000 |
+| 3 | [서비스3] | [설명] | 1 | ₩0,000,000 | ₩0,000,000 |
+
+### 할인/조정
+
+| 항목 | 내용 | 금액 |
+|------|------|------|
+| [할인 사유] | [설명] | -₩000,000 |
+
+---
+
+## 4. 합계
+
+| 항목 | 금액 |
+|------|------|
+| 소계 | ₩0,000,000 |
+| 부가세 (10%) | ₩000,000 |
+| **총액** | **₩0,000,000** |
+
+---
+
+## 5. 결제 조건
+
+### 결제 일정
+| 시점 | 비율 | 금액 |
+|------|------|------|
+| 계약 시 | 50% | ₩0,000,000 |
+| 완료 시 | 50% | ₩0,000,000 |
+
+### 결제 방법
+- 계좌이체: [은행] [계좌번호] [예금주]
+- 세금계산서 발행
+
+---
+
+## 6. 프로젝트 일정
+
+| 단계 | 기간 | 비고 |
+|------|------|------|
+| 착수 | Week 1 | 킥오프 미팅 |
+| 진행 | Week 2-3 | 주간 리포트 |
+| 완료 | Week 4 | 최종 산출물 |
+
+예상 총 기간: [N주]
+
+---
+
+## 7. 포함/미포함 사항
+
+### 포함 사항
+- [포함 항목 1]
+- [포함 항목 2]
+- [포함 항목 3]
+
+### 미포함 사항
+- [미포함 항목 1]
+- [미포함 항목 2]
+- 추가 요청 사항 (별도 견적)
+
+---
+
+## 8. 특이사항
+
+- [특이사항 1]
+- [특이사항 2]
+- 본 견적서는 발행일로부터 30일간 유효합니다.
+
+---
+
+## 9. 담당자
+
+| 역할 | 이름 | 연락처 |
+|------|------|--------|
+| 프로젝트 매니저 | [이름] | [이메일] |
+| 영업 담당 | [이름] | [이메일] |
+
+---
+
+**OurDigital**
+*사람, 디지털, 그리고 문화*
+www.ourdigital.org
+```
+
+## Usage Notes
+
+### 필수 입력 항목
+- [ ] 고객사 정보
+- [ ] 서비스 항목 및 금액
+- [ ] 프로젝트 일정
+- [ ] 포함/미포함 사항
+
+### 자동 계산
+- 소계 = Σ(수량 × 단가)
+- VAT = 소계 × 10%
+- 총액 = 소계 + VAT
+
+### 견적번호 규칙
+- Format: OD-QUOTE-YYYY-NNN
+- 예: OD-QUOTE-2026-001
diff --git a/custom-skills/10-ourdigital-skill-creator/README.md b/custom-skills/10-ourdigital-skill-creator/README.md
new file mode 100644
index 0000000..7dfdc4e
--- /dev/null
+++ b/custom-skills/10-ourdigital-skill-creator/README.md
@@ -0,0 +1,75 @@
+# OurDigital Skill Creator
+
+Meta skill for creating, validating, and managing OurDigital Claude Skills.
+
+## Purpose
+
+This skill helps create new OurDigital skills with:
+- Proper directory structure
+- YAML frontmatter conventions
+- OurDigital trigger patterns
+- Notion history tracking
+
+## Activation
+
+Only activates with "ourdigital" keyword:
+- "ourdigital 스킬 만들기"
+- "ourdigital skill creator"
+- "create ourdigital skill"
+
+## Structure
+
+```
+10-ourdigital-skill-creator/
+├── code/
+│ └── SKILL.md # Claude Code version
+├── desktop/
+│ └── SKILL.md # Claude Desktop version
+├── shared/
+│ ├── references/
+│ │ ├── suitability-criteria.md
+│ │ └── skill-patterns.md
+│ ├── templates/
+│ │ └── SKILL-TEMPLATE.md
+│ └── scripts/
+│ ├── init_skill.py
+│ └── validate_skill.py
+├── docs/
+│ ├── CHANGELOG.md
+│ └── logs/
+└── README.md
+```
+
+## Usage
+
+### Create a New Skill
+
+```bash
+python shared/scripts/init_skill.py {name} --number XX
+
+# Example
+python shared/scripts/init_skill.py blog --number 02
+```
+
+### Validate a Skill
+
+```bash
+python shared/scripts/validate_skill.py {skill-directory}
+
+# Example
+python shared/scripts/validate_skill.py 02-ourdigital-blog
+```
+
+## Workflow
+
+1. **Suitability Check** - Evaluate if need fits Claude Skill criteria
+2. **Requirements Q&A** - Gather purpose, triggers, tools, outputs
+3. **Generate Structure** - Create directories and files
+4. **Validation** - Verify structure and content
+5. **Notion Sync** - Record to Working with AI database
+
+## Version
+
+- Current: 1.0.0
+- Author: OurDigital
+- Environment: Both (Desktop & Code)
diff --git a/custom-skills/10-ourdigital-skill-creator/code/SKILL.md b/custom-skills/10-ourdigital-skill-creator/code/SKILL.md
new file mode 100644
index 0000000..b329b62
--- /dev/null
+++ b/custom-skills/10-ourdigital-skill-creator/code/SKILL.md
@@ -0,0 +1,170 @@
+---
+name: ourdigital-skill-creator
+description: |
+ Meta skill for creating OurDigital Claude Skills in Code environment.
+ Activated with "ourdigital" keyword + skill creation requests.
+
+ Triggers:
+ - "ourdigital 스킬 만들기", "ourdigital skill creator"
+ - "create ourdigital skill", "new ourdigital skill"
+
+ Features:
+ - Skill suitability evaluation
+ - Interactive requirements gathering
+ - Directory/file generation
+ - Notion history sync
+version: "1.0"
+author: OurDigital
+environment: Code
+---
+
+# OurDigital Skill Creator (Code)
+
+Create and manage OurDigital Claude Skills with automated scaffolding.
+
+## Activation
+
+Only when "ourdigital" + skill-related request:
+- "ourdigital 스킬 만들어줘"
+- "create ourdigital skill for X"
+
+## Quick Start
+
+```bash
+# Initialize new skill
+python shared/scripts/init_skill.py {skill-name} --number XX
+
+# Validate skill structure
+python shared/scripts/validate_skill.py XX-ourdigital-{skill-name}
+
+# Sync to Notion
+python shared/scripts/sync_notion.py XX-ourdigital-{skill-name} --action=create
+```
+
+## Workflow
+
+### 1. Suitability Check
+
+Before creating, evaluate:
+
+| Criterion | Pass? |
+|-----------|-------|
+| Clear trigger (includes "ourdigital") | |
+| Focused scope (1-3 functions) | |
+| Reusable resources needed | |
+| Domain-specific knowledge | |
+| No overlap with existing skills | |
+
+≥3 passes → proceed with creation.
+
+### 2. Requirements Q&A
+
+Ask in sequence:
+
+1. **Purpose**: Core function of the skill?
+2. **Trigger**: When should it activate? (must include "ourdigital")
+3. **Tools**: External APIs, MCPs, or scripts needed?
+4. **Output**: Expected deliverables?
+5. **Environment**: Desktop, Code, or Both?
+
+### 3. Generate Structure
+
+Create directories and files:
+
+```bash
+mkdir -p XX-ourdigital-{name}/{code,desktop,shared/{references,templates,scripts},docs/logs}
+```
+
+Generate files:
+- `desktop/SKILL.md` - MCP-focused version
+- `code/SKILL.md` - Action-oriented version
+- `shared/references/` - Common documentation
+- `docs/CHANGELOG.md` - Initial changelog
+- `README.md` - Skill overview
+
+### 4. YAML Frontmatter
+
+Apply standard template:
+
+```yaml
+---
+name: ourdigital-{skill-name}
+description: |
+ [One-line purpose]
+ Activated with "ourdigital" keyword.
+
+ Triggers:
+ - "ourdigital {keyword1}"
+ - "ourdigital {keyword2}"
+
+ Features:
+ - Feature 1
+ - Feature 2
+version: "1.0"
+author: OurDigital
+environment: Code
+---
+```
+
+### 5. Validation Checklist
+
+- [ ] Directory structure matches template
+- [ ] SKILL.md in both code/ and desktop/
+- [ ] "ourdigital" in description triggers
+- [ ] Body content 800-1,200 words
+- [ ] CHANGELOG.md initialized
+- [ ] No conflicts with existing skills
+
+### 6. Notion Sync
+
+Record creation to Working with AI database:
+
+```python
+# Properties
+{
+ "Name": "ourdigital-{skill-name} v1.0",
+ "Status": "Done",
+ "AI used": "Claude Code",
+ "AI summary": "Skill description"
+}
+```
+
+## Scripts
+
+| Script | Purpose |
+|--------|---------|
+| `init_skill.py` | Scaffold new skill directory |
+| `validate_skill.py` | Check skill structure |
+| `sync_notion.py` | Sync to Notion database |
+
+## Skill Categories
+
+| Number | Category |
+|--------|----------|
+| 01-09 | OurDigital Core |
+| 10 | Meta (this skill) |
+| 11-19 | SEO |
+| 20-29 | GTM/Analytics |
+| 31-39 | Notion |
+| 40-49 | Jamie Clinic |
+
+## Files Reference
+
+```
+10-ourdigital-skill-creator/
+├── code/SKILL.md # This file
+├── desktop/SKILL.md # Desktop version
+├── shared/
+│ ├── references/
+│ │ ├── suitability-criteria.md
+│ │ └── skill-patterns.md
+│ ├── templates/
+│ │ └── skill-template/
+│ └── scripts/
+│ ├── init_skill.py
+│ ├── validate_skill.py
+│ └── sync_notion.py
+└── docs/
+ ├── CHANGELOG.md
+ └── logs/
+```
diff --git a/custom-skills/10-ourdigital-skill-creator/desktop/SKILL.md b/custom-skills/10-ourdigital-skill-creator/desktop/SKILL.md
new file mode 100644
index 0000000..4765015
--- /dev/null
+++ b/custom-skills/10-ourdigital-skill-creator/desktop/SKILL.md
@@ -0,0 +1,167 @@
+---
+name: ourdigital-skill-creator
+description: |
+ Meta skill for creating and managing OurDigital Claude Skills.
+ Activated when user includes "ourdigital" keyword with skill creation requests.
+
+ Triggers (ourdigital or our prefix):
+ - "ourdigital skill create", "our skill create"
+ - "ourdigital 스킬 만들기", "our 스킬 만들기"
+ - "ourdigital skill creator", "our skill creator"
+
+ Features:
+ - Skill suitability evaluation
+ - Interactive Q&A for requirements gathering
+ - Optimized skill generation (Desktop/Code)
+ - Notion history tracking
+version: "1.0"
+author: OurDigital
+environment: Desktop
+---
+
+# OurDigital Skill Creator
+
+Meta skill for creating, validating, and managing OurDigital Claude Skills.
+
+## Activation
+
+Activate with "ourdigital" or "our" prefix:
+- "ourdigital 스킬 만들어줘" / "our 스킬 만들어줘"
+- "ourdigital skill creator" / "our skill creator"
+- "our skill create [name]"
+
+Do NOT activate for generic "make a skill" requests (without our/ourdigital prefix).
+
+## Interactive Workflow
+
+### Phase 1: Need Assessment
+
+When user requests a new skill:
+
+1. **Acknowledge** the initial request
+2. **Ask clarifying questions** (max 3 per turn):
+ - What is the core purpose?
+ - What triggers this skill?
+ - What outputs do you expect?
+
+### Phase 2: Suitability Check
+
+Evaluate against Claude Skill criteria:
+
+| Criterion | Question to Ask |
+|-----------|-----------------|
+| Clear trigger | When exactly should this skill activate? |
+| Focused scope | Can you describe 1-3 core functions? |
+| Reusable resources | What scripts, templates, or references are needed? |
+| Domain knowledge | What specialized knowledge does Claude lack? |
+| Clear boundaries | How does this differ from existing skills? |
+
+**Decision**: If ≥3 criteria pass → proceed. Otherwise, suggest alternatives.
+
+### Phase 3: Requirements Definition
+
+Guide user through structured Q&A:
+
+```
+Q1. 스킬 목적과 핵심 기능은 무엇인가요?
+ (What is the skill's purpose and core functions?)
+
+Q2. 어떤 상황에서 이 스킬이 트리거되어야 하나요?
+ (When should this skill be triggered?)
+
+Q3. 필요한 외부 도구나 API가 있나요?
+ (Any external tools or APIs needed?)
+
+Q4. 기대하는 출력 형식은 무엇인가요?
+ (What output format do you expect?)
+
+Q5. Desktop, Code, 또는 Both 환경이 필요한가요?
+ (Which environment: Desktop, Code, or Both?)
+```
+
+### Phase 4: Skill Generation
+
+Generate skill structure following OurDigital standards:
+
+```
+XX-ourdigital-{skill-name}/
+├── desktop/
+│ └── SKILL.md # Desktop version
+├── code/
+│ └── SKILL.md # Code version (CLAUDE.md pattern)
+├── shared/
+│ ├── references/ # Common documentation
+│ ├── templates/ # Shared templates
+│ └── scripts/ # Utility scripts
+├── docs/
+│ ├── CHANGELOG.md # Version history
+│ └── logs/ # Update logs
+└── README.md # Overview
+```
+
+### Phase 5: Validation
+
+Before finalizing, verify:
+
+- [ ] YAML frontmatter includes "ourdigital" trigger keywords
+- [ ] Description clearly states activation conditions
+- [ ] Body content is 800-1,200 words
+- [ ] shared/ resources are properly referenced
+- [ ] No overlap with existing ourdigital skills
+
+### Phase 6: Notion Sync
+
+Record to Working with AI database:
+
+- **Database**: f8f19ede-32bd-43ac-9f60-0651f6f40afe
+- **Properties**:
+ - Name: `ourdigital-{skill-name} v{version}`
+ - Status: In progress → Done
+ - AI used: Claude Desktop
+ - AI summary: Brief skill description
+
+## YAML Frontmatter Template
+
+```yaml
+---
+name: ourdigital-{skill-name}
+description: |
+ [Purpose summary]
+ Activated when user includes "ourdigital" keyword.
+
+ Triggers:
+ - "ourdigital {keyword1}", "ourdigital {keyword2}"
+
+ Features:
+ - Feature 1
+ - Feature 2
+version: "1.0"
+author: OurDigital
+environment: Desktop | Code | Both
+---
+```
+
+## Skill Numbering
+
+| Range | Category |
+|-------|----------|
+| 01-09 | OurDigital Core (brand, blog, journal, research, etc.) |
+| 10 | Meta (skill-creator) |
+| 11-19 | SEO Tools |
+| 20-29 | GTM/Analytics Tools |
+| 31-39 | Notion Tools |
+| 40-49 | Jamie Clinic Tools |
+
+## Reference Files
+
+- `shared/references/suitability-criteria.md` - Skill evaluation criteria
+- `shared/references/skill-patterns.md` - Common patterns
+- `shared/templates/skill-template/` - Blank skill template
+
+## Quick Commands
+
+| Command | Action |
+|---------|--------|
+| "ourdigital 스킬 적합성" | Run suitability check only |
+| "ourdigital 스킬 생성" | Full creation workflow |
+| "ourdigital 스킬 검증" | Validate existing skill |
diff --git a/custom-skills/10-ourdigital-skill-creator/docs/CHANGELOG.md b/custom-skills/10-ourdigital-skill-creator/docs/CHANGELOG.md
new file mode 100644
index 0000000..a13b193
--- /dev/null
+++ b/custom-skills/10-ourdigital-skill-creator/docs/CHANGELOG.md
@@ -0,0 +1,26 @@
+# Changelog
+
+All notable changes to ourdigital-skill-creator will be documented here.
+
+## [1.0.0] - 2026-01-31
+
+### Added
+- Initial skill creation
+- Desktop and Code versions with YAML frontmatter
+- Interactive Q&A workflow for requirements gathering
+- Skill suitability evaluation criteria
+- Directory structure scaffolding scripts
+- Validation script for skill structure checking
+- Skill patterns and templates reference
+
+### Files
+- `desktop/SKILL.md` - Claude Desktop version
+- `code/SKILL.md` - Claude Code version
+- `shared/references/suitability-criteria.md`
+- `shared/references/skill-patterns.md`
+- `shared/templates/SKILL-TEMPLATE.md`
+- `shared/scripts/init_skill.py`
+- `shared/scripts/validate_skill.py`
+
+### Notion Ref
+- (To be synced)
diff --git a/custom-skills/10-ourdigital-skill-creator/shared/references/skill-patterns.md b/custom-skills/10-ourdigital-skill-creator/shared/references/skill-patterns.md
new file mode 100644
index 0000000..31d858e
--- /dev/null
+++ b/custom-skills/10-ourdigital-skill-creator/shared/references/skill-patterns.md
@@ -0,0 +1,203 @@
+# OurDigital Skill Patterns
+
+Common patterns and best practices for OurDigital Claude Skills.
+
+## Directory Structure Pattern
+
+```
+XX-ourdigital-{name}/
+├── code/
+│ └── SKILL.md # Claude Code version
+├── desktop/
+│ └── SKILL.md # Claude Desktop version
+├── shared/
+│ ├── references/ # Documentation
+│ ├── templates/ # Reusable templates
+│ └── scripts/ # Utility scripts
+├── docs/
+│ ├── CHANGELOG.md # Version history
+│ └── logs/ # Update logs
+└── README.md # Overview
+```
+
+## YAML Frontmatter Pattern
+
+```yaml
+---
+name: ourdigital-{skill-name}
+description: |
+ [One-line purpose statement]
+ Activated with "ourdigital" keyword.
+
+ Triggers:
+ - "ourdigital {keyword1}", "ourdigital {keyword2}"
+ - "ourdigital-{skill-name} {action}"
+
+ Features:
+ - Feature 1 description
+ - Feature 2 description
+version: "1.0"
+author: OurDigital
+environment: Desktop | Code | Both
+dependencies:
+ python: ">=3.11"
+ packages: ["package1", "package2"]
+---
+```
+
+## Workflow Patterns
+
+### Linear Workflow
+
+```
+Phase 1 → Phase 2 → Phase 3 → Output
+```
+
+Example: ourdigital-blog
+```
+Topic Input → Research → Draft → SEO Meta → Export
+```
+
+### Interactive Q&A Workflow
+
+```
+Ask Q1 → Get A1 → Ask Q2 → Get A2 → Process → Output
+```
+
+Example: ourdigital-skill-creator
+```
+Purpose? → Triggers? → Tools? → Output? → Generate
+```
+
+### Multi-Output Workflow
+
+```
+Input → Process → Output A
+ └→ Output B
+ └→ Output C
+```
+
+Example: ourdigital-designer
+```
+Brief → Analyze → DALL-E prompt
+ └→ Midjourney prompt
+ └→ Figma spec
+```
+
+## Trigger Patterns
+
+### Korean + English Pairs
+
+```yaml
+Triggers:
+- "ourdigital 블로그", "ourdigital blog"
+- "ourdigital 작성", "ourdigital write"
+```
+
+### Action-Based
+
+```yaml
+Triggers:
+- "ourdigital create {type}"
+- "ourdigital generate {type}"
+- "ourdigital check {type}"
+```
+
+### Skill Name Direct
+
+```yaml
+Triggers:
+- "ourdigital-blog 초안"
+- "ourdigital-designer 프롬프트"
+```
+
+## Output Patterns
+
+### File Export
+
+```markdown
+## Output
+
+Export to:
+- iCloud/Ulysses folder: `.md` files
+- Google Drive: `.docx`, `.pptx`
+- Local: `./output/`
+```
+
+### Notion Integration
+
+```markdown
+## Notion Save
+
+Database: Working with AI
+Properties:
+- Name: [Output title]
+- Status: Done
+- AI used: Claude Code
+```
+
+### Artifact Generation
+
+```markdown
+## Artifact
+
+Generate HTML artifact with:
+- Structured sections
+- Styled formatting
+- Export options
+```
+
+## Reference Patterns
+
+### Style Guide Reference
+
+```markdown
+See `shared/references/style-guide.md` for:
+- Tone and voice
+- Terminology
+- Formatting rules
+```
+
+### API Config Reference
+
+```markdown
+See `shared/references/api-config.md` for:
+- Endpoint URLs
+- Authentication
+- Rate limits
+```
+
+### Template Reference
+
+```markdown
+Use `shared/templates/{template}.md` as base structure.
+```
+
+## Version Numbering
+
+```
+Major.Minor.Patch
+
+1.0.0 - Initial release
+1.1.0 - New feature added
+1.1.1 - Bug fix
+2.0.0 - Breaking change
+```
+
+## Changelog Pattern
+
+```markdown
+## [1.1.0] - 2026-01-31
+
+### Added
+- New feature X
+
+### Changed
+- Updated behavior Y
+
+### Fixed
+- Bug in Z
+
+### Notion Ref
+- https://notion.so/page-id
+```
diff --git a/custom-skills/10-ourdigital-skill-creator/shared/references/suitability-criteria.md b/custom-skills/10-ourdigital-skill-creator/shared/references/suitability-criteria.md
new file mode 100644
index 0000000..3dd2752
--- /dev/null
+++ b/custom-skills/10-ourdigital-skill-creator/shared/references/suitability-criteria.md
@@ -0,0 +1,105 @@
+# Skill Suitability Criteria
+
+Evaluation criteria for determining if a need should become an OurDigital Claude Skill.
+
+## Core Criteria
+
+### 1. Clear Trigger (Required)
+
+The skill must have an unambiguous activation condition.
+
+**OurDigital Rule**: Must include "ourdigital" keyword to avoid conflicts with other skills.
+
+| Good Triggers | Bad Triggers |
+|---------------|--------------|
+| "ourdigital 블로그 작성" | "블로그 써줘" |
+| "ourdigital research prompt" | "research this" |
+| "ourdigital 스킬 만들기" | "make a skill" |
+
+### 2. Focused Scope
+
+Each skill should do 1-3 things well (Unix philosophy).
+
+**Word Limit**: SKILL.md body should be 800-1,200 words.
+
+| Good Scope | Over-scoped |
+|------------|-------------|
+| Blog draft generation + SEO meta | Blog + Social + Email + Analytics |
+| Visual prompt creation | Design + Development + Deployment |
+
+### 3. Reusable Resources
+
+Skill should bundle valuable resources worth maintaining.
+
+| Resource Type | Examples |
+|---------------|----------|
+| Scripts | `export_to_ulysses.py`, `sync_notion.py` |
+| Templates | `blog-template.md`, `research-plan.md` |
+| References | `style-guide.md`, `api-config.md` |
+| Assets | `brand-colors.json`, `prompt-library.md` |
+
+### 4. Domain Knowledge
+
+Skill should encode knowledge Claude doesn't have natively.
+
+| Good Domain Knowledge | Not Skill-Worthy |
+|-----------------------|------------------|
+| OurDigital brand voice rules | Generic writing tips |
+| Ghost CMS API specifics | Standard markdown |
+| Jamie clinic terminology | Common Korean |
+
+### 5. Clear Boundaries
+
+Skill should not overlap with existing skills.
+
+**Check Against**:
+- Other ourdigital-* skills
+- Existing custom-skills (SEO, GTM, Jamie, etc.)
+- Built-in Claude capabilities
+
+## Scoring Matrix
+
+| Criterion | Weight | Score (0-2) |
+|-----------|--------|-------------|
+| Clear trigger | 25% | |
+| Focused scope | 20% | |
+| Reusable resources | 20% | |
+| Domain knowledge | 20% | |
+| Clear boundaries | 15% | |
+
+**Threshold**: Score ≥ 1.2 (60%) to proceed with skill creation.
+
+## Decision Flow
+
+```
+Is there a clear "ourdigital" trigger?
+├── No → Suggest using generic Claude or other skill
+└── Yes ↓
+
+Is scope focused (1-3 functions)?
+├── No → Split into multiple skills
+└── Yes ↓
+
+Are there reusable resources?
+├── No → Consider if prompt is sufficient
+└── Yes ↓
+
+Does it encode domain knowledge?
+├── No → May not need a skill
+└── Yes ↓
+
+No overlap with existing skills?
+├── No → Merge with existing or differentiate
+└── Yes → CREATE THE SKILL
+```
+
+## Alternatives to Skills
+
+If criteria not met, consider:
+
+| Alternative | When to Use |
+|-------------|-------------|
+| CLAUDE.md directive | Project-specific instructions |
+| Prompt library | Reusable prompts without structure |
+| MCP tool | API integration without workflow |
+| Existing skill extension | Adding to current skill |
diff --git a/custom-skills/10-ourdigital-skill-creator/shared/scripts/init_skill.py b/custom-skills/10-ourdigital-skill-creator/shared/scripts/init_skill.py
new file mode 100644
index 0000000..080f21f
--- /dev/null
+++ b/custom-skills/10-ourdigital-skill-creator/shared/scripts/init_skill.py
@@ -0,0 +1,215 @@
+#!/usr/bin/env python3
+"""
+Initialize a new OurDigital skill with standard directory structure.
+
+Usage:
+ python init_skill.py {skill-name} --number XX
+ python init_skill.py blog --number 02
+"""
+
+import argparse
+import os
+from pathlib import Path
+from datetime import datetime
+
+
+SKILL_TEMPLATE = '''---
+name: ourdigital-{name}
+description: |
+ {description}
+ Activated with "ourdigital" keyword.
+
+ Triggers:
+ - "ourdigital {name}", "ourdigital {trigger}"
+
+ Features:
+ - {feature}
+version: "1.0"
+author: OurDigital
+environment: {environment}
+---
+
+# OurDigital {title}
+
+{description}
+
+## Activation
+
+Only activate when user includes "ourdigital" keyword:
+- "ourdigital {trigger}"
+
+## Workflow
+
+### Phase 1: Input
+
+Gather requirements from user.
+
+### Phase 2: Process
+
+Execute core functionality.
+
+### Phase 3: Output
+
+Deliver results.
+
+## Quick Commands
+
+| Command | Action |
+|---------|--------|
+| "ourdigital {name}" | Main action |
+'''
+
+CHANGELOG_TEMPLATE = '''# Changelog
+
+All notable changes to this skill will be documented in this file.
+
+## [1.0.0] - {date}
+
+### Added
+- Initial skill creation
+- Desktop and Code versions
+- Basic workflow implementation
+
+### Notion Ref
+- (To be added after sync)
+'''
+
+README_TEMPLATE = '''# OurDigital {title}
+
+{description}
+
+## Installation
+
+This skill is part of the OurDigital custom skills package.
+
+## Usage
+
+### Claude Desktop
+
+The skill activates when you mention "ourdigital {name}".
+
+### Claude Code
+
+```bash
+# The skill activates via SKILL.md directive
+```
+
+## Structure
+
+```
+{number}-ourdigital-{name}/
+├── code/SKILL.md
+├── desktop/SKILL.md
+├── shared/
+│ └── references/
+├── docs/
+│ └── CHANGELOG.md
+└── README.md
+```
+
+## Version
+
+- Current: 1.0.0
+- Author: OurDigital
+'''
+
+
+def create_skill(name: str, number: str, description: str = "", environment: str = "Both"):
+ """Create a new skill directory structure."""
+
+ base_path = Path(__file__).parent.parent.parent.parent
+ skill_dir = base_path / f"{number}-ourdigital-{name}"
+
+ if skill_dir.exists():
+ print(f"Skill directory already exists: {skill_dir}")
+ return False
+
+ # Create directories
+ dirs = [
+ skill_dir / "code",
+ skill_dir / "desktop",
+ skill_dir / "shared" / "references",
+ skill_dir / "shared" / "templates",
+ skill_dir / "shared" / "scripts",
+ skill_dir / "docs" / "logs",
+ ]
+
+ for d in dirs:
+ d.mkdir(parents=True, exist_ok=True)
+ print(f"Created: {d}")
+
+ # Title case for display
+ title = name.replace("-", " ").title()
+ trigger = name.replace("-", " ")
+ feature = f"Core {title} functionality"
+ date = datetime.now().strftime("%Y-%m-%d")
+
+ if not description:
+ description = f"OurDigital {title} skill for Claude."
+
+ # Create SKILL.md for desktop
+ desktop_skill = SKILL_TEMPLATE.format(
+ name=name,
+ title=title,
+ description=description,
+ trigger=trigger,
+ feature=feature,
+ environment="Desktop"
+ )
+ (skill_dir / "desktop" / "SKILL.md").write_text(desktop_skill)
+ print(f"Created: desktop/SKILL.md")
+
+ # Create SKILL.md for code
+ code_skill = SKILL_TEMPLATE.format(
+ name=name,
+ title=title,
+ description=description,
+ trigger=trigger,
+ feature=feature,
+ environment="Code"
+ )
+ (skill_dir / "code" / "SKILL.md").write_text(code_skill)
+ print(f"Created: code/SKILL.md")
+
+ # Create CHANGELOG.md
+ changelog = CHANGELOG_TEMPLATE.format(date=date)
+ (skill_dir / "docs" / "CHANGELOG.md").write_text(changelog)
+ print(f"Created: docs/CHANGELOG.md")
+
+ # Create README.md
+ readme = README_TEMPLATE.format(
+ title=title,
+ name=name,
+ number=number,
+ description=description
+ )
+ (skill_dir / "README.md").write_text(readme)
+ print(f"Created: README.md")
+
+ print(f"\nSkill created successfully: {skill_dir}")
+ return True
+
+
+def main():
+ parser = argparse.ArgumentParser(description="Initialize a new OurDigital skill")
+ parser.add_argument("name", help="Skill name (e.g., 'blog', 'designer')")
+ parser.add_argument("--number", required=True, help="Skill number (e.g., '02', '07')")
+ parser.add_argument("--description", default="", help="Skill description")
+ parser.add_argument("--environment", default="Both",
+ choices=["Desktop", "Code", "Both"],
+ help="Target environment")
+
+ args = parser.parse_args()
+
+ success = create_skill(
+ name=args.name,
+ number=args.number,
+ description=args.description,
+ environment=args.environment
+ )
+
+ return 0 if success else 1
+
+
+if __name__ == "__main__":
+ exit(main())
diff --git a/custom-skills/10-ourdigital-skill-creator/shared/scripts/validate_skill.py b/custom-skills/10-ourdigital-skill-creator/shared/scripts/validate_skill.py
new file mode 100644
index 0000000..746e30d
--- /dev/null
+++ b/custom-skills/10-ourdigital-skill-creator/shared/scripts/validate_skill.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+"""
+Validate an OurDigital skill structure and content.
+
+Usage:
+ python validate_skill.py {skill-directory}
+ python validate_skill.py 02-ourdigital-blog
+"""
+
+import argparse
+import re
+from pathlib import Path
+
+
+class SkillValidator:
+ def __init__(self, skill_path: Path):
+ self.skill_path = skill_path
+ self.errors = []
+ self.warnings = []
+
+ def validate(self) -> bool:
+ """Run all validations."""
+ self._check_directory_structure()
+ self._check_skill_files()
+ self._check_frontmatter()
+ self._check_content_length()
+ self._check_ourdigital_triggers()
+
+ return len(self.errors) == 0
+
+ def _check_directory_structure(self):
+ """Verify required directories exist."""
+ required_dirs = [
+ "code",
+ "desktop",
+ ]
+
+ recommended_dirs = [
+ "shared",
+ "docs",
+ ]
+
+ for d in required_dirs:
+ if not (self.skill_path / d).is_dir():
+ self.errors.append(f"Missing required directory: {d}/")
+
+ for d in recommended_dirs:
+ if not (self.skill_path / d).is_dir():
+ self.warnings.append(f"Missing recommended directory: {d}/")
+
+ def _check_skill_files(self):
+ """Verify SKILL.md files exist."""
+ skill_files = [
+ "code/SKILL.md",
+ "desktop/SKILL.md",
+ ]
+
+ for f in skill_files:
+ if not (self.skill_path / f).is_file():
+ self.errors.append(f"Missing required file: {f}")
+
+ def _check_frontmatter(self):
+ """Verify YAML frontmatter in SKILL.md files."""
+ for env in ["code", "desktop"]:
+ skill_file = self.skill_path / env / "SKILL.md"
+ if not skill_file.is_file():
+ continue
+
+ content = skill_file.read_text()
+
+ # Check for YAML frontmatter
+ if not content.startswith("---"):
+ self.errors.append(f"{env}/SKILL.md: Missing YAML frontmatter")
+ continue
+
+ # Check required fields
+ required_fields = ["name", "description", "version", "author", "environment"]
+ for field in required_fields:
+ if f"{field}:" not in content.split("---")[1]:
+ self.warnings.append(f"{env}/SKILL.md: Missing frontmatter field '{field}'")
+
+ def _check_content_length(self):
+ """Verify SKILL.md body is within word limit."""
+ for env in ["code", "desktop"]:
+ skill_file = self.skill_path / env / "SKILL.md"
+ if not skill_file.is_file():
+ continue
+
+ content = skill_file.read_text()
+
+ # Extract body (after frontmatter)
+ parts = content.split("---")
+ if len(parts) >= 3:
+ body = "---".join(parts[2:])
+ word_count = len(body.split())
+
+ if word_count < 200:
+ self.warnings.append(
+ f"{env}/SKILL.md: Body too short ({word_count} words, recommended 800-1200)"
+ )
+ elif word_count > 1500:
+ self.warnings.append(
+ f"{env}/SKILL.md: Body too long ({word_count} words, recommended 800-1200)"
+ )
+
+ def _check_ourdigital_triggers(self):
+ """Verify 'ourdigital' keyword in triggers."""
+ for env in ["code", "desktop"]:
+ skill_file = self.skill_path / env / "SKILL.md"
+ if not skill_file.is_file():
+ continue
+
+ content = skill_file.read_text().lower()
+
+ # Check for ourdigital in description/triggers
+ if "ourdigital" not in content:
+ self.errors.append(
+ f"{env}/SKILL.md: Missing 'ourdigital' keyword in triggers"
+ )
+
+ def report(self):
+ """Print validation report."""
+ print(f"\nValidation Report: {self.skill_path.name}")
+ print("=" * 50)
+
+ if self.errors:
+ print(f"\nERRORS ({len(self.errors)}):")
+ for e in self.errors:
+ print(f" [X] {e}")
+
+ if self.warnings:
+ print(f"\nWARNINGS ({len(self.warnings)}):")
+ for w in self.warnings:
+ print(f" [!] {w}")
+
+ if not self.errors and not self.warnings:
+ print("\n All checks passed!")
+
+ print("\n" + "=" * 50)
+ status = "PASS" if not self.errors else "FAIL"
+ print(f"Status: {status}")
+
+ return not self.errors
+
+
+def main():
+ parser = argparse.ArgumentParser(description="Validate an OurDigital skill")
+ parser.add_argument("skill_dir", help="Skill directory name or path")
+
+ args = parser.parse_args()
+
+ # Handle relative or absolute path
+ skill_path = Path(args.skill_dir)
+ if not skill_path.is_absolute():
+ # Try relative to custom-skills directory
+ base_path = Path(__file__).parent.parent.parent.parent
+ skill_path = base_path / args.skill_dir
+
+ if not skill_path.is_dir():
+ print(f"Error: Skill directory not found: {skill_path}")
+ return 1
+
+ validator = SkillValidator(skill_path)
+ validator.validate()
+ success = validator.report()
+
+ return 0 if success else 1
+
+
+if __name__ == "__main__":
+ exit(main())
diff --git a/custom-skills/10-ourdigital-skill-creator/shared/templates/SKILL-TEMPLATE.md b/custom-skills/10-ourdigital-skill-creator/shared/templates/SKILL-TEMPLATE.md
new file mode 100644
index 0000000..f56b16d
--- /dev/null
+++ b/custom-skills/10-ourdigital-skill-creator/shared/templates/SKILL-TEMPLATE.md
@@ -0,0 +1,56 @@
+---
+name: ourdigital-{skill-name}
+description: |
+ {Brief description of the skill's purpose}
+ Activated with "ourdigital" keyword.
+
+ Triggers:
+ - "ourdigital {trigger1}", "ourdigital {trigger2}"
+ - "ourdigital-{skill-name} {action}"
+
+ Features:
+ - {Feature 1}
+ - {Feature 2}
+version: "1.0"
+author: OurDigital
+environment: {Desktop | Code | Both}
+---
+
+# OurDigital {Skill Name}
+
+{One-paragraph description of what this skill does.}
+
+## Activation
+
+Only activate when user includes "ourdigital" keyword:
+- "ourdigital {example trigger 1}"
+- "ourdigital {example trigger 2}"
+
+## Workflow
+
+### Phase 1: {Phase Name}
+
+{Description of first phase}
+
+### Phase 2: {Phase Name}
+
+{Description of second phase}
+
+### Phase 3: {Phase Name}
+
+{Description of third phase}
+
+## Output
+
+{Describe the expected outputs}
+
+## References
+
+- `shared/references/{file}.md` - {Description}
+
+## Quick Commands
+
+| Command | Action |
+|---------|--------|
+| "ourdigital {cmd1}" | {Action 1} |
+| "ourdigital {cmd2}" | {Action 2} |
diff --git a/custom-skills/10-seo-technical-audit/code/CLAUDE.md b/custom-skills/19-seo-technical-audit/code/CLAUDE.md
similarity index 100%
rename from custom-skills/10-seo-technical-audit/code/CLAUDE.md
rename to custom-skills/19-seo-technical-audit/code/CLAUDE.md
diff --git a/custom-skills/10-seo-technical-audit/code/scripts/base_client.py b/custom-skills/19-seo-technical-audit/code/scripts/base_client.py
similarity index 100%
rename from custom-skills/10-seo-technical-audit/code/scripts/base_client.py
rename to custom-skills/19-seo-technical-audit/code/scripts/base_client.py
diff --git a/custom-skills/10-seo-technical-audit/code/scripts/page_analyzer.py b/custom-skills/19-seo-technical-audit/code/scripts/page_analyzer.py
similarity index 100%
rename from custom-skills/10-seo-technical-audit/code/scripts/page_analyzer.py
rename to custom-skills/19-seo-technical-audit/code/scripts/page_analyzer.py
diff --git a/custom-skills/10-seo-technical-audit/code/scripts/requirements.txt b/custom-skills/19-seo-technical-audit/code/scripts/requirements.txt
similarity index 100%
rename from custom-skills/10-seo-technical-audit/code/scripts/requirements.txt
rename to custom-skills/19-seo-technical-audit/code/scripts/requirements.txt
diff --git a/custom-skills/10-seo-technical-audit/code/scripts/robots_checker.py b/custom-skills/19-seo-technical-audit/code/scripts/robots_checker.py
similarity index 100%
rename from custom-skills/10-seo-technical-audit/code/scripts/robots_checker.py
rename to custom-skills/19-seo-technical-audit/code/scripts/robots_checker.py
diff --git a/custom-skills/10-seo-technical-audit/code/scripts/sitemap_crawler.py b/custom-skills/19-seo-technical-audit/code/scripts/sitemap_crawler.py
similarity index 100%
rename from custom-skills/10-seo-technical-audit/code/scripts/sitemap_crawler.py
rename to custom-skills/19-seo-technical-audit/code/scripts/sitemap_crawler.py
diff --git a/custom-skills/10-seo-technical-audit/code/scripts/sitemap_validator.py b/custom-skills/19-seo-technical-audit/code/scripts/sitemap_validator.py
similarity index 100%
rename from custom-skills/10-seo-technical-audit/code/scripts/sitemap_validator.py
rename to custom-skills/19-seo-technical-audit/code/scripts/sitemap_validator.py
diff --git a/custom-skills/10-seo-technical-audit/desktop/SKILL.md b/custom-skills/19-seo-technical-audit/desktop/SKILL.md
similarity index 100%
rename from custom-skills/10-seo-technical-audit/desktop/SKILL.md
rename to custom-skills/19-seo-technical-audit/desktop/SKILL.md
diff --git a/custom-skills/10-seo-technical-audit/desktop/skill.yaml b/custom-skills/19-seo-technical-audit/desktop/skill.yaml
similarity index 100%
rename from custom-skills/10-seo-technical-audit/desktop/skill.yaml
rename to custom-skills/19-seo-technical-audit/desktop/skill.yaml
diff --git a/custom-skills/10-seo-technical-audit/desktop/tools/firecrawl.md b/custom-skills/19-seo-technical-audit/desktop/tools/firecrawl.md
similarity index 100%
rename from custom-skills/10-seo-technical-audit/desktop/tools/firecrawl.md
rename to custom-skills/19-seo-technical-audit/desktop/tools/firecrawl.md
diff --git a/custom-skills/10-seo-technical-audit/desktop/tools/notion.md b/custom-skills/19-seo-technical-audit/desktop/tools/notion.md
similarity index 100%
rename from custom-skills/10-seo-technical-audit/desktop/tools/notion.md
rename to custom-skills/19-seo-technical-audit/desktop/tools/notion.md
diff --git a/custom-skills/10-seo-technical-audit/desktop/tools/perplexity.md b/custom-skills/19-seo-technical-audit/desktop/tools/perplexity.md
similarity index 100%
rename from custom-skills/10-seo-technical-audit/desktop/tools/perplexity.md
rename to custom-skills/19-seo-technical-audit/desktop/tools/perplexity.md
diff --git a/custom-skills/32-notion-writer/code/CLAUDE.md b/custom-skills/32-notion-writer/code/CLAUDE.md
index 1ec3a76..e2a22af 100644
--- a/custom-skills/32-notion-writer/code/CLAUDE.md
+++ b/custom-skills/32-notion-writer/code/CLAUDE.md
@@ -39,7 +39,7 @@
### 3. Configure Environment
```bash
-cd ~/Project/claude-skills/custom-skills/02-notion-writer/code/scripts
+cd ~/Project/our-claude-skills/custom-skills/02-notion-writer/code/scripts
# Create .env from example
cp .env.example .env
@@ -212,7 +212,7 @@ The script automatically batches large content.
```bash
# Navigate
-cd ~/Project/claude-skills/custom-skills/02-notion-writer/code/scripts
+cd ~/Project/our-claude-skills/custom-skills/02-notion-writer/code/scripts
source venv/bin/activate
# Test
diff --git a/custom-skills/32-notion-writer/desktop/SKILL.md b/custom-skills/32-notion-writer/desktop/SKILL.md
index 1840816..d276144 100644
--- a/custom-skills/32-notion-writer/desktop/SKILL.md
+++ b/custom-skills/32-notion-writer/desktop/SKILL.md
@@ -4,14 +4,14 @@ Push markdown content to Notion pages or databases via Claude Code.
## Prerequisites
-- Python virtual environment at `~/Project/claude-skills/custom-skills/02-notion-writer/code/scripts/venv`
+- Python virtual environment at `~/Project/our-claude-skills/custom-skills/02-notion-writer/code/scripts/venv`
- Notion API key configured in `.env` file
- Target pages/databases must be shared with the integration
## Quick Start
```bash
-cd ~/Project/claude-skills/custom-skills/02-notion-writer/code/scripts
+cd ~/Project/our-claude-skills/custom-skills/02-notion-writer/code/scripts
source venv/bin/activate
```
diff --git a/custom-skills/43-jamie-youtube-manager/code/CLAUDE.md b/custom-skills/43-jamie-youtube-manager/code/CLAUDE.md
index e5c6957..3e7e3f8 100644
--- a/custom-skills/43-jamie-youtube-manager/code/CLAUDE.md
+++ b/custom-skills/43-jamie-youtube-manager/code/CLAUDE.md
@@ -35,7 +35,7 @@
```bash
# Navigate to scripts directory
-cd ~/Project/claude-skills/custom-skills/43-jamie-youtube-manager/code/scripts
+cd ~/Project/our-claude-skills/custom-skills/43-jamie-youtube-manager/code/scripts
# Activate virtual environment
source venv/bin/activate
@@ -511,7 +511,7 @@ User: "영어 자막/메타데이터 추천해줘"
```bash
# Navigate to scripts directory
-cd ~/Project/claude-skills/custom-skills/43-jamie-youtube-manager/code/scripts
+cd ~/Project/our-claude-skills/custom-skills/43-jamie-youtube-manager/code/scripts
# Activate environment
source venv/bin/activate
diff --git a/custom-skills/43-jamie-youtube-manager/desktop/SKILL.md b/custom-skills/43-jamie-youtube-manager/desktop/SKILL.md
index 414aa36..f03148b 100644
--- a/custom-skills/43-jamie-youtube-manager/desktop/SKILL.md
+++ b/custom-skills/43-jamie-youtube-manager/desktop/SKILL.md
@@ -12,7 +12,7 @@
### Setup
```bash
-cd ~/Project/claude-skills/custom-skills/43-jamie-youtube-manager/code/scripts
+cd ~/Project/our-claude-skills/custom-skills/43-jamie-youtube-manager/code/scripts
source venv/bin/activate
```
@@ -41,7 +41,7 @@ python jamie_video_info.py "https://youtu.be/VIDEO_ID"
```bash
# Save video info to Notion
python jamie_video_info.py "URL" > ../output/video_status.md
-cd ~/Project/claude-skills/custom-skills/02-notion-writer/code/scripts
+cd ~/Project/our-claude-skills/custom-skills/02-notion-writer/code/scripts
source venv/bin/activate
python notion_writer.py -p NOTION_PAGE_URL -f ../../43-jamie-youtube-manager/code/output/video_status.md
```
diff --git a/custom-skills/42-jamie-instagram-manager/code/CLAUDE.md b/custom-skills/45-jamie-instagram-manager/code/CLAUDE.md
similarity index 100%
rename from custom-skills/42-jamie-instagram-manager/code/CLAUDE.md
rename to custom-skills/45-jamie-instagram-manager/code/CLAUDE.md
diff --git a/custom-skills/42-jamie-instagram-manager/code/references/hashtag_database.md b/custom-skills/45-jamie-instagram-manager/code/references/hashtag_database.md
similarity index 100%
rename from custom-skills/42-jamie-instagram-manager/code/references/hashtag_database.md
rename to custom-skills/45-jamie-instagram-manager/code/references/hashtag_database.md
diff --git a/custom-skills/42-jamie-instagram-manager/code/references/instagram_content_calendar_template.md b/custom-skills/45-jamie-instagram-manager/code/references/instagram_content_calendar_template.md
similarity index 100%
rename from custom-skills/42-jamie-instagram-manager/code/references/instagram_content_calendar_template.md
rename to custom-skills/45-jamie-instagram-manager/code/references/instagram_content_calendar_template.md
diff --git a/custom-skills/42-jamie-instagram-manager/code/references/reply_templates.md b/custom-skills/45-jamie-instagram-manager/code/references/reply_templates.md
similarity index 100%
rename from custom-skills/42-jamie-instagram-manager/code/references/reply_templates.md
rename to custom-skills/45-jamie-instagram-manager/code/references/reply_templates.md
diff --git a/custom-skills/42-jamie-instagram-manager/desktop/SKILL.md b/custom-skills/45-jamie-instagram-manager/desktop/SKILL.md
similarity index 100%
rename from custom-skills/42-jamie-instagram-manager/desktop/SKILL.md
rename to custom-skills/45-jamie-instagram-manager/desktop/SKILL.md
diff --git a/custom-skills/42-jamie-instagram-manager/desktop/references/hashtag_database.md b/custom-skills/45-jamie-instagram-manager/desktop/references/hashtag_database.md
similarity index 100%
rename from custom-skills/42-jamie-instagram-manager/desktop/references/hashtag_database.md
rename to custom-skills/45-jamie-instagram-manager/desktop/references/hashtag_database.md
diff --git a/custom-skills/42-jamie-instagram-manager/desktop/references/instagram_content_calendar_template.md b/custom-skills/45-jamie-instagram-manager/desktop/references/instagram_content_calendar_template.md
similarity index 100%
rename from custom-skills/42-jamie-instagram-manager/desktop/references/instagram_content_calendar_template.md
rename to custom-skills/45-jamie-instagram-manager/desktop/references/instagram_content_calendar_template.md
diff --git a/custom-skills/42-jamie-instagram-manager/desktop/references/reply_templates.md b/custom-skills/45-jamie-instagram-manager/desktop/references/reply_templates.md
similarity index 100%
rename from custom-skills/42-jamie-instagram-manager/desktop/references/reply_templates.md
rename to custom-skills/45-jamie-instagram-manager/desktop/references/reply_templates.md
diff --git a/custom-skills/42-jamie-instagram-manager/desktop/skill.yaml b/custom-skills/45-jamie-instagram-manager/desktop/skill.yaml
similarity index 100%
rename from custom-skills/42-jamie-instagram-manager/desktop/skill.yaml
rename to custom-skills/45-jamie-instagram-manager/desktop/skill.yaml
diff --git a/custom-skills/91-multi-agent-guide/README.md b/custom-skills/91-multi-agent-guide/README.md
new file mode 100644
index 0000000..fd87475
--- /dev/null
+++ b/custom-skills/91-multi-agent-guide/README.md
@@ -0,0 +1,172 @@
+# Multi-Agent Guide Plugin
+
+A Claude Code plugin for setting up multi-agent collaboration frameworks in complex software projects.
+
+## Overview
+
+This plugin helps you establish a structured collaboration framework for projects where multiple AI agents (Claude Code, Gemini, Codex, and Human) work together. It provides:
+
+- **Agent Hierarchy**: Clear lead/sub-agent relationships
+- **Ownership Matrix**: File and directory ownership per agent
+- **Guardrails System**: Lock and task claiming to prevent conflicts
+- **Handoff Protocols**: Standardized inter-agent communication
+- **CI/CD Integration**: Automated ownership verification
+- **Pre-commit Hooks**: Local verification before commits
+
+## Installation
+
+### Option 1: Symlink to Skills Directory
+
+```bash
+ln -s /Users/ourdigital/Project/our-claude-skills/custom-skills/91-multi-agent-guide ~/.claude/skills/multi-agent-guide
+```
+
+### Option 2: Add to Claude Code Settings
+
+Add to your `~/.claude/settings.json`:
+
+```json
+{
+ "plugins": {
+ "local": [
+ "/Users/ourdigital/Project/our-claude-skills/custom-skills/91-multi-agent-guide"
+ ]
+ }
+}
+```
+
+## Usage
+
+### Automatic Activation (Skill)
+
+The skill activates automatically when you mention:
+- "set up multi-agent collaboration"
+- "initialize multi-agent project"
+- "create agent guardrails"
+- "multi-agent guide"
+- "agent coordination"
+
+### Explicit Command
+
+Use the slash command:
+
+```
+/setup-agents
+```
+
+This will guide you through the complete setup process interactively.
+
+## What Gets Created
+
+```
+your-project/
+├── .agent-state/
+│ ├── tasks.yaml # Task registry
+│ └── locks.yaml # Lock registry
+├── tools/
+│ └── check-ownership.py # Ownership verification
+├── AGENTS.md # Shared collaboration rules
+├── GUARDRAILS.md # Ownership & enforcement
+├── CLAUDE.md # Lead agent directive
+├── GEMINI.md # Sub-agent directive (optional)
+├── CODEX.md # Sub-agent directive (optional)
+├── .pre-commit-config.yaml # Pre-commit hooks (optional)
+└── .github/
+ └── workflows/
+ └── ownership-check.yml # CI workflow (optional)
+```
+
+## Agent Hierarchy
+
+```
+ ┌─────────────────┐
+ │ Claude Code │
+ │ (Lead Agent) │
+ └────────┬────────┘
+ │
+ ┌──────────────┼──────────────┐
+ ▼ ▼ ▼
+ ┌──────────┐ ┌──────────┐ ┌──────────┐
+ │ Gemini │ │ Codex │ │ Human │
+ │(Research)│ │ (Speed) │ │ (Review) │
+ └──────────┘ └──────────┘ └──────────┘
+```
+
+## Environment Setup
+
+After installation, set your agent identity:
+
+```bash
+# Add to shell profile (.bashrc, .zshrc)
+export SEO_AGENT_AUTHOR=claude # or gemini, codex, human
+
+# Or use direnv (.envrc in project)
+export SEO_AGENT_AUTHOR=claude
+```
+
+## Commit Message Format
+
+All agents must use this format:
+
+```
+[Agent] type(scope): description
+
+Examples:
+[Claude] feat(core): implement new feature
+[Gemini] docs(api): update API documentation
+[Codex] test(models): add unit tests
+[Human] fix(config): correct configuration
+```
+
+## Plugin Structure
+
+```
+91-multi-agent-guide/
+├── .claude-plugin/
+│ └── plugin.json # Plugin manifest
+├── commands/
+│ └── setup-agents.md # /setup-agents command
+├── skills/
+│ └── multi-agent-guide/
+│ ├── SKILL.md # Main skill definition
+│ ├── templates/ # File templates
+│ ├── scripts/ # Helper scripts
+│ ├── references/ # Documentation
+│ └── examples/ # Example setups
+└── README.md # This file
+```
+
+## Templates Included
+
+| Template | Purpose |
+|----------|---------|
+| `agents-md.md` | AGENTS.md collaboration rules |
+| `guardrails-md.md` | GUARDRAILS.md ownership rules |
+| `claude-md.md` | Lead agent directive |
+| `gemini-md.md` | Gemini sub-agent directive |
+| `codex-md.md` | Codex sub-agent directive |
+| `tasks-yaml.yaml` | Task registry template |
+| `locks-yaml.yaml` | Lock registry template |
+| `github-workflow.yaml` | GitHub Actions workflow |
+| `pre-commit-config.yaml` | Pre-commit hooks |
+
+## Customization
+
+### Adding Custom Agents
+
+1. Create `AGENTNAME.md` using templates as reference
+2. Add to AGENTS.md hierarchy table
+3. Update `OWNERSHIP_MATRIX` in check-ownership.py
+4. Add to `VALID_AGENTS` set in check-ownership.py
+
+### Modifying Ownership Rules
+
+See `skills/multi-agent-guide/references/ownership-matrix.md` for pattern reference.
+
+## License
+
+MIT
+
+## Author
+
+OurDigital
diff --git a/custom-skills/91-multi-agent-guide/commands/setup-agents.md b/custom-skills/91-multi-agent-guide/commands/setup-agents.md
new file mode 100644
index 0000000..892dbde
--- /dev/null
+++ b/custom-skills/91-multi-agent-guide/commands/setup-agents.md
@@ -0,0 +1,56 @@
+---
+name: setup-agents
+description: Initialize multi-agent collaboration framework for the current project
+---
+
+# Setup Multi-Agent Collaboration
+
+You are initializing a multi-agent collaboration framework for this project.
+
+## Your Task
+
+Guide the user through setting up a complete multi-agent framework by:
+
+1. **Assess the project**:
+ - Identify the project type (Python, Node.js, monorepo, etc.)
+ - Determine the source code structure
+ - Check for existing configuration files
+
+2. **Gather requirements** using AskUserQuestion:
+ - Which agents will participate? (Claude, Gemini, Codex, custom)
+ - What are the main ownership domains for each agent?
+ - Do they want CI/CD integration? (GitHub Actions, GitLab CI)
+ - Do they want pre-commit hooks?
+
+3. **Create the framework files**:
+ - `.agent-state/tasks.yaml` - Task registry
+ - `.agent-state/locks.yaml` - Lock registry
+ - `tools/check-ownership.py` - Ownership verification script
+ - `AGENTS.md` - Shared collaboration rules
+ - `GUARDRAILS.md` - Ownership and enforcement rules
+ - `CLAUDE.md` - Lead agent directive
+ - Agent-specific files (GEMINI.md, CODEX.md) if needed
+
+4. **Configure tooling**:
+ - Update or create `.pre-commit-config.yaml` if requested
+ - Create `.github/workflows/ownership-check.yml` if GitHub Actions requested
+
+5. **Customize ownership matrix**:
+ - Update `OWNERSHIP_MATRIX` in check-ownership.py based on project structure
+ - Configure shared and unrestricted files
+
+## Templates
+
+Use templates from the skill directory:
+- `${CLAUDE_PLUGIN_ROOT}/skills/multi-agent-guide/templates/`
+
+## After Setup
+
+Remind the user to:
+1. Set `SEO_AGENT_AUTHOR` environment variable
+2. Install pre-commit hooks: `pre-commit install`
+3. Verify setup: `python tools/check-ownership.py --verify-setup`
+
+## Output
+
+Provide a summary of created files and next steps.
diff --git a/custom-skills/91-multi-agent-guide/SKILL.md b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/SKILL.md
similarity index 100%
rename from custom-skills/91-multi-agent-guide/SKILL.md
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/SKILL.md
diff --git a/custom-skills/91-multi-agent-guide/examples/minimal-setup/README.md b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/examples/minimal-setup/README.md
similarity index 100%
rename from custom-skills/91-multi-agent-guide/examples/minimal-setup/README.md
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/examples/minimal-setup/README.md
diff --git a/custom-skills/91-multi-agent-guide/references/ownership-matrix.md b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/references/ownership-matrix.md
similarity index 100%
rename from custom-skills/91-multi-agent-guide/references/ownership-matrix.md
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/references/ownership-matrix.md
diff --git a/custom-skills/91-multi-agent-guide/scripts/check-ownership.py b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/scripts/check-ownership.py
similarity index 100%
rename from custom-skills/91-multi-agent-guide/scripts/check-ownership.py
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/scripts/check-ownership.py
diff --git a/custom-skills/91-multi-agent-guide/templates/agents-md.md b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/agents-md.md
similarity index 100%
rename from custom-skills/91-multi-agent-guide/templates/agents-md.md
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/agents-md.md
diff --git a/custom-skills/91-multi-agent-guide/templates/claude-md.md b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/claude-md.md
similarity index 100%
rename from custom-skills/91-multi-agent-guide/templates/claude-md.md
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/claude-md.md
diff --git a/custom-skills/91-multi-agent-guide/templates/codex-md.md b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/codex-md.md
similarity index 100%
rename from custom-skills/91-multi-agent-guide/templates/codex-md.md
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/codex-md.md
diff --git a/custom-skills/91-multi-agent-guide/templates/gemini-md.md b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/gemini-md.md
similarity index 100%
rename from custom-skills/91-multi-agent-guide/templates/gemini-md.md
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/gemini-md.md
diff --git a/custom-skills/91-multi-agent-guide/templates/github-workflow.yaml b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/github-workflow.yaml
similarity index 100%
rename from custom-skills/91-multi-agent-guide/templates/github-workflow.yaml
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/github-workflow.yaml
diff --git a/custom-skills/91-multi-agent-guide/templates/guardrails-md.md b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/guardrails-md.md
similarity index 100%
rename from custom-skills/91-multi-agent-guide/templates/guardrails-md.md
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/guardrails-md.md
diff --git a/custom-skills/91-multi-agent-guide/templates/locks-yaml.yaml b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/locks-yaml.yaml
similarity index 100%
rename from custom-skills/91-multi-agent-guide/templates/locks-yaml.yaml
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/locks-yaml.yaml
diff --git a/custom-skills/91-multi-agent-guide/templates/pre-commit-config.yaml b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/pre-commit-config.yaml
similarity index 100%
rename from custom-skills/91-multi-agent-guide/templates/pre-commit-config.yaml
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/pre-commit-config.yaml
diff --git a/custom-skills/91-multi-agent-guide/templates/tasks-yaml.yaml b/custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/tasks-yaml.yaml
similarity index 100%
rename from custom-skills/91-multi-agent-guide/templates/tasks-yaml.yaml
rename to custom-skills/91-multi-agent-guide/skills/multi-agent-guide/templates/tasks-yaml.yaml
diff --git a/custom-skills/OUR_SKILL_PROJECT_PLAN_v1.1.md b/custom-skills/OUR_SKILL_PROJECT_PLAN_v1.1.md
new file mode 100644
index 0000000..fca6544
--- /dev/null
+++ b/custom-skills/OUR_SKILL_PROJECT_PLAN_v1.1.md
@@ -0,0 +1,571 @@
+# OurDigital Custom Claude Skill Project Plan
+
+> **Version**: 1.1
+> **Created**: 2026-01-31
+> **Updated**: 2026-01-31
+> **Author**: OurDigital (Andrew Yim)
+> **Purpose**: Claude Desktop & Claude Code 기반 맞춤 Claude Skill 패키지 구현 가이드
+
+---
+
+## 1. Background
+
+### 1.1 OurDigital 프로필
+
+**OurDigital**은 D.intelligence의 Entrepreneur **Andrew Yim**의 개인 활동 프로필이다.
+
+| 구분 | 내용 |
+|------|------|
+| **사업 영역** | Data Analysis, Data Analytics, Google Tag Manager, Data Intelligence Service |
+| **컨설팅 서비스** | SMB 영역 종합 컨설팅, 코칭 서비스 (OurDigital Lab 운영) |
+| **블로그 채널** | blog.ourdigital.org (Korean), journal.ourdigital.org (English), ourstory.day (Personal Essays) |
+
+### 1.2 활동 영역
+
+- **SEO Specialist**: Technical SEO, On-page SEO, AEO/GEO, Brand Visibility Audit
+- **Brand Marketing Consultant**: 브랜드 마케팅, 콘텐츠 마케팅, 디지털 마케팅, 로컬 마케팅
+- **Data Analyst**: 데이터 분석, 마케팅 자동화, GTM 관리
+- **AI/Data Literacy Evangelist**: AI 리터러시, 데이터 리터러시 교육 및 전파
+
+### 1.3 프로젝트 목적
+
+OurDigital의 전문화된 맞춤 목적 도구를 **Claude Skill 패키지**로 구현하여:
+
+1. 반복적인 워크플로우의 효율화
+2. 일관된 브랜드 보이스와 품질 유지
+3. 외부 AI 도구(Perplexity, Gemini, DALL-E 등)와의 효과적인 협업
+4. 도메인 특화 지식의 체계적 관리
+5. Claude Desktop과 Claude Code 환경 모두에서 일관된 운용
+
+---
+
+## 2. Requirements
+
+### 2.1 Claude Skill 적합성 기준
+
+Anthropic의 Agent Skills 가이드 및 skill-creator 프레임워크에 따른 적합성 기준:
+
+| 기준 | 설명 |
+|------|------|
+| **명확한 트리거** | "언제 이 스킬을 사용할지"가 분명해야 함 |
+| **집중된 범위** | Unix 철학: 1-3가지 핵심 기능에 집중 (800-1,200 words) |
+| **재사용 가능한 리소스** | scripts/, references/, assets/로 번들할 가치 |
+| **Claude가 모르는 지식** | 절차적 지식, 도메인 특화 정보, 조직 고유 맥락 |
+| **명확한 경계** | 다른 스킬과 중복 없이 독립적 작동 |
+
+### 2.2 OurDigital 스킬 트리거 규칙 ⭐ NEW
+
+**중요**: 다른 범용 스킬과의 충돌 방지를 위해, ourdigital 스킬은 반드시 `ourdigital` 키워드가 포함된 경우에만 트리거된다.
+
+| 트리거 패턴 | 예시 |
+|------------|------|
+| **명시적 호출** | "ourdigital 블로그 작성해줘", "ourdigital research 프롬프트" |
+| **스킬명 직접 호출** | "ourdigital-blog로 초안 작성", "ourdigital-designer 사용" |
+| **OurDigital 컨텍스트** | "OurDigital 브랜드 가이드 확인", "ourdigital 스킬 만들어줘" |
+
+**트리거되지 않는 경우**: "블로그 써줘", "리서치 해줘" (일반 요청은 범용 스킬 또는 Claude 기본 기능 사용)
+
+### 2.3 Progressive Disclosure 설계 원칙
+
+```
+Level 1: Metadata (name + description) - 항상 컨텍스트에 로드 (~100 words)
+Level 2: SKILL.md body - 스킬 트리거 시 로드 (<5k words, 권장 <2k words)
+Level 3: Bundled resources - 필요 시 Claude가 로드 (Unlimited)
+```
+
+### 2.4 YAML Frontmatter 규약 ⭐ NEW
+
+Anthropic Claude Skill 권장 규약에 따른 메타데이터 표준:
+
+```yaml
+---
+name: ourdigital-skill-name
+description: |
+ [트리거 조건 명시] ourdigital 키워드와 함께 사용 시 활성화.
+ [핵심 기능 1줄 요약]
+
+ Triggers:
+ - "ourdigital [keyword1]", "ourdigital [keyword2]"
+ - "ourdigital-skill-name [action]"
+
+ Features:
+ - 기능 1
+ - 기능 2
+version: "1.0"
+author: OurDigital
+environment: Desktop | Code | Both
+dependencies:
+ python: ">=3.11"
+ packages: ["package1", "package2"]
+---
+```
+
+### 2.5 스킬 디렉토리 표준 구조 ⭐ UPDATED
+
+```
+ourdigital-skill-name/
+├── Desktop/ # Claude Desktop 버전
+│ ├── SKILL.md # Desktop용 스킬 정의
+│ ├── scripts/ # Desktop 환경용 스크립트
+│ ├── references/ # 참조 문서
+│ └── assets/ # 템플릿, 이미지 등
+│
+├── Code/ # Claude Code 버전
+│ ├── SKILL.md # Code용 스킬 정의
+│ ├── scripts/ # Code 환경용 스크립트
+│ ├── references/ # 참조 문서
+│ └── assets/ # 템플릿, 이미지 등
+│
+├── shared/ # 공통 리소스
+│ ├── references/ # 공통 참조 문서
+│ ├── assets/ # 공통 에셋
+│ └── templates/ # 공통 템플릿
+│
+├── docs/ # 문서화 ⭐ NEW
+│ ├── CHANGELOG.md # 변경 이력
+│ ├── SETUP.md # 설치/설정 가이드
+│ └── logs/ # 업데이트 로그 파일
+│
+└── README.md # 스킬 개요
+```
+
+---
+
+## 3. Package Environment Standards ⭐ NEW
+
+### 3.1 공통 환경 요건
+
+OurDigital 스킬 패키지는 일관된 환경에서 운용되도록 다음 표준을 따른다:
+
+| 항목 | 표준 | 비고 |
+|------|------|------|
+| **Python 버전** | >= 3.11 | pyenv 또는 conda로 관리 |
+| **가상 환경** | `.venv-ourdigital/` | 프로젝트 루트에 위치 |
+| **환경 변수 파일** | `.env.ourdigital` | 민감 정보 포함, .gitignore 등록 |
+| **설정 파일** | `config/ourdigital.yaml` | 스킬 공통 설정 |
+
+### 3.2 인증 및 자격증명 관리
+
+```
+~/.ourdigital/
+├── credentials/
+│ ├── notion.json # Notion API 토큰
+│ ├── ghost.json # Ghost Admin API 키
+│ ├── google.json # Google API 자격증명
+│ └── figma.json # Figma API 토큰
+├── config.yaml # 전역 설정
+└── .env # 환경 변수 (심볼릭 링크)
+```
+
+### 3.3 환경 변수 표준
+
+```bash
+# .env.ourdigital
+OURDIGITAL_ENV=development|production
+OURDIGITAL_CONFIG_PATH=~/.ourdigital/config.yaml
+OURDIGITAL_CREDENTIALS_PATH=~/.ourdigital/credentials/
+
+# Notion
+NOTION_API_TOKEN=secret_xxxxx
+NOTION_WORKING_WITH_AI_DB=f8f19ede-32bd-43ac-9f60-0651f6f40afe
+
+# Ghost CMS
+GHOST_BLOG_URL=https://blog.ourdigital.org
+GHOST_BLOG_ADMIN_KEY=xxxxx
+GHOST_JOURNAL_URL=https://journal.ourdigital.org
+GHOST_JOURNAL_ADMIN_KEY=xxxxx
+```
+
+### 3.4 패키지 의존성 관리
+
+```
+ourdigital-skills/
+├── pyproject.toml # 전체 패키지 의존성
+├── requirements/
+│ ├── base.txt # 공통 의존성
+│ ├── desktop.txt # Desktop 전용
+│ └── code.txt # Code 전용
+└── setup.py # 패키지 설치 스크립트
+```
+
+---
+
+## 4. Skill Architecture
+
+### 4.1 전체 스킬 구성 (10개)
+
+```
+┌─────────────────────────────────────────────────────────────────┐
+│ META LAYER (기반 스킬) │
+│ ┌─────────────────────────┐ ┌─────────────────────────────┐ │
+│ │ ourdigital-skill-creator│ │ ourdigital-brand-guide │ │
+│ │ (스킬 생성/관리) │ │ (브랜드 기준/스타일 가이드) │ │
+│ └─────────────────────────┘ └─────────────────────────────┘ │
+└─────────────────────────────────────────────────────────────────┘
+ │
+ ▼
+┌─────────────────────────────────────────────────────────────────┐
+│ CONTENT LAYER (콘텐츠 제작) │
+│ ┌──────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │
+│ │ ourdigital-blog │ │ourdigital-journal│ │ourdigital- │ │
+│ │ (한국어 블로그) │ │(영문 에세이) │ │research │ │
+│ └──────────────────┘ └──────────────────┘ │(리서치 프롬프트) │ │
+│ └─────────────────┘ │
+└─────────────────────────────────────────────────────────────────┘
+ │
+ ▼
+┌─────────────────────────────────────────────────────────────────┐
+│ PRODUCTION LAYER (제작 지원) │
+│ ┌──────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │
+│ │ourdigital-document│ │ourdigital-designer│ │ourdigital- │ │
+│ │(문서/프레젠테이션)│ │(비주얼 프롬프트) │ │ad-manager │ │
+│ └──────────────────┘ └──────────────────┘ │(광고 카피) │ │
+│ └─────────────────┘ │
+└─────────────────────────────────────────────────────────────────┘
+ │
+ ▼
+┌─────────────────────────────────────────────────────────────────┐
+│ SUPPORT LAYER (업무 지원) │
+│ ┌─────────────────────────┐ ┌─────────────────────────────┐ │
+│ │ ourdigital-trainer │ │ ourdigital-backoffice │ │
+│ │ (교육자료/평가) │ │ (견적/계약/비용분석) │ │
+│ └─────────────────────────┘ └─────────────────────────────┘ │
+└─────────────────────────────────────────────────────────────────┘
+```
+
+### 4.2 개별 스킬 정의
+
+#### 4.2.1 ourdigital-skill-creator (메타 스킬)
+
+| 항목 | 내용 |
+|------|------|
+| **역할** | 스킬 적합성 평가, 인터랙티브 요구사항 분석, 스킬 제작, 이력 관리 |
+| **트리거** | "ourdigital 스킬 만들기", "ourdigital skill 적합성", "ourdigital 스킬 제작" |
+| **핵심 기능** | 1) 니즈의 Claude Skill 적합성 평가 2) **인터랙티브 질의-응답 기반 요구사항 정의** 3) 최적화된 스킬 생성 4) **Notion DB 이력 관리** |
+| **특수 기능** | 수정 이력 관리, 학습 포인트 축적, Notion 연동 |
+
+**인터랙티브 워크플로우** ⭐ NEW:
+```
+1. [니즈 파악] 사용자의 초기 요청 수신
+ ↓
+2. [적합성 검토] Claude Skill 적합성 평가 질문
+ ↓
+3. [요구사항 정의] 단계별 질의-응답 (최소 3~5개 질문)
+ - 스킬 목적과 핵심 기능
+ - 트리거 조건과 사용 시나리오
+ - 필요한 외부 도구/리소스
+ - 기대 출력 형식
+ - Desktop/Code 환경 요구사항
+ ↓
+4. [스킬 생성] 요구사항 기반 스킬 초안 생성
+ ↓
+5. [검증] 사용자 확인 및 피드백 반영
+ ↓
+6. [저장] Notion DB + docs/ 이력 기록
+```
+
+**번들 리소스:**
+```
+ourdigital-skill-creator/
+├── Desktop/
+│ └── SKILL.md
+├── Code/
+│ └── SKILL.md
+├── shared/
+│ ├── scripts/
+│ │ ├── init_skill.py
+│ │ ├── validate_skill.py
+│ │ └── sync_notion.py # Notion 연동
+│ ├── references/
+│ │ ├── suitability-criteria.md
+│ │ ├── skill-patterns.md
+│ │ └── qa-templates.md # 질의 템플릿
+│ └── templates/
+│ └── skill-template/
+├── docs/
+│ ├── CHANGELOG.md
+│ └── logs/
+└── README.md
+```
+
+---
+
+#### 4.2.2 ourdigital-brand-guide (기준 참조 스킬)
+
+| 항목 | 내용 |
+|------|------|
+| **역할** | 글쓰기/페르소나/시각 스타일 기준 관리, 브랜드 적합성 판별 |
+| **트리거** | "ourdigital 브랜드 가이드", "ourdigital 스타일 체크", "ourdigital 톤앤매너" |
+| **핵심 기능** | 1) 글쓰기 스타일 기준 2) 페르소나 특징/스타일 3) 시각 요소 기준 4) 산출물 브랜드 적합성 판별 |
+
+---
+
+#### 4.2.3 ourdigital-blog (콘텐츠 제작)
+
+| 항목 | 내용 |
+|------|------|
+| **역할** | 한국어 블로그 초안 작성, SEO 최적화 편집 |
+| **트리거** | "ourdigital 블로그", "ourdigital blog 초안", "ourdigital 한국어 포스트" |
+| **핵심 기능** | 1) 블로그 초안 작성 2) SEO 메타데이터 생성 3) Ghost CMS 포맷 |
+| **출력 채널** | blog.ourdigital.org (Ghost CMS) |
+
+---
+
+#### 4.2.4 ourdigital-journal (콘텐츠 제작)
+
+| 항목 | 내용 |
+|------|------|
+| **역할** | 영문 에세이/리서치 작성 및 포스팅 |
+| **트리거** | "ourdigital journal", "ourdigital 영문 에세이", "ourdigital English article" |
+| **핵심 기능** | 1) 영문 에세이 작성 2) 리서치 기반 아티클 3) 학술적 글쓰기 스타일 |
+| **출력 채널** | journal.ourdigital.org (Ghost CMS) |
+
+---
+
+#### 4.2.5 ourdigital-research (프롬프트 엔지니어링)
+
+| 항목 | 내용 |
+|------|------|
+| **역할** | Deep Research용 구조화된 프롬프트 생성 |
+| **트리거** | "ourdigital research 프롬프트", "ourdigital deep research", "ourdigital 조사 요청" |
+| **핵심 기능** | 1) 조사 목적/용도 확인 대화 2) 구조화된 리서치 프롬프트 생성 3) 외부 도구 최적화 |
+
+---
+
+#### 4.2.6 ourdigital-document (문서 제작)
+
+| 항목 | 내용 |
+|------|------|
+| **역할** | 문서 구성/초안 작성, 프레젠테이션 프롬프트 생성 |
+| **트리거** | "ourdigital 문서", "ourdigital 기획서", "ourdigital 프레젠테이션" |
+| **핵심 기능** | 1) 문서 구성 및 개요 2) Word/Google Doc/Markdown 초안 3) Gamma/Figma용 프롬프트 |
+
+---
+
+#### 4.2.7 ourdigital-designer (프롬프트 엔지니어링)
+
+| 항목 | 내용 |
+|------|------|
+| **역할** | Visual AI용 구조화된 프롬프트 생성, Figma 연동 |
+| **트리거** | "ourdigital 디자인", "ourdigital 비주얼", "ourdigital 이미지 생성" |
+| **핵심 기능** | 1) 디자인 방향 설정 2) AI 이미지 생성 프롬프트 3) Figma Connector 연동 |
+
+---
+
+#### 4.2.8 ourdigital-ad-manager (마케팅 실행)
+
+| 항목 | 내용 |
+|------|------|
+| **역할** | 광고 카피라이팅, 키워드 검색량 조사 |
+| **트리거** | "ourdigital 광고 카피", "ourdigital 검색 광고", "ourdigital 키워드" |
+| **핵심 기능** | 1) 검색 광고 카피 2) 디스플레이 광고 카피 3) 브랜디드 콘텐츠 4) 키워드 검색량 웹 서치 |
+
+---
+
+#### 4.2.9 ourdigital-trainer (교육 지원)
+
+| 항목 | 내용 |
+|------|------|
+| **역할** | 교육자료 구성, 진행 계획, 참여자 평가 |
+| **트리거** | "ourdigital 교육", "ourdigital 트레이닝", "ourdigital 워크샵" |
+| **핵심 기능** | 1) 주제별 교육자료 구성 2) 교육 진행 계획 3) 참여자 평가 설계 |
+
+---
+
+#### 4.2.10 ourdigital-backoffice (업무 지원)
+
+| 항목 | 내용 |
+|------|------|
+| **역할** | 견적서, 서비스 소개서, 계약서, 비용 분석 |
+| **트리거** | "ourdigital 견적서", "ourdigital 계약서", "ourdigital 비용 분석" |
+| **핵심 기능** | 1) 견적서 작성 2) 서비스 소개서 3) 계약서 초안 (법적 검토 필요 명시) 4) 비용 분석 |
+
+---
+
+## 5. Development History Management ⭐ NEW
+
+### 5.1 Notion Database 연동
+
+**대상 데이터베이스**: [Working with AI](https://www.notion.so/dintelligence/f529bd7b67ce4033bb70ce951d65c9e8)
+
+| 필드 | 용도 |
+|------|------|
+| **Name** | 스킬명 + 버전 (예: "ourdigital-blog v1.2") |
+| **Type** | "Skill Development" |
+| **Category** | "OurDigital Skills" |
+| **AI used** | "Claude Opus" 또는 "Claude Code" |
+| **Topic** | 해당 스킬 카테고리 |
+
+**저장 시점**:
+- 스킬 신규 생성 시
+- 스킬 수정/업데이트 시
+- 버전 릴리즈 시
+
+### 5.2 로컬 문서 관리
+
+각 스킬의 `docs/` 디렉토리에 다음 파일 유지:
+
+```markdown
+# docs/CHANGELOG.md
+
+## [1.1.0] - 2026-01-31
+
+### Added
+- 새로운 기능 설명
+
+### Changed
+- 변경된 기능 설명
+
+### Fixed
+- 수정된 버그 설명
+
+### Notion Ref
+- https://notion.so/page-id
+```
+
+```markdown
+# docs/logs/2026-01-31-update.md
+
+## 업데이트 정보
+- **일시**: 2026-01-31 15:30 KST
+- **버전**: 1.0 → 1.1
+- **작업자**: Andrew Yim
+- **Claude 세션**: [링크]
+
+## 변경 내용
+...
+
+## Notion 동기화
+- DB 레코드 ID: xxx
+- 동기화 시간: 2026-01-31 15:35 KST
+```
+
+---
+
+## 6. Implementation Plan
+
+### 6.1 구현 단계
+
+```
+Phase 1: 기반 스킬 (Week 1-2)
+├── ourdigital-skill-creator (Notion 연동 포함)
+└── ourdigital-brand-guide
+
+Phase 2: 핵심 콘텐츠 스킬 (Week 3-4)
+├── ourdigital-blog
+├── ourdigital-journal
+└── ourdigital-research
+
+Phase 3: 제작 지원 스킬 (Week 5-6)
+├── ourdigital-document
+├── ourdigital-designer
+└── ourdigital-ad-manager
+
+Phase 4: 업무 지원 스킬 (Week 7-8)
+├── ourdigital-trainer
+└── ourdigital-backoffice
+```
+
+### 6.2 Phase 1 상세 계획
+
+#### Task 1.1: ourdigital-skill-creator 구현
+
+| 단계 | 작업 | 산출물 |
+|------|------|--------|
+| 1 | 디렉토리 구조 생성 (Desktop/Code 분리) | `/ourdigital-skill-creator/` |
+| 2 | Desktop용 SKILL.md 작성 | `Desktop/SKILL.md` |
+| 3 | Code용 SKILL.md 작성 | `Code/SKILL.md` |
+| 4 | 인터랙티브 Q&A 템플릿 | `shared/references/qa-templates.md` |
+| 5 | Notion 동기화 스크립트 | `shared/scripts/sync_notion.py` |
+| 6 | 공통 환경 설정 | `pyproject.toml`, `.env.ourdigital` |
+| 7 | 검증 및 테스트 | 실제 스킬 생성 테스트 |
+
+### 6.3 Claude Code 실행 가이드
+
+```bash
+# 프로젝트 루트 설정
+cd /path/to/ourdigital-skills
+
+# 가상 환경 생성
+python -m venv .venv-ourdigital
+source .venv-ourdigital/bin/activate
+
+# 의존성 설치
+pip install -r requirements/base.txt
+
+# Phase 1 실행 (Claude Code)
+claude "OUR_SKILL_PROJECT_PLAN.md를 참조하여 ourdigital-skill-creator 스킬을 구현해줘. Code 버전으로 시작해줘."
+
+# 스킬 검증
+python shared/scripts/validate_skill.py ourdigital-skill-creator
+
+# Notion 동기화
+python shared/scripts/sync_notion.py ourdigital-skill-creator --action=create
+```
+
+---
+
+## 7. Quality Checklist
+
+### 7.1 스킬 완성도 체크리스트
+
+각 스킬 구현 완료 시 확인:
+
+- [ ] Desktop/SKILL.md 완성 (frontmatter 규약 준수)
+- [ ] Code/SKILL.md 완성 (frontmatter 규약 준수)
+- [ ] description에 `ourdigital` 트리거 키워드 포함
+- [ ] SKILL.md body 800-1,200 words 이내
+- [ ] shared/ 공통 리소스 완성
+- [ ] docs/CHANGELOG.md 초기화
+- [ ] 환경 변수 문서화 (docs/SETUP.md)
+- [ ] 실제 사용 시나리오 테스트
+- [ ] Notion DB 레코드 생성
+
+### 7.2 스킬 간 의존성 확인
+
+```
+ourdigital-skill-creator ──┬── 모든 스킬 생성/관리/이력 관리
+ │
+ourdigital-brand-guide ────┼── 모든 산출물 품질 기준
+ │
+ourdigital-blog ───────────┼── ourdigital-research (리서치 프롬프트)
+ │ ourdigital-designer (피처드 이미지)
+ │
+ourdigital-document ───────┼── ourdigital-brand-guide (브랜드 적합성)
+ │ ourdigital-designer (프레젠테이션 비주얼)
+```
+
+---
+
+## 8. Appendix
+
+### 8.1 참조 문서
+
+| 문서 | 위치 | 용도 |
+|------|------|------|
+| Anthropic Agent Skills | `/mnt/project/02-agent-skills.md` | 스킬 설계 원칙 |
+| skill-creator | `/mnt/skills/examples/skill-creator/` | 기본 스킬 생성 프레임워크 |
+| jamie-journal-editor | `/mnt/skills/user/jamie-journal-editor/` | 참조 패턴 (유사 블로그 에디터) |
+| ourdigital-research-publisher | `/mnt/skills/user/ourdigital-research-publisher/` | 기존 리서치 스킬 |
+
+### 8.2 외부 도구 연동
+
+| 도구 | 연동 방식 | 관련 스킬 |
+|------|----------|----------|
+| Ghost CMS | API / Admin | ourdigital-blog, ourdigital-journal |
+| Notion | MCP Connector + API | 전체 (문서 저장, 이력 관리) |
+| Perplexity | 프롬프트 생성 → 수동 실행 | ourdigital-research |
+| Gamma | 프롬프트 생성 → MCP | ourdigital-document |
+| Figma | MCP Connector | ourdigital-designer |
+| DALL-E/Midjourney | 프롬프트 생성 → 수동 실행 | ourdigital-designer |
+
+### 8.3 버전 이력
+
+| 버전 | 날짜 | 변경 내용 |
+|------|------|----------|
+| 1.0 | 2026-01-31 | 초기 프로젝트 계획 수립 |
+| 1.1 | 2026-01-31 | 트리거 규칙 추가, Desktop/Code 분리, 환경 표준화, Notion 이력 관리 |
+
+---
+
+**End of Document**
diff --git a/custom-skills/_ourdigital-shared/.env.ourdigital.template b/custom-skills/_ourdigital-shared/.env.ourdigital.template
new file mode 100644
index 0000000..39f28a2
--- /dev/null
+++ b/custom-skills/_ourdigital-shared/.env.ourdigital.template
@@ -0,0 +1,69 @@
+# OurDigital Skills Environment Variables Template
+# Copy this file to .env.ourdigital and fill in your values
+# IMPORTANT: Never commit the actual .env.ourdigital file to version control
+
+# =============================================================================
+# Environment Settings
+# =============================================================================
+OURDIGITAL_ENV=development # development | production
+OURDIGITAL_CONFIG_PATH=~/.ourdigital/config.yaml
+OURDIGITAL_CREDENTIALS_PATH=~/.ourdigital/credentials/
+
+# =============================================================================
+# Notion API
+# =============================================================================
+NOTION_API_TOKEN=secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+# Working with AI Database (primary export destination)
+NOTION_WORKING_WITH_AI_DB=f8f19ede-32bd-43ac-9f60-0651f6f40afe
+
+# OurDigital Channels Database
+NOTION_OURDIGITAL_CHANNELS_DB=9e958359535b495e863aba20d6c0a59b
+
+# =============================================================================
+# Ghost CMS
+# =============================================================================
+# blog.ourdigital.org (Korean blog)
+GHOST_BLOG_URL=https://blog.ourdigital.org
+GHOST_BLOG_ADMIN_KEY=
+
+# journal.ourdigital.org (English journal)
+GHOST_JOURNAL_URL=https://journal.ourdigital.org
+GHOST_JOURNAL_ADMIN_KEY=
+
+# ourstory.day (Personal essays)
+GHOST_OURSTORY_URL=https://ourstory.day
+GHOST_OURSTORY_ADMIN_KEY=
+
+# =============================================================================
+# Google APIs
+# =============================================================================
+GOOGLE_APPLICATION_CREDENTIALS=~/.ourdigital/credentials/google.json
+
+# Google Search Console
+GSC_PROPERTY_URL=https://www.ourdigital.org
+
+# Google Analytics 4
+GA4_PROPERTY_ID=
+
+# =============================================================================
+# Figma
+# =============================================================================
+FIGMA_ACCESS_TOKEN=
+
+# =============================================================================
+# n8n Workflow Automation
+# =============================================================================
+N8N_HOST_URL=https://n8n.dintelligence.co.kr
+N8N_API_KEY=
+
+# =============================================================================
+# Optional: AI Services
+# =============================================================================
+# ANTHROPIC_API_KEY= # Usually set globally
+# OPENAI_API_KEY= # For DALL-E integration
+
+# =============================================================================
+# Ulysses Export (macOS)
+# =============================================================================
+ULYSSES_EXPORT_PATH=~/Library/Mobile Documents/com~apple~CloudDocs/Ulysses/Blog Drafts/
diff --git a/custom-skills/_ourdigital-shared/README.md b/custom-skills/_ourdigital-shared/README.md
new file mode 100644
index 0000000..af7852f
--- /dev/null
+++ b/custom-skills/_ourdigital-shared/README.md
@@ -0,0 +1,129 @@
+# OurDigital Skills - Shared Environment
+
+Shared configuration, dependencies, and environment setup for all OurDigital Claude Skills.
+
+## Quick Setup
+
+### 1. Create Virtual Environment
+
+```bash
+cd /path/to/our-claude-skills/custom-skills
+python -m venv .venv-ourdigital
+source .venv-ourdigital/bin/activate # macOS/Linux
+```
+
+### 2. Install Dependencies
+
+```bash
+# For Claude Code environment
+pip install -r _ourdigital-shared/requirements/code.txt
+
+# For Claude Desktop environment
+pip install -r _ourdigital-shared/requirements/desktop.txt
+
+# Or install as package
+pip install -e _ourdigital-shared/
+```
+
+### 3. Configure Environment Variables
+
+```bash
+# Copy template
+cp _ourdigital-shared/.env.ourdigital.template ~/.env.ourdigital
+
+# Edit with your credentials
+nano ~/.env.ourdigital
+```
+
+### 4. Set Up Credentials Directory
+
+```bash
+mkdir -p ~/.ourdigital/credentials
+# Add your credential files:
+# - ~/.ourdigital/credentials/notion.json
+# - ~/.ourdigital/credentials/ghost.json
+# - ~/.ourdigital/credentials/google.json
+```
+
+## Directory Structure
+
+```
+_ourdigital-shared/
+├── pyproject.toml # Package configuration
+├── .env.ourdigital.template # Environment variables template
+├── requirements/
+│ ├── base.txt # Common dependencies
+│ ├── desktop.txt # Desktop-specific
+│ └── code.txt # Code-specific
+├── config/
+│ └── ourdigital.yaml # Global configuration
+└── README.md # This file
+```
+
+## Configuration
+
+### Environment Variables
+
+Key variables in `.env.ourdigital`:
+
+| Variable | Description |
+|----------|-------------|
+| `OURDIGITAL_ENV` | Environment (development/production) |
+| `NOTION_API_TOKEN` | Notion integration token |
+| `NOTION_WORKING_WITH_AI_DB` | Primary Notion database ID |
+| `GHOST_BLOG_ADMIN_KEY` | Ghost CMS admin API key |
+
+### Config File
+
+`config/ourdigital.yaml` contains:
+- Brand settings (name, tagline, values)
+- Channel configurations
+- Color palette
+- Typography settings
+- Skill numbering conventions
+- Export paths
+
+## Usage in Skills
+
+### Loading Configuration
+
+```python
+import yaml
+from pathlib import Path
+
+def load_config():
+ config_path = Path(__file__).parent.parent / "_ourdigital-shared/config/ourdigital.yaml"
+ with open(config_path) as f:
+ return yaml.safe_load(f)
+
+config = load_config()
+print(config['brand']['tagline'])
+```
+
+### Loading Environment
+
+```python
+from dotenv import load_dotenv
+import os
+
+load_dotenv(os.path.expanduser("~/.env.ourdigital"))
+
+notion_token = os.getenv("NOTION_API_TOKEN")
+```
+
+## Skill Numbering
+
+| Range | Category |
+|-------|----------|
+| 01-09 | OurDigital Core (brand, blog, journal, research, etc.) |
+| 10 | Meta (skill-creator) |
+| 11-19 | SEO Tools |
+| 20-29 | GTM/Analytics Tools |
+| 31-39 | Notion Tools |
+| 40-49 | Jamie Clinic Tools |
+
+## Version
+
+- Package Version: 1.0.0
+- Python Requirement: >= 3.11
+- Author: OurDigital (Andrew Yim)
diff --git a/custom-skills/_ourdigital-shared/config/ourdigital.yaml b/custom-skills/_ourdigital-shared/config/ourdigital.yaml
new file mode 100644
index 0000000..100bd1d
--- /dev/null
+++ b/custom-skills/_ourdigital-shared/config/ourdigital.yaml
@@ -0,0 +1,141 @@
+# OurDigital Skills Configuration
+# Global settings for all ourdigital-* skills
+
+# =============================================================================
+# Environment
+# =============================================================================
+environment: development # development | production
+
+# =============================================================================
+# Brand Settings
+# =============================================================================
+brand:
+ name: "OurDigital Clinic"
+ tagline: "우리 디지털 클리닉 | Your Digital Health Partner"
+ philosophy: "Precision + Empathy + Evidence"
+
+ values:
+ - key: data-driven
+ korean: 데이터 중심
+ metaphor: 정밀 검사
+ - key: in-action
+ korean: 실행 지향
+ metaphor: 실행 가능한 처방
+ - key: marketing-science
+ korean: 마케팅 과학
+ metaphor: 근거 중심 의학
+
+# =============================================================================
+# Channels
+# =============================================================================
+channels:
+ main:
+ domain: ourdigital.org
+ purpose: "Business & Consulting Hub"
+ tone: "Professional, Data-driven"
+
+ blog:
+ domain: blog.ourdigital.org
+ purpose: "Knowledge & Thought Leadership"
+ tone: "Analytical, Educational"
+ platform: ghost
+
+ journal:
+ domain: journal.ourdigital.org
+ purpose: "Creative Essays & Culture"
+ tone: "Conversational, Poetic"
+ platform: ghost
+
+ ourstory:
+ domain: ourstory.day
+ purpose: "Personal Narratives"
+ tone: "Intimate, Authentic"
+ platform: ghost
+
+ corporate:
+ domain: dintelligence.co.kr
+ purpose: "Corporate Partnership"
+ tone: "Professional, B2B"
+
+# =============================================================================
+# Color Palette
+# =============================================================================
+colors:
+ primary:
+ d-black: "#221814"
+ d-olive: "#cedc00"
+ d-green: "#287379"
+ d-blue: "#0075c0"
+ d-beige: "#f2f2de"
+ d-gray: "#ebebeb"
+ d-border: "#cdcac8"
+
+ hive:
+ yellow: "#ffe100"
+ orange: "#f1a615"
+ skyblue: "#21a8bc"
+
+ text:
+ black: "#000000"
+ gray: "#7a7a7b"
+ white: "#ffffff"
+
+# =============================================================================
+# Typography
+# =============================================================================
+typography:
+ korean: "Noto Sans KR"
+ english:
+ primary: "Noto Sans"
+ emphasis: "Inter"
+ grid_columns: 12
+
+# =============================================================================
+# Notion Integration
+# =============================================================================
+notion:
+ databases:
+ working_with_ai:
+ id: "f8f19ede-32bd-43ac-9f60-0651f6f40afe"
+ url: "https://www.notion.so/f529bd7b67ce4033bb70ce951d65c9e8"
+
+ ourdigital_channels:
+ id: "9e958359535b495e863aba20d6c0a59b"
+
+ default_properties:
+ ai_used: "Claude Code"
+ status: "In progress"
+
+# =============================================================================
+# Skill Settings
+# =============================================================================
+skills:
+ trigger_prefix: "ourdigital"
+
+ numbering:
+ core: "01-09" # Brand, blog, journal, research, etc.
+ meta: "10" # Skill creator
+ seo: "11-19" # SEO tools
+ gtm: "20-29" # GTM/Analytics
+ notion: "31-39" # Notion tools
+ jamie: "40-49" # Jamie Clinic
+
+ body_word_limit:
+ min: 800
+ max: 1200
+
+ directory_structure:
+ - code/
+ - desktop/
+ - shared/references/
+ - shared/templates/
+ - shared/scripts/
+ - docs/
+ - docs/logs/
+
+# =============================================================================
+# Export Paths
+# =============================================================================
+exports:
+ ulysses: "~/Library/Mobile Documents/com~apple~CloudDocs/Ulysses/Blog Drafts/"
+ local: "./output/"
diff --git a/custom-skills/_ourdigital-shared/pyproject.toml b/custom-skills/_ourdigital-shared/pyproject.toml
new file mode 100644
index 0000000..ba4ec51
--- /dev/null
+++ b/custom-skills/_ourdigital-shared/pyproject.toml
@@ -0,0 +1,64 @@
+[build-system]
+requires = ["setuptools>=61.0", "wheel"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "ourdigital-skills"
+version = "1.0.0"
+description = "OurDigital Custom Claude Skills Package"
+readme = "README.md"
+license = {text = "MIT"}
+authors = [
+ {name = "Andrew Yim", email = "andrew@ourdigital.org"}
+]
+requires-python = ">=3.11"
+classifiers = [
+ "Development Status :: 4 - Beta",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: MIT License",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
+]
+
+dependencies = [
+ "requests>=2.31.0",
+ "python-dotenv>=1.0.0",
+ "pyyaml>=6.0",
+ "notion-client>=2.0.0",
+]
+
+[project.optional-dependencies]
+dev = [
+ "pytest>=7.4.0",
+ "black>=23.0.0",
+ "ruff>=0.1.0",
+]
+desktop = [
+ # Desktop-specific dependencies
+]
+code = [
+ # Claude Code specific dependencies
+ "anthropic>=0.18.0",
+]
+
+[project.urls]
+Homepage = "https://www.ourdigital.org"
+Repository = "https://github.com/ourdigital/our-claude-skills"
+
+[tool.setuptools.packages.find]
+where = ["."]
+include = ["ourdigital_skills*"]
+
+[tool.black]
+line-length = 100
+target-version = ['py311']
+
+[tool.ruff]
+line-length = 100
+select = ["E", "F", "I", "N", "W"]
+ignore = ["E501"]
+
+[tool.pytest.ini_options]
+testpaths = ["tests"]
+python_files = ["test_*.py"]
diff --git a/custom-skills/_ourdigital-shared/requirements/base.txt b/custom-skills/_ourdigital-shared/requirements/base.txt
new file mode 100644
index 0000000..62e9bc9
--- /dev/null
+++ b/custom-skills/_ourdigital-shared/requirements/base.txt
@@ -0,0 +1,29 @@
+# OurDigital Skills - Base Requirements
+# Common dependencies for all ourdigital skills
+
+# Core utilities
+requests>=2.31.0
+python-dotenv>=1.0.0
+pyyaml>=6.0.1
+
+# Notion integration
+notion-client>=2.2.0
+
+# Date/time handling
+python-dateutil>=2.8.2
+
+# File handling
+pathlib2>=2.3.7;python_version<"3.12"
+
+# JSON handling
+orjson>=3.9.0
+
+# Markdown processing
+markdown>=3.5.0
+markdownify>=0.11.6
+
+# HTTP client
+httpx>=0.25.0
+
+# Data validation
+pydantic>=2.5.0
diff --git a/custom-skills/_ourdigital-shared/requirements/code.txt b/custom-skills/_ourdigital-shared/requirements/code.txt
new file mode 100644
index 0000000..6d292aa
--- /dev/null
+++ b/custom-skills/_ourdigital-shared/requirements/code.txt
@@ -0,0 +1,23 @@
+# OurDigital Skills - Claude Code Requirements
+# Dependencies specific to Claude Code environment
+
+-r base.txt
+
+# Anthropic SDK (for programmatic Claude access)
+anthropic>=0.18.0
+
+# Ghost CMS integration
+# ghost-admin-api>=0.1.0 # If available, or use requests
+
+# SEO tools
+beautifulsoup4>=4.12.0
+lxml>=4.9.0
+
+# Web scraping (for research skills)
+aiohttp>=3.9.0
+
+# Data analysis
+pandas>=2.1.0
+
+# Template rendering
+jinja2>=3.1.0
diff --git a/custom-skills/_ourdigital-shared/requirements/desktop.txt b/custom-skills/_ourdigital-shared/requirements/desktop.txt
new file mode 100644
index 0000000..d792e22
--- /dev/null
+++ b/custom-skills/_ourdigital-shared/requirements/desktop.txt
@@ -0,0 +1,13 @@
+# OurDigital Skills - Desktop Requirements
+# Dependencies specific to Claude Desktop environment
+
+-r base.txt
+
+# MCP integration (if building custom MCP servers)
+# mcp>=0.1.0
+
+# Ulysses integration (macOS)
+pyobjc-framework-Cocoa>=10.0;sys_platform=="darwin"
+
+# Clipboard handling
+pyperclip>=1.8.2