feat(jamie-journal): merge desktop SKILL.md, align code CLAUDE.md

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>
This commit is contained in:
2026-03-29 16:21:22 +09:00
parent c73d284d44
commit 8b98fdd2fc
4 changed files with 1536 additions and 107 deletions

View File

@@ -0,0 +1,175 @@
# 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:
1. **Overview** — Role definition, channel info, partner skills
2. **Quick Start** — CLI usage for journal_validator.py
3. **Brand Voice** — Dr. Jung's 5 personality traits, honorific guide, hospital references, standard opening
4. **Analogy Dictionary** — Dr. Jung's signature metaphors (tree transplant, puppet strings, clean canvas, endotine button)
5. **Content Structure** — 5-step body (Problem → Cause → Solution → Advantages → Results), opening template, closing template
6. **Procedure Copy Reference** — Eye, forehead, anti-aging key expressions
7. **Numeric Expression Guide** — Surgery time, recovery, AS period, survival rates
8. **Medical Terminology Pattern** — Korean(漢字, English) format
9. **Image Placement** — 5 recommended positions
10. **Compliance Rules** — Prohibited expressions, required disclaimers, Do's & Don'ts
11. **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
```bash
# 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:**
```json
{
"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 changes
- `desktop/skill.yaml` — no changes
- `desktop/references/*` — no changes
- `desktop/jamie-journal-editor.skill` — not regenerated (Desktop packaging step)
## Dependencies
- **Required:** Python 3.8+ (stdlib only: `re`, `json`, `argparse`, `dataclasses`)
- **Optional:** `py-hanspell` for 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.