feat: Add OurDigital custom skills package (10 skills)
Complete implementation of OurDigital skills with dual-platform support (Claude Desktop + Claude Code) following standardized structure. Skills created: - 01-ourdigital-brand-guide: Brand reference & style guidelines - 02-ourdigital-blog: Korean blog drafts (blog.ourdigital.org) - 03-ourdigital-journal: English essays (journal.ourdigital.org) - 04-ourdigital-research: Research prompts & workflows - 05-ourdigital-document: Notion-to-presentation pipeline - 06-ourdigital-designer: Visual/image prompt generation - 07-ourdigital-ad-manager: Ad copywriting & keyword research - 08-ourdigital-trainer: Training materials & workshop planning - 09-ourdigital-backoffice: Quotes, proposals, cost analysis - 10-ourdigital-skill-creator: Meta skill for creating new skills Features: - YAML frontmatter with "ourdigital" or "our" prefix triggers - Standardized directory structure (code/, desktop/, shared/, docs/) - Shared environment setup (_ourdigital-shared/) - Comprehensive reference documentation - Cross-skill integration support Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
```
|
||||
@@ -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 |
|
||||
Reference in New Issue
Block a user