refactor: Renumber skills 00→10, 01→11 for consistent numbering
- Rename 00-ourdigital-visual-storytelling to 10-ourdigital-visual-storytelling - Rename 01-ourdigital-research-publisher to 11-ourdigital-research-publisher - Update CLAUDE.md with new skill numbering and add skill 12 (seo-audit) - Skill count updated from 8 to 9 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
# OurDigital Blog Style Guide
|
||||
|
||||
## Channel-Specific Voice & Tone
|
||||
|
||||
### blog.ourdigital.org (Korean)
|
||||
**Voice**: 전문적이면서 친근한 선배 마케터
|
||||
**Tone**: 실용적, 데이터 기반, 인사이트 중심
|
||||
|
||||
Writing patterns:
|
||||
- 제목: 핵심 키워드 포함, 30자 이내
|
||||
- 도입부: 독자의 고민/질문으로 시작
|
||||
- 본문: 번호 매기기보다 소제목 활용
|
||||
- 전문용어: 한글(영문) 형식 - 예: 검색엔진최적화(SEO)
|
||||
- 문장: ~입니다/~습니다 경어체
|
||||
- 단락: 3-4문장, 모바일 가독성 고려
|
||||
|
||||
Example opening:
|
||||
```
|
||||
"구글 상위 노출, 왜 이렇게 어려울까요?
|
||||
많은 마케터들이 SEO에 시간을 투자하지만
|
||||
결과가 보이지 않아 좌절합니다.
|
||||
오늘은 실제로 효과를 본 전략 3가지를 공유합니다."
|
||||
```
|
||||
|
||||
### journal.ourdigital.org (English)
|
||||
**Voice**: Thoughtful industry analyst
|
||||
**Tone**: Insightful, evidence-based, forward-looking
|
||||
|
||||
Writing patterns:
|
||||
- Headlines: Clear value proposition, under 60 chars
|
||||
- Opening: Hook with industry trend or data point
|
||||
- Body: Structured arguments with supporting evidence
|
||||
- Terminology: Define jargon on first use
|
||||
- Style: Active voice, varied sentence length
|
||||
- Paragraphs: 2-4 sentences for scannability
|
||||
|
||||
Example opening:
|
||||
```
|
||||
"The digital marketing landscape shifted dramatically in 2024.
|
||||
With AI reshaping search behavior, traditional SEO metrics
|
||||
no longer tell the full story. Here's what the data reveals—
|
||||
and what it means for your strategy."
|
||||
```
|
||||
|
||||
### ourstory.day (Korean)
|
||||
**Voice**: 성찰하는 동료, 이야기꾼
|
||||
**Tone**: 개인적, 진솔한, 영감을 주는
|
||||
|
||||
Writing patterns:
|
||||
- 제목: 감성적, 질문형 또는 은유적
|
||||
- 도입부: 개인 경험이나 장면 묘사로 시작
|
||||
- 본문: 이야기 흐름, 대화체 허용
|
||||
- 문장: ~해요/~네요 부드러운 경어체 가능
|
||||
- 단락: 자유로운 길이, 호흡에 따라
|
||||
- 마무리: 열린 질문 또는 여운
|
||||
|
||||
Example opening:
|
||||
```
|
||||
"새벽 5시, 아이를 깨우지 않으려 살금살금 책상에 앉았다.
|
||||
화면에는 어제 작성한 리포트가 그대로 남아있었다.
|
||||
'이게 정말 내가 하고 싶은 일인가?'
|
||||
문득 그런 생각이 스쳤다."
|
||||
```
|
||||
|
||||
### Medium (English)
|
||||
**Voice**: Knowledgeable peer sharing discoveries
|
||||
**Tone**: Conversational, practical, slightly informal
|
||||
|
||||
Writing patterns:
|
||||
- Headlines: Curiosity-driven, specific numbers work well
|
||||
- Opening: Personal anecdote or surprising fact
|
||||
- Body: Mix of storytelling and practical advice
|
||||
- Style: First person allowed, contractions okay
|
||||
- Subheadings: Every 300-400 words
|
||||
- Closing: Clear takeaway or call-to-action
|
||||
|
||||
Example opening:
|
||||
```
|
||||
"I've spent 15 years in digital marketing, and nothing
|
||||
prepared me for what happened when AI entered the chat.
|
||||
Last month, I ran an experiment that changed how I think
|
||||
about content strategy entirely. Let me walk you through it."
|
||||
```
|
||||
|
||||
## Universal Guidelines
|
||||
|
||||
### SEO Considerations
|
||||
- Primary keyword in title and first 100 words
|
||||
- Secondary keywords naturally distributed
|
||||
- Meta description: 150-160 chars, action-oriented
|
||||
- URL slug: Short, keyword-rich, no dates
|
||||
- Alt text for all images
|
||||
|
||||
### Formatting Rules
|
||||
- Use `##` for main sections, `###` for subsections
|
||||
- Code blocks with language specification
|
||||
- Blockquotes for key insights or quotes
|
||||
- Bold for emphasis (sparingly)
|
||||
- Lists only when truly listing items
|
||||
|
||||
### Citation Style
|
||||
- Inline links preferred over footnotes
|
||||
- Source attribution: "According to [Source Name](URL)..."
|
||||
- Data citations: Include date of data
|
||||
- Internal links: Reference related OurDigital posts
|
||||
|
||||
## Word Count Guidelines
|
||||
|
||||
| Channel | Target | Min | Max |
|
||||
|---------|--------|-----|-----|
|
||||
| blog.ourdigital.org | 1,500 | 1,000 | 2,500 |
|
||||
| journal.ourdigital.org | 1,800 | 1,200 | 3,000 |
|
||||
| ourstory.day | 1,000 | 500 | 2,000 |
|
||||
| Medium | 1,500 | 800 | 2,500 |
|
||||
@@ -0,0 +1,74 @@
|
||||
# Ghost Admin API Configuration
|
||||
|
||||
## Configured Channels
|
||||
|
||||
| Channel | Domain | API Status |
|
||||
|---------|--------|------------|
|
||||
| blog.ourdigital.org | Korean main blog | ✅ Configured |
|
||||
| journal.ourdigital.org | English journal | ✅ Configured |
|
||||
| ourstory.day | Personal essays | ✅ Configured |
|
||||
|
||||
## API Endpoints
|
||||
|
||||
Base URL pattern: `https://{domain}/ghost/api/admin/`
|
||||
|
||||
### Authentication
|
||||
Ghost Admin API uses JWT tokens generated from Admin API keys.
|
||||
|
||||
```
|
||||
Admin API Key Format: {id}:{secret}
|
||||
- id: 24 hex characters
|
||||
- secret: 64 hex characters
|
||||
```
|
||||
|
||||
### Key Endpoints
|
||||
|
||||
| Endpoint | Method | Purpose |
|
||||
|----------|--------|---------|
|
||||
| `/posts/` | POST | Create new post |
|
||||
| `/posts/{id}/` | PUT | Update existing post |
|
||||
| `/images/upload/` | POST | Upload image |
|
||||
| `/tags/` | GET/POST | Manage tags |
|
||||
|
||||
### Post Creation Payload
|
||||
|
||||
```json
|
||||
{
|
||||
"posts": [{
|
||||
"title": "Post Title",
|
||||
"html": "<p>Content in HTML</p>",
|
||||
"status": "draft",
|
||||
"tags": [{"name": "tag1"}, {"name": "tag2"}],
|
||||
"feature_image": "https://...",
|
||||
"meta_title": "SEO Title",
|
||||
"meta_description": "SEO Description",
|
||||
"og_title": "Social Title",
|
||||
"og_description": "Social Description",
|
||||
"published_at": "2024-01-15T09:00:00.000Z"
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
### Status Options
|
||||
- `draft`: Save without publishing
|
||||
- `published`: Publish immediately
|
||||
- `scheduled`: Schedule for future (requires `published_at`)
|
||||
|
||||
## Future Automation Opportunities
|
||||
|
||||
### Zapier Integration Points
|
||||
1. **Trigger**: New Notion page in "Working with AI" → Create Ghost draft
|
||||
2. **Trigger**: Ghost post published → Share to social channels
|
||||
3. **Trigger**: New MD file in iCloud folder → Create Ghost draft
|
||||
|
||||
### n8n Workflow Ideas
|
||||
1. Research complete → Auto-create drafts across all relevant channels
|
||||
2. Scheduled publishing queue management
|
||||
3. Cross-posting between Ghost instances
|
||||
|
||||
## Security Notes
|
||||
|
||||
- API keys stored in environment variables
|
||||
- Never expose keys in code or logs
|
||||
- Rotate keys if compromised
|
||||
- Use separate keys for different integrations
|
||||
@@ -0,0 +1,118 @@
|
||||
# Pre-Publishing Checklist
|
||||
|
||||
## Content Quality
|
||||
|
||||
### Writing
|
||||
- [ ] Title is compelling and SEO-optimized
|
||||
- [ ] Opening hook captures attention within first 3 sentences
|
||||
- [ ] Clear thesis/value proposition stated early
|
||||
- [ ] Logical flow between sections
|
||||
- [ ] Strong conclusion with takeaway or CTA
|
||||
- [ ] Proofread for typos and grammar (Ulysses phase)
|
||||
|
||||
### Accuracy
|
||||
- [ ] All facts verified with sources
|
||||
- [ ] Statistics include source and date
|
||||
- [ ] Links tested and working
|
||||
- [ ] No outdated information presented as current
|
||||
- [ ] Technical accuracy reviewed
|
||||
|
||||
### Formatting
|
||||
- [ ] Consistent heading hierarchy (H2 → H3 → H4)
|
||||
- [ ] Paragraphs appropriately sized for readability
|
||||
- [ ] Code blocks properly formatted with language tags
|
||||
- [ ] Lists used only for actual list content
|
||||
- [ ] Emphasis (bold/italic) used sparingly
|
||||
|
||||
## SEO Elements
|
||||
|
||||
### On-Page
|
||||
- [ ] Primary keyword in title
|
||||
- [ ] Primary keyword in first 100 words
|
||||
- [ ] Secondary keywords naturally distributed
|
||||
- [ ] URL slug: short, descriptive, keyword-rich
|
||||
- [ ] Meta description: 150-160 chars, includes CTA
|
||||
|
||||
### Technical
|
||||
- [ ] Internal links to related posts (2-3 minimum)
|
||||
- [ ] External links to authoritative sources
|
||||
- [ ] Alt text for all images
|
||||
- [ ] Heading structure is semantic (one H1 only)
|
||||
|
||||
## Visual Elements (Web UI Phase)
|
||||
|
||||
### Featured Image
|
||||
- [ ] High quality, relevant to content
|
||||
- [ ] Proper dimensions for channel
|
||||
- Ghost: 1200 x 630px recommended
|
||||
- Medium: 1500 x 750px recommended
|
||||
- [ ] Alt text added
|
||||
- [ ] Copyright/license verified
|
||||
|
||||
### In-Post Images
|
||||
- [ ] Compressed for web (< 200KB ideal)
|
||||
- [ ] Descriptive filenames (not IMG_001.jpg)
|
||||
- [ ] Captions added where helpful
|
||||
- [ ] Alt text for accessibility
|
||||
|
||||
## Channel-Specific
|
||||
|
||||
### Ghost (blog.ourdigital.org, journal.ourdigital.org, ourstory.day)
|
||||
|
||||
**Before Publishing:**
|
||||
- [ ] Tags assigned (3-5 relevant tags)
|
||||
- [ ] Author profile selected
|
||||
- [ ] Excerpt/custom snippet written
|
||||
- [ ] Publication date/time set
|
||||
- [ ] Email newsletter toggle reviewed
|
||||
|
||||
**Ghost Admin Settings:**
|
||||
- [ ] Code injection (if needed): header/footer scripts
|
||||
- [ ] Facebook/Twitter card preview checked
|
||||
- [ ] Canonical URL set (if republishing)
|
||||
|
||||
### Medium
|
||||
|
||||
**Before Publishing:**
|
||||
- [ ] Tags selected (max 5)
|
||||
- [ ] Publication submitted to (if applicable)
|
||||
- [ ] Subtitle/kicker written
|
||||
- [ ] Reading time appears reasonable
|
||||
- [ ] Preview in both web and mobile
|
||||
|
||||
**Medium-Specific:**
|
||||
- [ ] No excessive self-promotion
|
||||
- [ ] Paywall setting decided (member-only?)
|
||||
- [ ] Cross-post canonical URL added (if from blog)
|
||||
|
||||
## Final Verification
|
||||
|
||||
### Preview Check
|
||||
- [ ] Desktop preview looks correct
|
||||
- [ ] Mobile preview is readable
|
||||
- [ ] Links work in preview mode
|
||||
- [ ] Images display properly
|
||||
- [ ] Social share preview correct
|
||||
|
||||
### Publication
|
||||
- [ ] Schedule vs. publish now decided
|
||||
- [ ] Social sharing plan ready
|
||||
- [ ] Newsletter inclusion decided
|
||||
- [ ] Analytics tracking confirmed
|
||||
|
||||
## Post-Publication
|
||||
|
||||
### Immediate (within 1 hour)
|
||||
- [ ] Verify live URL works
|
||||
- [ ] Share to social channels
|
||||
- [ ] Notify team/subscribers if relevant
|
||||
|
||||
### Follow-up (within 24-48 hours)
|
||||
- [ ] Check initial engagement metrics
|
||||
- [ ] Respond to comments
|
||||
- [ ] Fix any reported issues
|
||||
|
||||
### Long-term (monthly)
|
||||
- [ ] Review analytics performance
|
||||
- [ ] Update outdated information
|
||||
- [ ] Add internal links from newer posts
|
||||
@@ -0,0 +1,133 @@
|
||||
# Research Frameworks
|
||||
|
||||
## Framework Selection Guide
|
||||
|
||||
| Topic Type | Framework | Best For |
|
||||
|------------|-----------|----------|
|
||||
| Trend analysis | STEEP + Timeline | Industry shifts, emerging tech |
|
||||
| Problem-solution | Problem Tree | Pain points, how-to guides |
|
||||
| Comparison | Feature Matrix | Tool reviews, option analysis |
|
||||
| Strategy | SWOT + Action | Business recommendations |
|
||||
| Technical | Layered Deep-Dive | Implementation guides |
|
||||
|
||||
## STEEP + Timeline Framework
|
||||
|
||||
For analyzing trends and industry changes:
|
||||
|
||||
```
|
||||
S - Social: User behavior changes, demographics
|
||||
T - Technological: New tools, platforms, capabilities
|
||||
E - Economic: Market conditions, pricing trends
|
||||
E - Environmental: Sustainability, resource factors
|
||||
P - Political/Legal: Regulations, compliance
|
||||
|
||||
Timeline:
|
||||
- Past (2-3 years): What changed?
|
||||
- Present: Current state of play
|
||||
- Future (1-2 years): Projections
|
||||
```
|
||||
|
||||
## Problem Tree Framework
|
||||
|
||||
For diagnostic and solution-oriented research:
|
||||
|
||||
```
|
||||
ROOT PROBLEM
|
||||
├── Cause 1
|
||||
│ ├── Sub-cause 1.1
|
||||
│ └── Sub-cause 1.2
|
||||
├── Cause 2
|
||||
│ └── Sub-cause 2.1
|
||||
└── Cause 3
|
||||
|
||||
SOLUTIONS
|
||||
├── Solution A → addresses Cause 1
|
||||
├── Solution B → addresses Cause 2
|
||||
└── Solution C → addresses Cause 3
|
||||
```
|
||||
|
||||
## Feature Matrix Framework
|
||||
|
||||
For comparisons and evaluations:
|
||||
|
||||
```
|
||||
| Criteria | Option A | Option B | Option C | Weight |
|
||||
|----------|----------|----------|----------|--------|
|
||||
| Feature 1 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | High |
|
||||
| Feature 2 | ⭐⭐ | ⭐⭐⭐ | ⭐ | Medium |
|
||||
| Feature 3 | ⭐ | ⭐⭐ | ⭐⭐⭐ | Low |
|
||||
| Price | $$$ | $$ | $ | High |
|
||||
|
||||
Weighted Score: Calculate based on importance
|
||||
Recommendation: Based on user's priority
|
||||
```
|
||||
|
||||
## Layered Deep-Dive Framework
|
||||
|
||||
For technical and implementation topics:
|
||||
|
||||
```
|
||||
Layer 1: Concept (What is it?)
|
||||
- Definition
|
||||
- Key components
|
||||
- How it works (simplified)
|
||||
|
||||
Layer 2: Context (Why does it matter?)
|
||||
- Business value
|
||||
- Use cases
|
||||
- When to use vs. alternatives
|
||||
|
||||
Layer 3: Implementation (How to do it?)
|
||||
- Prerequisites
|
||||
- Step-by-step process
|
||||
- Code/configuration examples
|
||||
|
||||
Layer 4: Optimization (How to do it well?)
|
||||
- Best practices
|
||||
- Common pitfalls
|
||||
- Advanced techniques
|
||||
|
||||
Layer 5: Measurement (How to know it works?)
|
||||
- Success metrics
|
||||
- Monitoring approach
|
||||
- Iteration guidance
|
||||
```
|
||||
|
||||
## Research Question Templates
|
||||
|
||||
### Exploratory Questions
|
||||
- "What is the current state of [topic]?"
|
||||
- "How has [topic] evolved in the past [timeframe]?"
|
||||
- "Who are the key players/stakeholders in [topic]?"
|
||||
|
||||
### Analytical Questions
|
||||
- "What factors drive [outcome] in [context]?"
|
||||
- "How does [variable A] affect [variable B]?"
|
||||
- "What patterns emerge when comparing [X] and [Y]?"
|
||||
|
||||
### Evaluative Questions
|
||||
- "What are the strengths and limitations of [approach]?"
|
||||
- "How effective is [solution] for [problem]?"
|
||||
- "What criteria should guide [decision]?"
|
||||
|
||||
### Practical Questions
|
||||
- "How can [audience] implement [solution]?"
|
||||
- "What resources are needed for [action]?"
|
||||
- "What are the risks and mitigations for [approach]?"
|
||||
|
||||
## Source Priority
|
||||
|
||||
1. **Primary**: Official documentation, research papers, authoritative reports
|
||||
2. **Secondary**: Industry publications, expert analysis, case studies
|
||||
3. **Tertiary**: News articles, blog posts, community discussions
|
||||
|
||||
Always cross-reference claims across multiple source types.
|
||||
|
||||
## Data Quality Checklist
|
||||
|
||||
- [ ] Source credibility verified
|
||||
- [ ] Publication date recent (within context)
|
||||
- [ ] Statistics include sample size/methodology
|
||||
- [ ] Claims are falsifiable/verifiable
|
||||
- [ ] Potential biases identified
|
||||
- [ ] Conflicting viewpoints considered
|
||||
Reference in New Issue
Block a user