Desktop: merged SKILL-org.md (base) + SKILL-new.md additions into SKILL.md - Added Workflow Modes (full drafting + manuscript editing) - Added SEO metadata, Visual DNA, Featured Image rules - Added Gemini prompt templates (4 types), Schema data, 3-file output - Preserved all original brand voice, analogies, procedures, numerics Code: rewrote CLAUDE.md to align with desktop (1,195 words) - Same section coverage, condensed for directive limit Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
7.1 KiB
Jamie Journal Editor (Skill 46) — Code Version Design
Date: 2026-03-29 Status: Approved Scope: Create self-contained Claude Code version for skill 46-jamie-journal-editor
Goal
Build a complete code/ version of skill 46 that is fully self-contained (no references to desktop/), following the dual-platform skill structure. Includes a journal_validator.py CLI tool for automated content validation.
Architecture
46-jamie-journal-editor/
├── code/
│ ├── CLAUDE.md # Self-contained directive
│ └── scripts/
│ └── journal_validator.py # Combined validator (4 modules)
├── desktop/ # Unchanged
└── README.md # Updated structure section
Component 1: code/CLAUDE.md
Self-contained Claude Code directive incorporating all content currently split across desktop/SKILL.md and desktop/references/. Sections:
- Overview — Role definition, channel info, partner skills
- Quick Start — CLI usage for journal_validator.py
- Brand Voice — Dr. Jung's 5 personality traits, honorific guide, hospital references, standard opening
- Analogy Dictionary — Dr. Jung's signature metaphors (tree transplant, puppet strings, clean canvas, endotine button)
- Content Structure — 5-step body (Problem → Cause → Solution → Advantages → Results), opening template, closing template
- Procedure Copy Reference — Eye, forehead, anti-aging key expressions
- Numeric Expression Guide — Surgery time, recovery, AS period, survival rates
- Medical Terminology Pattern — Korean(漢字, English) format
- Image Placement — 5 recommended positions
- Compliance Rules — Prohibited expressions, required disclaimers, Do's & Don'ts
- Workflow — Topic → Draft → Validate → Brand Audit → Publish
Word budget: ~1,200 words (under the 1,500-word directive limit).
Component 2: journal_validator.py
Single-file CLI tool with four validator classes.
2A: StructureValidator
Checks journal article structure against the 5-step content pattern.
| Check | Method | Pass Criteria |
|---|---|---|
| Opening format | Regex for standard greeting | "안녕하세요. 제이미성형외과 정기호 원장입니다." present |
| 5-step body | Heading/keyword scan for each step | At least 4 of 5 steps detected |
| Medical term format | Regex for 한글(漢字, English) pattern |
Terms introduced with proper format |
| Closing CTA | Regex for CTA pattern | CTA pattern present in final section |
| Required disclaimer | String match | Disclaimer text present at bottom |
Detection strategy for 5-step body: scan for heading markers (##, bold) or keyword clusters:
- Problem: 고민, 증상, 불편, 걱정
- Cause: 원인, 발생, 때문에, 이유
- Solution: 시술, 수술, 방법, 제이미
- Advantages: 장점, 회복, 흉터, 통증, 마취
- Results: 결과, 효과, 기대, 개선
2B: ComplianceChecker
Adapted from skill 47's compliance_checker.py. Self-contained copy, not imported.
| Category | Example Patterns | Severity |
|---|---|---|
| Effect guarantee | 100% 성공, 반드시 효과, 보장합니다 |
Critical |
| Comparative superiority | 최고, 1위, 타 병원보다 |
Critical |
| Safety guarantee | 부작용 없음, 완전 안전 |
Critical |
| Patient testimonial | 실제 환자 후기, quoted testimonials |
Critical |
| Exaggeration | 놀라운 변화, 마법같은, 기적적 |
High |
| Missing disclaimer | Side-effect notice absent | High |
| Missing individual variation | "개인 차이" notice absent | Medium |
2C: SpellingChecker
Two-tier approach:
Tier 1 (built-in, no dependencies): Curated dictionary of common medical/cosmetic misspellings.
| Wrong | Correct | Category |
|---|---|---|
| 쌍커풀 | 쌍꺼풀 | Eye surgery |
| 안겸하수 | 안검하수 | Eye surgery |
| 눈꺼플 | 눈꺼풀 | Eye surgery |
| 보톡스 | 보톡스 | Correct (common) |
| 히알루론산 | 히알루론산 | Correct (common) |
| 거상술 vs 거상 술 | 거상술 | Forehead |
| 내시경 vs 네시경 | 내시경 | Forehead |
| 스마스 vs SMAS | Both OK | Anti-aging |
| 엔도타인 vs 앤도타인 | 엔도타인 | Forehead |
| 리프팅 vs 리프팅 | 리프팅 | Anti-aging |
Dictionary stored as a Python dict within the file (~30-50 entries).
Tier 2 (optional, requires py-hanspell): Broader Korean spelling/spacing check via Naver spell checker API wrapper. Gracefully degrades if library not installed — prints a note suggesting pip install py-hanspell for fuller coverage.
2D: LinkRecommender
Scans article text for procedure name mentions and suggests internal linking opportunities.
Procedure keyword map (built-in dict):
| Keywords | Suggested Link Topic |
|---|---|
| 쌍꺼풀, 매몰법, 절개법 | Double eyelid surgery |
| 안검하수, 눈매교정 | Ptosis correction |
| 눈밑 지방, 다크서클 | Under-eye fat repositioning |
| 이마거상, 이마리프팅 | Endoscopic forehead lift |
| 눈썹거상, 눈썹리프팅 | Endoscopic brow lift |
| 눈썹밑, 상안검 | Sub-brow excision |
| 스마스, SMAS, 안면거상 | SMAS lifting |
| 자가지방, 지방이식 | Fat grafting |
| 하이푸, HIFU | HIFU lifting |
Logic: If article topic is X and mentions procedure Y (where Y != X), suggest "Consider adding an internal link to your [Y] article where you mention '[matched text]'."
Output: List of recommendations with matched text and line number.
CLI Interface
# Full validation (all 4 checks)
python code/scripts/journal_validator.py --input article.md
# Specific checks
python code/scripts/journal_validator.py --input article.md --check structure,compliance
python code/scripts/journal_validator.py --input article.md --check spelling,links
# JSON report output
python code/scripts/journal_validator.py --input article.md --verbose --output report.json
Available --check values: structure, compliance, spelling, links (comma-separated, default: all)
Exit codes: 0 = pass, 1 = critical/high violations found, 2 = input error
Report structure:
{
"is_valid": false,
"total_issues": 5,
"issues_by_severity": {"critical": 1, "high": 2, "medium": 1, "info": 1},
"structure": { ... },
"compliance": { ... },
"spelling": { ... },
"link_recommendations": [ ... ],
"summary": "..."
}
Component 3: README.md Update
Update the structure section to reflect the new code/scripts/ directory. No other changes.
What Stays Unchanged
desktop/SKILL.md— no changesdesktop/skill.yaml— no changesdesktop/references/*— no changesdesktop/jamie-journal-editor.skill— not regenerated (Desktop packaging step)
Dependencies
- Required: Python 3.8+ (stdlib only:
re,json,argparse,dataclasses) - Optional:
py-hanspellfor tier-2 spelling checks
Testing
Manual validation: run the validator against a sample journal article draft to confirm all 4 checkers produce sensible output. No automated test suite needed for v1.