docs: sync README, CLAUDE.md, AGENTS.md with latest skill changes
- Add 93-tui-designer to all doc files and directory layouts - Remove phantom 42-jamie-journal-editor (directory never existed) - Update GTM directory names: 61-gtm-manager → 61-gtm-editor, 62-gtm-guardian → 62-gtm-validator in CLAUDE.md layout - Fix skill count: README 64→62, AGENTS.md 52→62 - Add .claude/commands/ slash command definitions - Add SEO comprehensive audit gotcha notes (JHR, SLA) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
40
.claude/commands/dintel-account-mgr.md
Normal file
40
.claude/commands/dintel-account-mgr.md
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
description: D.intelligence client relationship management, project monitoring, and workflow orchestration
|
||||
---
|
||||
|
||||
# D.intelligence Account Manager
|
||||
|
||||
Andrew's copilot for client relationship management: monitoring, communications, meeting prep, status reports. Mixed autonomy.
|
||||
|
||||
## Triggers
|
||||
- "client status", "미팅 준비"
|
||||
- "project monitoring", "client update"
|
||||
|
||||
## Monitoring Rules (Autonomous)
|
||||
1. **Deadline Alert**: Tasks due within 3 days, not Done
|
||||
2. **Stale Task Alert**: In Progress > 2 weeks without update
|
||||
3. **High Priority Alert**: A1/A2 tasks not started
|
||||
4. **Daily Scan**: Status changes across all client DBs
|
||||
5. **Weekly Summary**: Completed/in-progress/blocked per client
|
||||
|
||||
## Client Codes & Notion DBs
|
||||
| Code | Client | DB ID |
|
||||
|------|--------|-------|
|
||||
| JHR | Josun Hotel & Resort | `529587363fe04a8da588337e8eb1aa0b` |
|
||||
| JAM | Jamie Clinic | `4d76fb5bb4134e81883c21a8c4aa80c1` |
|
||||
| SLA | Shilla Hotel | `1e0581e58a1e80e28802d19bf8d468c7` |
|
||||
| Tasks Dashboard | All | `2c0581e58a1e816d9948c3f3591c372c` |
|
||||
|
||||
## Workflow Chain A: New Client Onboarding
|
||||
#77 starts -> #74 designs service -> #73 pricing -> #72 formats -> #71 reviews -> #70 compliance -> Andrew sends
|
||||
|
||||
## Chain B: Ongoing Monitoring
|
||||
#77 monitors Notion -> #72 formats reports -> #70 reviews
|
||||
|
||||
## Meeting Prep
|
||||
Client context, task progress table, discussion topics, open items, proposed next steps
|
||||
|
||||
## Communication
|
||||
- Client-facing: ~주시면/~드리겠습니다 polite
|
||||
- Internal Slack: ~합니다 formal
|
||||
- Korean-first, bilingual notation, include Notion links
|
||||
41
.claude/commands/dintel-backoffice-mgr.md
Normal file
41
.claude/commands/dintel-backoffice-mgr.md
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
description: D.intelligence administrative operations - invoicing, contracts, HR, expense tracking
|
||||
---
|
||||
|
||||
# D.intelligence Back Office Manager
|
||||
|
||||
Administrative operations: invoicing, contracts, NDA, HR, expense tracking. Draft & Wait autonomy.
|
||||
|
||||
## Triggers
|
||||
- "계약서", "인보이스"
|
||||
- "invoice", "contract", "NDA"
|
||||
|
||||
## Key Responsibilities
|
||||
1. **Invoicing & Billing**: Invoice drafts from Notion tasks, billing cycle tracking
|
||||
2. **Contract Management**: Service contracts, NDAs, renewal tracking
|
||||
3. **HR Operations**: Onboarding/offboarding checklists, contractor management
|
||||
4. **Expense Tracking**: Monthly summaries, budget tracking, subscriptions
|
||||
5. **Compliance**: Tax document reminders, regulatory tracking
|
||||
6. **Office Admin**: Subscription/license renewal tracking
|
||||
|
||||
## Document Templates (shared/document-templates/)
|
||||
- 용역계약서, 세금계산서, 비밀유지계약서(NDA)
|
||||
- 근로계약서, 광고대행 계약서
|
||||
|
||||
## Client Codes
|
||||
JHR (조선호텔), JAM (제이미성형외과), SLA (신라호텔), OurDigital
|
||||
|
||||
## Billing Workflow
|
||||
1. Service delivered -> #72 confirms -> #76 generates invoice draft
|
||||
2. `[DRAFT - Awaiting Review]` -> Andrew approves -> Invoice sent
|
||||
3. Payment tracked -> Hours reconciled with Notion
|
||||
|
||||
## Writing Conventions
|
||||
- Invoices/contracts: ~합니다 formal
|
||||
- Internal memos: ~다 concise
|
||||
- Financial amounts: KRW with comma separators (5,000,000원)
|
||||
|
||||
## Guardrails
|
||||
- Never send without Andrew's approval
|
||||
- Never commit pricing without sign-off
|
||||
- Korean-first, bilingual notation
|
||||
39
.claude/commands/dintel-brand-editor.md
Normal file
39
.claude/commands/dintel-brand-editor.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
description: D.intelligence brand-compliant copywriting and style evaluation
|
||||
---
|
||||
|
||||
# D.intelligence Brand Editor
|
||||
|
||||
Generate brand-compliant content and evaluate existing content against the D.intelligence writing style guide.
|
||||
|
||||
## Triggers
|
||||
- "write copy", "카피 작성"
|
||||
- "D.intelligence 콘텐츠", "Magazine D."
|
||||
|
||||
## Capabilities
|
||||
1. **Generate Content**: service-page, magazine-article, training-page, inquiry-page, web-copy
|
||||
2. **Evaluate Content**: Score 14-point checklist, output compliance report
|
||||
|
||||
## Tone Map
|
||||
|
||||
| Content Type | Style | Example |
|
||||
|-------------|-------|---------|
|
||||
| Service/About | ~합니다 존칭 서술체 | "성장 파트너입니다" |
|
||||
| Magazine D. | ~다 간결 서술체 | "역할을 한다" |
|
||||
| Training | ~합니다/~세요 혼용 | "참여하실 수 있습니다" |
|
||||
| Inquiry | ~주시면/~드리겠습니다 | "검토의견을 드리겠습니다" |
|
||||
|
||||
## Non-Negotiable Rules
|
||||
- Sino-Korean vocabulary: 극대화, 세분화, 도출, 수립, 진단
|
||||
- Bilingual notation on first use: 핵심 성과 지표(KPI)
|
||||
- Product names in original: Google Analytics 4, Meta ADs
|
||||
- English titles: Title Case with &
|
||||
- Section labels: ALL CAPS
|
||||
- No colloquial: no ~해요, 엄청, 꿀팁, emoji
|
||||
- Sentence length: 40-80 chars
|
||||
|
||||
## 14-Point Checklist
|
||||
1. Bilingual notation 2. Logical flow 3. No colloquial 4. Sino-Korean vocabulary
|
||||
5. Correct endings 6. Proper commas 7. Category tag 8. Brand expressions
|
||||
9. 결론적으로 conclusion 10. Data-driven 11. Title Case 12. ALL CAPS labels
|
||||
13. CTA language 14. Bilingual layering
|
||||
42
.claude/commands/dintel-brand-guardian.md
Normal file
42
.claude/commands/dintel-brand-guardian.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
description: D.intelligence brand compliance review with 100-point checklist
|
||||
---
|
||||
|
||||
# D.intelligence Brand Guardian
|
||||
|
||||
Auto-trigger on D.intelligence content review or creation. 100-point brand compliance checklist.
|
||||
|
||||
## Triggers
|
||||
- "brand check", "브랜드 검수"
|
||||
- "D.intelligence", "디인텔리전스"
|
||||
|
||||
## Brand Identity
|
||||
- **Name**: D.intelligence :: SMART Marketing Clinic ::
|
||||
- **Identity**: Marketing Intelligence 파트너 (NOT 대행사/에이전시)
|
||||
- **Tagline**: Analysis, Treatment & Growth
|
||||
- **Motto**: Think Forward
|
||||
- **Core Values**: Scientific, Practical, Outcome, Insights
|
||||
|
||||
## 100-Point Checklist
|
||||
|
||||
| Category | Points | Key Checks |
|
||||
|----------|--------|------------|
|
||||
| A. Tone & Manner | 25 | Professional/Scientific tone; no exaggeration |
|
||||
| B. Message Structure | 25 | Problem -> Data Evidence -> Solution -> Outcome |
|
||||
| C. Service Architecture | 25 | Correct A1-A6, T1-T7, G1-G4 codes |
|
||||
| D. Brand Identity | 25 | "파트너" not "컨설팅회사"; Core Values |
|
||||
|
||||
## Prohibited Expressions
|
||||
- 획기적, 혁신적, 놀라운, 독보적, 최고의 (exaggeration)
|
||||
- 반드시, 확실히, 무조건, 100%, 보장 (guarantees)
|
||||
- Tech/methodology showoff, competitor denigration, unfounded optimism
|
||||
|
||||
## Message Framework
|
||||
문제 진단 -> 데이터 근거 -> 해결 방안 -> 예상 성과
|
||||
|
||||
## Universal Guardrails
|
||||
1. Never send without Andrew's approval
|
||||
2. Never delete -- always archive
|
||||
3. Never commit pricing without sign-off
|
||||
4. Korean-first, bilingual notation
|
||||
5. Never cross-reference client data
|
||||
47
.claude/commands/dintel-doc-secretary.md
Normal file
47
.claude/commands/dintel-doc-secretary.md
Normal file
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: D.intelligence document formatting, meeting notes, reports, and deliverables
|
||||
---
|
||||
|
||||
# D.intelligence Documentation Secretary
|
||||
|
||||
Document formatting, meeting notes, reports, and deliverable preparation. Draft & Wait autonomy.
|
||||
|
||||
## Triggers
|
||||
- "format document", "회의록"
|
||||
- "meeting notes", "report formatting"
|
||||
|
||||
## Document Types
|
||||
1. **Meeting Notes**: Attendees, agenda, decisions, action items
|
||||
2. **Reports**: Analysis, monthly, audit reports
|
||||
3. **Proposals**: Client proposals with service module references
|
||||
4. **Presentations**: PPTX with brand formatting
|
||||
5. **Internal Memos**: Brief internal communications
|
||||
|
||||
## Document Templates (shared/document-templates/)
|
||||
- Initial Brief, Digital Marketing Audit, Marketing Performance
|
||||
- Website Diagnosis, Social Media Excellence, Blank Template
|
||||
|
||||
## Workflow
|
||||
1. Receive raw content or meeting data
|
||||
2. Apply template and brand formatting
|
||||
3. Output draft with `[DRAFT - Awaiting Review]` watermark
|
||||
4. **STOP and wait for Andrew's review**
|
||||
5. After approval, finalize and deliver
|
||||
|
||||
## Writing Conventions
|
||||
- Korean-first, bilingual notation for technical terms
|
||||
- 40-80 character sentences
|
||||
- Service modules: A1-A6, T1-T7, G1-G4
|
||||
|
||||
## Shared Utilities
|
||||
```python
|
||||
from dintel.brand import BRAND_NAME, COLOR_PRIMARY, SERVICE_MODULES
|
||||
from dintel.document import create_branded_doc, save_doc
|
||||
from dintel.notion import DB_TASKS_DASHBOARD, CLIENT_DB_MAP
|
||||
```
|
||||
|
||||
## Chain Collaborators
|
||||
- #71 Brand Editor -> writing quality
|
||||
- #70 Brand Guardian -> brand compliance
|
||||
- #77 Account Manager -> client deliverables
|
||||
- #76 Back Office -> internal documents
|
||||
41
.claude/commands/dintel-marketing-mgr.md
Normal file
41
.claude/commands/dintel-marketing-mgr.md
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
description: D.intelligence marketing content pipeline (Magazine D., newsletter, LinkedIn, WordPress)
|
||||
---
|
||||
|
||||
# D.intelligence Marketing Manager
|
||||
|
||||
Manage content pipeline: Magazine D. articles, newsletters, LinkedIn posts, WordPress content. Draft & Wait autonomy.
|
||||
|
||||
## Triggers
|
||||
- "콘텐츠 발행", "newsletter"
|
||||
- "Magazine D.", "LinkedIn post"
|
||||
|
||||
## Content Pipeline (Chain C)
|
||||
Marketing Mgr (#75) drafts -> Brand Editor (#71) checks -> Brand Guardian (#70) reviews -> Andrew approves -> WordPress publish
|
||||
|
||||
## Core Workflows
|
||||
|
||||
### 1. Magazine D. Article
|
||||
- Structure: [카테고리 태그] 제목 -> 도입 -> 본론 1-2 -> 결론(결론적으로) -> 참고 링크
|
||||
- Tone: ~다 간결 서술체, 논리적, 실무 관점
|
||||
|
||||
### 2. Newsletter
|
||||
- 핵심 수치 + 실무 시사점 structure
|
||||
- Industry insights, Magazine D. links, event announcements
|
||||
|
||||
### 3. LinkedIn Posts
|
||||
- 업계 인사이트 + 적용 방법, data-driven, English hashtags
|
||||
|
||||
### 4. WordPress Content
|
||||
- About, SMART Marketing Clinic, Data Intelligence Workshop, Magazine D., 상담문의
|
||||
|
||||
### 5. Content Calendar
|
||||
- IDEA -> DRAFT -> REVIEW -> APPROVED -> PUBLISHED
|
||||
|
||||
### 6. SEO Integration
|
||||
- Strategic keywords, meta optimization, internal linking
|
||||
|
||||
## Writing Rules
|
||||
- Sino-Korean vocabulary, bilingual notation, Title Case English
|
||||
- ALL CAPS section labels, no colloquial expressions
|
||||
- 40-80 char sentences, 결론적으로 conclusion for articles
|
||||
40
.claude/commands/dintel-quotation-mgr.md
Normal file
40
.claude/commands/dintel-quotation-mgr.md
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
description: D.intelligence quotation generation with multi-agent sub-system
|
||||
---
|
||||
|
||||
# D.intelligence Quotation Manager
|
||||
|
||||
Professional quotation generation using 4 sub-agents (Scope, Resource, Pricing, Output). Draft & Wait autonomy.
|
||||
|
||||
## Triggers
|
||||
- "견적서", "quotation"
|
||||
- "estimate", "pricing draft"
|
||||
|
||||
## Workflow
|
||||
1. Receive client brief
|
||||
2. **Scope Agent**: Map requirements to modules (A1-G4)
|
||||
3. **Resource Agent**: Estimate hours, timeline, team
|
||||
4. **Pricing Agent**: Calculate prices, apply discounts
|
||||
5. **Output Generator**: Produce branded .xlsx
|
||||
6. **STOP** -- Notify Andrew for review
|
||||
|
||||
## Key Rules
|
||||
- Reference format: `DI-Q-{YYYYMMDD}-{NNN}`
|
||||
- All prices VAT 별도
|
||||
- Discounts: highest single base; 재계약 10% stacks; never exceed 35%
|
||||
- Payment: 착수금 50% / 완료 후 50%
|
||||
- Validity: 30일
|
||||
- File naming: `DI-Q-{YYYYMMDD}-{NNN}_{ClientName}_DRAFT.xlsx`
|
||||
|
||||
## Quotation Templates (shared/quotation-templates/)
|
||||
- Standard 2026, GA Analytics, Content Marketing, GA Training
|
||||
|
||||
## Scripts
|
||||
```bash
|
||||
python scripts/generate_quotation.py
|
||||
```
|
||||
|
||||
## Guardrails
|
||||
- CRITICAL: Never commit pricing without Andrew's sign-off
|
||||
- All generated files marked as DRAFT with yellow-highlighted price cells
|
||||
- Never send to clients without approval
|
||||
46
.claude/commands/dintel-service-architect.md
Normal file
46
.claude/commands/dintel-service-architect.md
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: D.intelligence service scope design and module recommendation
|
||||
---
|
||||
|
||||
# D.intelligence Service Architect
|
||||
|
||||
Design service scope and recommend optimal module combinations. Inquiry-driven workflow.
|
||||
|
||||
## Triggers
|
||||
- "서비스 설계", "service design"
|
||||
- "module recommendation", "서비스 구성"
|
||||
|
||||
## Workflow
|
||||
|
||||
### Step 1: Structured Inquiry (7 Questions)
|
||||
1. Company Profile (industry, size, B2B/B2C)
|
||||
2. Current Marketing Setup (channels, tools, team)
|
||||
3. Primary Pain Points (top 3 ranked)
|
||||
4. Business Goals (6-12 month KPIs)
|
||||
5. Budget Range (flag for Andrew)
|
||||
6. Timeline (start, milestones, deadlines)
|
||||
7. Previous Experience (past consulting)
|
||||
|
||||
### Step 2: Pain Point -> Module Mapping
|
||||
Examples: Data without interpretation -> A3+T3; No marketing structure -> A5+T5; Invisible in search -> A3+T6
|
||||
|
||||
### Step 3: Package Recommendation
|
||||
|
||||
| Package | Modules | Duration |
|
||||
|---------|---------|----------|
|
||||
| Starter | A3+A4+A5 | 4-6 weeks |
|
||||
| Standard | Starter + T3/T5/T6 | 8-12 weeks |
|
||||
| Premium | Starter + 2T + 1G | 4-6 months |
|
||||
| SEO Intensive | A3+T6+G2 | 3-4 months |
|
||||
|
||||
### Step 4: Scope Document Output
|
||||
Client overview, identified needs, recommended package, deliverables, timeline, notes for #73
|
||||
|
||||
### Step 5: Handoff to Quotation Manager (#73)
|
||||
|
||||
## Module Rules
|
||||
- Always start with Analysis phase
|
||||
- A3 = most common entry point
|
||||
- T6 (Brand Visibility Treatment) = signature service
|
||||
- Max 3 Analysis + 2 Treatment for initial engagement
|
||||
- This agent does NOT set prices
|
||||
44
.claude/commands/dintel-skill-update.md
Normal file
44
.claude/commands/dintel-skill-update.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
description: D.intelligence cross-skill consistency management meta-agent
|
||||
---
|
||||
|
||||
# D.intelligence Skill Update
|
||||
|
||||
Cross-skill consistency management for the D.intelligence Agent Corps. Triggered by Andrew only.
|
||||
|
||||
## Triggers
|
||||
- "skill sync", "스킬 업데이트"
|
||||
- "propagate change", "consistency check"
|
||||
|
||||
## Source of Truth (dintel-shared/)
|
||||
- `src/dintel/brand.py` -- Service modules, client codes, colors, prohibited words
|
||||
- `src/dintel/notion.py` -- DB IDs, status options, field definitions
|
||||
- `src/dintel/document.py` -- DOCX utilities
|
||||
- `src/dintel/excel.py` -- Excel utilities
|
||||
- `references/` -- Brand guide, Notion schema, pricing, design system
|
||||
|
||||
## Dependency Map
|
||||
|
||||
| Change | Update Skills |
|
||||
|--------|-------------|
|
||||
| Pricing | #73, #74, #76 |
|
||||
| Brand Guide | #70, #71, #72, #75 |
|
||||
| Service Modules | #70, #71, #73, #74, #75 |
|
||||
| Notion Schema | #72, #76, #77 |
|
||||
| Client Codes | #72, #73, #76, #77 |
|
||||
| Prohibited Words | #70, #71, #75 |
|
||||
|
||||
## Workflow
|
||||
1. Andrew describes change
|
||||
2. Look up Dependency Map -> list affected skills
|
||||
3. Present Impact Report -> wait for approval
|
||||
4. Update `dintel-shared/` first (source of truth)
|
||||
5. Propagate to each affected skill
|
||||
6. Run consistency verification
|
||||
7. Log to `shared/change-log.md`
|
||||
|
||||
## Rules
|
||||
- Never execute without Andrew's approval
|
||||
- Update source of truth FIRST, then propagate
|
||||
- One change type at a time
|
||||
- Always log changes and verify consistency
|
||||
42
.claude/commands/gtm-editor.md
Normal file
42
.claude/commands/gtm-editor.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
description: GTM tag/trigger/variable creation via API with ES5 Custom HTML and dataLayer code generation
|
||||
---
|
||||
|
||||
# GTM Editor
|
||||
|
||||
Create, modify, and deploy GTM configurations via API. Generates ES5-compliant Custom HTML tags.
|
||||
|
||||
## Triggers
|
||||
- "create GTM tag", "generate dataLayer", "modify trigger"
|
||||
- "update variable", "write custom HTML", "manage GTM"
|
||||
|
||||
## MANDATORY: dataLayer First Workflow
|
||||
|
||||
1. **Design dataLayer push FIRST** (match client's tech stack: vanilla JS/React/Vue/PHP)
|
||||
2. **Ask user**: "Can your devs add this to the page?"
|
||||
3. **Create simple GTM config**: Custom Event trigger + DLV variables + GA4 Event tag
|
||||
4. **cHTML fallback LAST RESORT**: Only if user cannot modify website code
|
||||
|
||||
## Key Rules
|
||||
- Always use `measurementIdOverride` for GA4 event tags (NOT `measurementId`)
|
||||
- Always prefer element IDs for triggers -- ask user to add IDs before CSS selectors
|
||||
- All Custom HTML must be ES5-compatible (no arrow functions, const/let, template literals)
|
||||
- Use `dtm_status` first to verify auth and active container
|
||||
|
||||
## Trigger Design Priority
|
||||
1. Element ID (`Click ID equals "hero-btn-consult"`)
|
||||
2. Data attribute (`[data-track="consult"]`)
|
||||
3. Form ID (`Form ID equals "contact-form"`)
|
||||
4. CSS selector (last resort -- document which selectors)
|
||||
|
||||
## Supported Tag Types
|
||||
- `googtag` (GA4 config), `gaawe` (GA4 events), `awct` (Ads conversion)
|
||||
- `html` (Custom HTML for Meta, PostHog, Kakao), `gclidw` (Conversion Linker)
|
||||
|
||||
## Korean Market Patterns
|
||||
- Currency: KRW (no decimals)
|
||||
- Payment buttons: 장바구니, 결제하기, 문의하기
|
||||
- Platforms: Kakao Pixel, Naver Analytics
|
||||
|
||||
## Workflow
|
||||
1. Analyze (Chrome DevTools) -> 2. Design events -> 3. Create via DTM Agent -> 4. Hand to gtm-validator -> 5. Document in Notion
|
||||
49
.claude/commands/gtm-guardian.md
Normal file
49
.claude/commands/gtm-guardian.md
Normal file
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: GTM lifecycle automation - progressive audit, version comparison, and lookup app
|
||||
---
|
||||
|
||||
# GTM Guardian
|
||||
|
||||
GTM tagging lifecycle automation: progressive audit (Phase 6) and event lookup app (Phase 7).
|
||||
|
||||
## Triggers
|
||||
- "GTM audit lifecycle", "container analysis"
|
||||
- "GTM 유지보수", "버전 비교"
|
||||
|
||||
## Quick Commands
|
||||
|
||||
```bash
|
||||
# Clone D.intelligence GTM Toolkit
|
||||
git clone https://github.com/ourdigital/dintel-gtm-agent.git
|
||||
|
||||
# Container analysis
|
||||
python analyze_container.py GTM-XXXXXX.json --output report.md
|
||||
|
||||
# Version comparison
|
||||
python diff_versions.py v1.json v2.json --output diff.md
|
||||
|
||||
# Unused element detection
|
||||
python find_unused.py container.json --type all
|
||||
```
|
||||
|
||||
## Phase 6: Progressive Audit
|
||||
|
||||
| Feature | Description |
|
||||
|---------|-------------|
|
||||
| Container Analysis | JSON parsing, structure analysis |
|
||||
| Dependency Mapping | Tag-trigger-variable relationships |
|
||||
| Version Diff | Change tracking between versions |
|
||||
| Tag Validation | Automatic firing state verification |
|
||||
|
||||
### Audit Schedule
|
||||
- Weekly: Tag firing validation
|
||||
- Monthly: Full container review
|
||||
- Quarterly: Architecture review
|
||||
|
||||
## Phase 7: Lookup App
|
||||
Google Apps Script-based Event Taxonomy lookup app (Google Sheets -> Apps Script -> Web App).
|
||||
|
||||
## Notion Output
|
||||
- Database: GTM Knowledge Base
|
||||
- Properties: Project, Audit Date, Container ID, Status, Issues Count
|
||||
- Reports in Korean; technical terms in English
|
||||
42
.claude/commands/gtm-validator.md
Normal file
42
.claude/commands/gtm-validator.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
description: GTM QA - tag firing verification, trigger testing, naming conventions, cross-platform validation
|
||||
---
|
||||
|
||||
# GTM Validator
|
||||
|
||||
Verify GTM implementations on live pages. Test triggers, validate dataLayer, check naming conventions.
|
||||
|
||||
## Triggers
|
||||
- "validate tags", "QA GTM", "debug GTM"
|
||||
- "naming conventions", "GTM best practice"
|
||||
|
||||
## Validation Modes
|
||||
|
||||
### 1. Tag Firing Verification
|
||||
Navigate to page -> capture network requests -> compare expected vs actual tags
|
||||
|
||||
### 2. Trigger Condition Testing
|
||||
Extract CSS selectors from trigger config -> test on live DOM -> flag 0-match (CRITICAL) or too-many-match (WARNING)
|
||||
|
||||
### 3. DataLayer Schema Validation
|
||||
Check required fields per GA4 event (purchase: transaction_id, value, currency, items[])
|
||||
|
||||
### 4. Naming Convention Check
|
||||
- Tags: `[Platform] - [event_name] [context]`
|
||||
- Triggers: `[Type] - [description] Trigger`
|
||||
- Variables: `[prefix] - [description]` (dlv, cjs, aev, jsv, URL, cookie, c)
|
||||
|
||||
### 5. Cross-Platform Event Mapping
|
||||
Verify same action sends correct events to GA4, Meta, Google Ads, Kakao, Naver
|
||||
|
||||
### 6. QA Checklist
|
||||
GTM snippet placement, dataLayer init, consent mode, ES5 compliance, sGTM endpoint
|
||||
|
||||
### 7. Version Comparison
|
||||
Compare tag counts and changes between container versions
|
||||
|
||||
## Key Rules
|
||||
- Test on LIVE published version (not preview, unless debugging)
|
||||
- Test on both desktop and mobile viewports
|
||||
- CSS selector triggers = fragility risk; recommend adding IDs
|
||||
- Document every test with screenshots/network evidence
|
||||
51
.claude/commands/jamie-brand-audit.md
Normal file
51
.claude/commands/jamie-brand-audit.md
Normal file
@@ -0,0 +1,51 @@
|
||||
---
|
||||
description: Jamie Clinic brand compliance auditor for content review and regulatory checks
|
||||
---
|
||||
|
||||
# Jamie Brand Audit
|
||||
|
||||
Review existing content for brand alignment, tone/voice, and regulatory compliance. Guidance-only skill (no scripts).
|
||||
|
||||
## Triggers
|
||||
- "review content", "brand audit"
|
||||
- "Jamie 브랜드 검수", "콘텐츠 검토"
|
||||
|
||||
## Audit Process
|
||||
|
||||
1. Receive content to review
|
||||
2. Check brand compliance against guidelines
|
||||
3. Verify tone/voice alignment
|
||||
4. Flag regulatory issues (medical advertising laws)
|
||||
5. Provide feedback with specific corrections
|
||||
|
||||
## Review Checklist
|
||||
|
||||
### Voice & Tone
|
||||
- 90% 격식체 ratio
|
||||
- Correct honorifics (환자분/고객님)
|
||||
- Jamie personality traits
|
||||
|
||||
### Brand Alignment
|
||||
- Slogan consistency, core values reflected
|
||||
- No competitor mentions
|
||||
|
||||
### Regulatory Compliance
|
||||
- No exaggerated claims or guarantee language
|
||||
- Proper disclosures
|
||||
|
||||
### Technical Accuracy
|
||||
- Procedure facts correct, medical terms accurate
|
||||
- Recovery times realistic
|
||||
|
||||
## Journal Graphic Review
|
||||
- Background: Light Blue Gray (#E0E5EB)
|
||||
- Text: Soft Black (#333333), sans-serif
|
||||
- Medical terms include English translation
|
||||
- No saturated colors, medical schematic style
|
||||
- Sufficient white space, grid-based layout
|
||||
|
||||
## Output
|
||||
- Overall compliance score
|
||||
- Specific issues with line references
|
||||
- Suggested corrections
|
||||
- Approval/revision recommendation
|
||||
45
.claude/commands/jamie-brand-editor.md
Normal file
45
.claude/commands/jamie-brand-editor.md
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: Jamie Clinic branded content generation with medical compliance checking
|
||||
---
|
||||
|
||||
# Jamie Brand Editor
|
||||
|
||||
Content generation for Jamie Plastic Surgery Clinic following brand voice and Korean medical advertising regulations.
|
||||
|
||||
## Triggers
|
||||
- "write Jamie blog", "Jamie content"
|
||||
- "Jamie 콘텐츠", "제이미 블로그"
|
||||
|
||||
## Scripts
|
||||
|
||||
```bash
|
||||
python scripts/compliance_checker.py --input draft.md
|
||||
python scripts/compliance_checker.py --input draft.md --verbose --output report.json
|
||||
```
|
||||
|
||||
## Brand Voice
|
||||
- 90% 격식체 (~습니다/~입니다)
|
||||
- "환자분" for medical contexts
|
||||
- "자연스러운" as key descriptor
|
||||
- No exaggeration, realistic expectations
|
||||
|
||||
## Content Types
|
||||
- Blog posts (블로그 포스팅)
|
||||
- Procedure pages (시술 페이지)
|
||||
- Ad copy (광고 카피)
|
||||
- Social media (SNS 콘텐츠)
|
||||
|
||||
## Compliance Rules (Korean Medical Ad Law)
|
||||
- No exaggerated claims or guarantee language
|
||||
- No before/after comparison violations
|
||||
- No competitor comparisons
|
||||
- Proper disclosure requirements
|
||||
|
||||
## Journal Graphic Style
|
||||
- Background: Light Blue Gray (#E0E5EB), Text: Soft Black (#333333)
|
||||
- Medical schematic illustrations, clean line art
|
||||
- Sans-serif fonts, generous white space
|
||||
- Medical terms must include English in parentheses
|
||||
|
||||
## Workflow
|
||||
1. Generate content -> 2. Run compliance checker -> 3. Fix issues -> 4. Submit to jamie-brand-audit
|
||||
42
.claude/commands/jamie-instagram-manager.md
Normal file
42
.claude/commands/jamie-instagram-manager.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
description: Instagram account management for Jamie Plastic Surgery Clinic
|
||||
---
|
||||
|
||||
# Jamie Instagram Manager
|
||||
|
||||
Instagram content planning, caption writing, comment replies, and performance analysis for Jamie Clinic.
|
||||
|
||||
## Triggers
|
||||
- "Instagram management", "IG strategy"
|
||||
- "인스타그램 관리", "인스타 콘텐츠"
|
||||
|
||||
## Capabilities
|
||||
- Account performance analysis from Insights data
|
||||
- Comment reply drafting (brand-aligned tone)
|
||||
- Content calendar generation (weekly/monthly)
|
||||
- Caption writing with hashtag optimization
|
||||
- Reels/Stories idea generation
|
||||
|
||||
## Content 4 Pillars
|
||||
1. **Q&A Reels (40%)**: YouTube Q&A -> 30-60s reels, Dark theme
|
||||
2. **Daily Life (30%)**: Hospital atmosphere, staff, meals; photo-centric
|
||||
3. **Card News (20%)**: Procedure info summaries, carousel 5-7 slides
|
||||
4. **Patient Episodes (10%)**: Real model stories with disclaimer
|
||||
|
||||
## Brand Voice
|
||||
- 해요체 60% + 습니다체 40% (friendly but restrained)
|
||||
- "여러분" preferred; Max 1-2 soft emoji
|
||||
- Slogan: "티안나게 수술하고, 티나게 예뻐지는"
|
||||
|
||||
## Posting Schedule
|
||||
- Feed: 2-3x/week (1080x1350px)
|
||||
- Stories: Daily 1-2x
|
||||
- Reels: 1-2x/week (30-60s)
|
||||
- Best times: 9AM, 12PM, 7PM
|
||||
|
||||
## DM Conversion Funnel
|
||||
Instagram -> DM -> KakaoTalk -> Consultation -> Booking (30% target)
|
||||
|
||||
## Medical Compliance
|
||||
- No price disclosure, no testimonial quotes, no competitor comparison
|
||||
- B&A posts require disclaimer
|
||||
39
.claude/commands/jamie-youtube-manager.md
Normal file
39
.claude/commands/jamie-youtube-manager.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
description: YouTube SEO auditor and content manager for Jamie Plastic Surgery Clinic
|
||||
---
|
||||
|
||||
# Jamie YouTube Manager
|
||||
|
||||
YouTube SEO audit, metadata optimization, schema generation, and API batch updates for Jamie Clinic (18 videos).
|
||||
|
||||
## Triggers
|
||||
- "YouTube SEO", "YT optimization"
|
||||
- "Jamie 유튜브", "영상 최적화"
|
||||
|
||||
## API Scripts
|
||||
|
||||
```bash
|
||||
cd ~/Project/our-claude-skills/custom-skills/43-jamie-youtube-manager/code/scripts
|
||||
source venv/bin/activate
|
||||
|
||||
python jamie_youtube_api_test.py # Test connection
|
||||
python jamie_video_info.py https://youtu.be/ID -v # Get video info
|
||||
python jamie_channel_status.py # Channel status
|
||||
python jamie_youtube_batch_update.py --dry-run # Preview batch update
|
||||
python jamie_youtube_batch_update.py --execute # Execute update
|
||||
```
|
||||
|
||||
## Capabilities
|
||||
- Video SEO Audit (score /100): title, description, chapters, captions, schema readiness
|
||||
- Metadata Optimization: title formula `[시술명] + [핵심 베네핏] | 제이미성형외과`
|
||||
- Description Generation with timestamps, CTA, contact info, disclaimers
|
||||
- Chapter/Timestamp Generation from transcripts
|
||||
- VideoObject Schema (JSON-LD) with Clip schema for chapters
|
||||
- Shorts Optimization checklist
|
||||
- Batch metadata update via YouTube API
|
||||
|
||||
## Medical Compliance
|
||||
- Educational explanations allowed; testimonials/guarantees prohibited
|
||||
- Required disclaimer: `※ 본 영상은 정보 제공 목적이며, 개인에 따라 결과가 다를 수 있습니다.`
|
||||
|
||||
## i18n Priority: Korean (required) > English (high) > Japanese/Chinese (medium)
|
||||
50
.claude/commands/jamie-youtube-subtitle-checker.md
Normal file
50
.claude/commands/jamie-youtube-subtitle-checker.md
Normal file
@@ -0,0 +1,50 @@
|
||||
---
|
||||
description: YouTube SBV subtitle correction and metadata generation for Jamie Clinic
|
||||
---
|
||||
|
||||
# Jamie YouTube Subtitle Checker
|
||||
|
||||
SBV subtitle file typo correction and YouTube metadata generation.
|
||||
|
||||
## Triggers
|
||||
- "check subtitles", "subtitle QA"
|
||||
- "자막 교정", "SBV 파일"
|
||||
|
||||
## Quick Commands
|
||||
|
||||
```bash
|
||||
# SBV typo correction
|
||||
python scripts/sbv_corrector.py --input "subtitle.sbv" --output "subtitle_corrected.sbv"
|
||||
|
||||
# Chapter extraction
|
||||
python scripts/chapter_extractor.py --input "subtitle.sbv"
|
||||
|
||||
# Full workflow (correction + chapters + metadata)
|
||||
python scripts/process_subtitle.py --input "subtitle.sbv" --output-dir "./output"
|
||||
```
|
||||
|
||||
## Workflow
|
||||
1. SBV parsing and text extraction
|
||||
2. Typo auto-correction (typo_dictionary.json)
|
||||
3. Medical terminology standardization
|
||||
4. Chapter timestamp extraction
|
||||
5. YouTube metadata generation
|
||||
|
||||
## Key Typo Patterns
|
||||
|
||||
| Category | Wrong | Correct |
|
||||
|----------|-------|---------|
|
||||
| Brand | 데이미, 재이미 | 제이미 |
|
||||
| Procedure | 쌍거풀, 쌍커풀 | 쌍꺼풀 |
|
||||
| Medical | 절계, 절게 | 절개 |
|
||||
|
||||
## Output Files
|
||||
- `{filename}_corrected.sbv` -- Corrected subtitles
|
||||
- `youtube_video_info.md` -- YouTube metadata (title, chapters, description, hashtags)
|
||||
- `correction_report.md` -- Typo change log
|
||||
|
||||
## Quality Checklist
|
||||
- Brand name "제이미성형외과" correct
|
||||
- Procedure names use official terminology
|
||||
- Chapters include 0:00 intro
|
||||
- 3-5 hashtags included
|
||||
55
.claude/commands/our-settings-audit.md
Normal file
55
.claude/commands/our-settings-audit.md
Normal file
@@ -0,0 +1,55 @@
|
||||
---
|
||||
description: Claude Code settings optimization and token audit
|
||||
---
|
||||
|
||||
# Claude Code Settings Optimizer
|
||||
|
||||
Self-audit and optimize Claude Code configuration for maximum token efficiency and performance.
|
||||
|
||||
## Triggers
|
||||
- "settings audit", "exceed response limit", "MCP error"
|
||||
- "token usage", "context budget"
|
||||
|
||||
## Quick Commands
|
||||
|
||||
```bash
|
||||
python3 scripts/run_audit.py
|
||||
python3 scripts/analyze_tokens.py
|
||||
python3 scripts/auto_fix.py --apply
|
||||
```
|
||||
|
||||
## Audit Scope
|
||||
|
||||
### Token Budget Targets
|
||||
|
||||
| Component | Target | Max |
|
||||
|-----------|--------|-----|
|
||||
| CLAUDE.md | 2,000 | 3,000 |
|
||||
| MCP Servers | 5,000 | 10,000 |
|
||||
| Skills metadata | 500 | 1,000 |
|
||||
| Working space | >140,000 | -- |
|
||||
|
||||
### MCP Server Strategy
|
||||
|
||||
| Strategy | Criteria |
|
||||
|----------|----------|
|
||||
| `always` | Essential for daily work (Playwright, Notion) |
|
||||
| `lazy` | Occasionally needed (GitHub, Slack) |
|
||||
| `disable` | Rarely used or token-heavy |
|
||||
|
||||
Every MCP server MUST have `serverInstructions` for Tool Search.
|
||||
|
||||
### CLAUDE.md Health Checks
|
||||
- Line count (warn >200), token estimate (warn >3,000)
|
||||
- Structure quality, redundant info, unnecessary repetition
|
||||
|
||||
### Auto-Fix (safe, with backup)
|
||||
- Add `serverInstructions` to MCP servers
|
||||
- Add frontmatter to commands missing it
|
||||
- Suggest CLAUDE.md compression
|
||||
|
||||
## Output Report
|
||||
- Token budget breakdown and percentages
|
||||
- Health status (Good/Needs Attention/Critical)
|
||||
- Findings (Critical/Warnings/Passing)
|
||||
- Prioritized recommendations
|
||||
38
.claude/commands/ourdigital-ad-manager.md
Normal file
38
.claude/commands/ourdigital-ad-manager.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
description: Ad copywriting and keyword research for OurDigital marketing
|
||||
---
|
||||
|
||||
# OurDigital Ad Manager
|
||||
|
||||
Automated ad copywriting and keyword research. Activated with "ourdigital" keyword.
|
||||
|
||||
## Triggers
|
||||
- "ourdigital ad copy", "ourdigital 광고 카피"
|
||||
- "ourdigital keyword", "ourdigital 키워드"
|
||||
|
||||
## Scripts
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
## Platform Specs
|
||||
|
||||
| Platform | Headline | Description |
|
||||
|----------|----------|-------------|
|
||||
| Google | 30x3 chars | 90x2 chars |
|
||||
| Naver | 25 chars | 45 chars |
|
||||
| Meta | 40 chars | 125 chars |
|
||||
|
||||
## Capabilities
|
||||
- Single/bulk ad copy generation with USP and CTA
|
||||
- Keyword volume research with competitor analysis
|
||||
- Competitor ad analysis
|
||||
- Output: JSON, CSV (bulk upload), Markdown report
|
||||
39
.claude/commands/ourdigital-backoffice.md
Normal file
39
.claude/commands/ourdigital-backoffice.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
description: Business document creation (quotes, proposals, cost analysis) for OurDigital
|
||||
---
|
||||
|
||||
# OurDigital Backoffice
|
||||
|
||||
Business document generation with pricing automation. Activated with "ourdigital" keyword.
|
||||
|
||||
## Triggers
|
||||
- "ourdigital quote", "ourdigital 견적서"
|
||||
- "ourdigital proposal", "ourdigital 제안서"
|
||||
|
||||
## Scripts
|
||||
|
||||
```bash
|
||||
# Generate quote
|
||||
python code/scripts/generate_quote.py --client "ABC Company" --services "seo_audit,gtm_setup"
|
||||
|
||||
# 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
|
||||
```
|
||||
|
||||
## Service Codes & Base Prices
|
||||
|
||||
| Code | Service | 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/회 |
|
||||
|
||||
## Output Formats
|
||||
- Markdown (default), PDF, DOCX
|
||||
42
.claude/commands/ourdigital-blog.md
Normal file
42
.claude/commands/ourdigital-blog.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
description: Korean blog drafting for blog.ourdigital.org with Ghost CMS integration
|
||||
---
|
||||
|
||||
# OurDigital Blog
|
||||
|
||||
Korean blog draft creation for blog.ourdigital.org. Activated with "ourdigital" keyword.
|
||||
|
||||
## Triggers
|
||||
- "ourdigital blog", "ourdigital 블로그"
|
||||
- "ourdigital 한국어 포스트"
|
||||
|
||||
## Channel Profile
|
||||
|
||||
- URL: blog.ourdigital.org
|
||||
- Language: Korean (영문 전문용어 병기)
|
||||
- Tone: Analytical, Educational
|
||||
- Platform: Ghost CMS
|
||||
- Length: 1,500-3,000자
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Topic Clarification**: 주제, 타겟 독자, 깊이 수준
|
||||
2. **Draft Structure**: 도입부(Hook) -> 본론(3-5 포인트) -> 결론(Summary + 열린 질문)
|
||||
3. **Writing Style**: 분석적+개인적 톤, 한글 기본 영문 병기, 관찰->분석->함의
|
||||
4. **SEO Metadata**: title(60자), meta_description(155자), slug, tags
|
||||
5. **Output**: Markdown with YAML frontmatter
|
||||
|
||||
## Scripts
|
||||
|
||||
```bash
|
||||
python shared/scripts/export_blog.py --output ulysses
|
||||
python shared/scripts/ghost_publish.py --draft
|
||||
```
|
||||
|
||||
## Export Options
|
||||
1. Ulysses -> `$ULYSSES_EXPORT_PATH`
|
||||
2. Ghost Draft -> API push
|
||||
3. Local -> `./output/blog/`
|
||||
|
||||
## Brand Compliance
|
||||
- 분석적 톤, 기술+인간적 함의, 전문용어 영문 병기, 1,500-3,000자
|
||||
47
.claude/commands/ourdigital-document.md
Normal file
47
.claude/commands/ourdigital-document.md
Normal file
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: Notion-to-presentation workflow for OurDigital branded documents
|
||||
---
|
||||
|
||||
# OurDigital Document
|
||||
|
||||
Automated Notion-to-presentation pipeline with brand styling.
|
||||
|
||||
## Triggers
|
||||
- "ourdigital document", "ourdigital 문서"
|
||||
- "ourdigital presentation", "ourdigital 프레젠테이션"
|
||||
|
||||
## Pipeline
|
||||
|
||||
```
|
||||
extract_notion.py -> synthesize_content.py -> apply_brand.py
|
||||
| | |
|
||||
research.json synthesis.json presentation.pptx
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
python scripts/run_workflow.py --notion-url [URL] --output presentation.pptx
|
||||
|
||||
# Step-by-step
|
||||
python scripts/extract_notion.py [URL] > research.json
|
||||
python scripts/synthesize_content.py research.json > synthesis.json
|
||||
python scripts/apply_brand.py synthesis.json --output 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 |
|
||||
|
||||
## Output Formats
|
||||
- PowerPoint (.pptx)
|
||||
- Figma (via API)
|
||||
- HTML preview
|
||||
|
||||
## Brand Configuration
|
||||
See `code/assets/brand_config.json` for logo, colors (OurDigital palette), fonts (Poppins/Lora), slide templates.
|
||||
44
.claude/commands/ourdigital-journal.md
Normal file
44
.claude/commands/ourdigital-journal.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
description: English essay creation for journal.ourdigital.org with Ghost CMS integration
|
||||
---
|
||||
|
||||
# OurDigital Journal
|
||||
|
||||
English essay and article creation for journal.ourdigital.org. Activated with "ourdigital" keyword.
|
||||
|
||||
## Triggers
|
||||
- "ourdigital journal", "ourdigital essay"
|
||||
- "ourdigital English article"
|
||||
|
||||
## Channel Profile
|
||||
|
||||
- URL: journal.ourdigital.org
|
||||
- Language: English
|
||||
- Tone: Conversational, Poetic, Reflective
|
||||
- Platform: Ghost CMS
|
||||
- Length: 1,000-2,000 words
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Topic Exploration**: Angle, audience, depth level
|
||||
2. **Essay Structure**: Opening (evocative) -> Exploration (3-4 observations) -> Synthesis -> Closing (open-ended)
|
||||
3. **Writing Style**: First-person reflective, philosophical-technical hybrid, epistemic humility, cultural bridging
|
||||
4. **Output**: Markdown with YAML frontmatter (title, meta_description, slug, tags)
|
||||
|
||||
## 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 |
|
||||
|
||||
## Scripts
|
||||
|
||||
```bash
|
||||
python shared/scripts/ghost_publish.py --file essay.md --channel journal --draft
|
||||
```
|
||||
|
||||
## Export Options
|
||||
1. Ghost Draft -> API push
|
||||
2. Local -> `./output/journal/`
|
||||
39
.claude/commands/ourdigital-skill-creator.md
Normal file
39
.claude/commands/ourdigital-skill-creator.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
description: Meta skill for creating new OurDigital Claude Skills with scaffolding
|
||||
---
|
||||
|
||||
# OurDigital Skill Creator
|
||||
|
||||
Create and manage OurDigital Claude Skills with automated scaffolding and Notion sync.
|
||||
|
||||
## Triggers
|
||||
- "ourdigital 스킬 만들기", "ourdigital skill creator"
|
||||
- "create ourdigital skill", "new ourdigital skill"
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
python shared/scripts/init_skill.py {skill-name} --number XX
|
||||
python shared/scripts/validate_skill.py XX-ourdigital-{skill-name}
|
||||
python shared/scripts/sync_notion.py XX-ourdigital-{skill-name} --action=create
|
||||
```
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Suitability Check**: Clear trigger, focused scope, reusable resources, no overlap (>=3 passes)
|
||||
2. **Requirements Q&A**: Purpose, trigger, tools, output, environment
|
||||
3. **Generate Structure**: `mkdir -p XX-ourdigital-{name}/{code,desktop,shared/{references,templates,scripts},docs/logs}`
|
||||
4. **YAML Frontmatter**: Standard template with name, description, triggers, features
|
||||
5. **Validation**: Directory structure, SKILL.md in both versions, content 800-1,200 words
|
||||
6. **Notion Sync**: Record to Working with AI 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 |
|
||||
42
.claude/commands/ourdigital-trainer.md
Normal file
42
.claude/commands/ourdigital-trainer.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
description: Training material creation and workshop planning for OurDigital
|
||||
---
|
||||
|
||||
# OurDigital Trainer
|
||||
|
||||
Training material generation with template-based curriculum and evaluation forms.
|
||||
|
||||
## Triggers
|
||||
- "ourdigital training", "ourdigital 교육"
|
||||
- "ourdigital workshop", "ourdigital 워크샵"
|
||||
|
||||
## Scripts
|
||||
|
||||
```bash
|
||||
# Generate curriculum
|
||||
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"
|
||||
```
|
||||
|
||||
## Workshop Formats
|
||||
|
||||
| Format | Duration | Modules |
|
||||
|--------|----------|---------|
|
||||
| mini | 2 hours | 2 |
|
||||
| half-day | 4 hours | 3-4 |
|
||||
| full-day | 8 hours | 5-6 |
|
||||
| series | Multiple | Custom |
|
||||
|
||||
## Evaluation Types
|
||||
- pre-post: 학습 전후 비교
|
||||
- satisfaction: 만족도 조사
|
||||
- knowledge: 지식 평가
|
||||
- application: 현업 적용도
|
||||
|
||||
## Output Formats
|
||||
- Markdown (default), JSON, Google Slides export
|
||||
40
.claude/commands/seo-comprehensive-audit.md
Normal file
40
.claude/commands/seo-comprehensive-audit.md
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
description: Unified 6-stage SEO audit orchestrator with weighted health score
|
||||
---
|
||||
|
||||
# SEO Comprehensive Audit
|
||||
|
||||
Runs 6 sub-skill audits, merges results into unified report with weighted health score (0-100), pushes to Notion.
|
||||
|
||||
## Triggers
|
||||
- "comprehensive SEO", "full SEO audit"
|
||||
- "종합 SEO 감사"
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
python scripts/seo_audit_orchestrator.py --url https://example.com
|
||||
python scripts/seo_audit_orchestrator.py --url https://example.com --skip-local --skip-gsc
|
||||
python scripts/seo_audit_orchestrator.py --url https://example.com --json
|
||||
```
|
||||
|
||||
## Pipeline (6 Stages)
|
||||
|
||||
| Stage | Audit | Weight |
|
||||
|-------|-------|--------|
|
||||
| 1 | Technical SEO (robots, sitemap) | 20% |
|
||||
| 2 | On-Page SEO (meta, headings, links) | 20% |
|
||||
| 3 | Core Web Vitals (LCP, CLS, INP) | 25% |
|
||||
| 4 | Schema Validation | 15% |
|
||||
| 5 | Local SEO (GBP, Naver, NAP) | 10% |
|
||||
| 6 | Search Console (rankings, CTR) | 10% |
|
||||
|
||||
## Stage 5: Local SEO Key Requirements
|
||||
- Business Identity extraction is MANDATORY first step
|
||||
- Korean market: GBP and Naver Smart Place = Critical; Kakao Map = High
|
||||
- GBP/Naver Map are JS-rendered; report unfound as "not discoverable via web search"
|
||||
|
||||
## Notion Output
|
||||
- Database ID: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
|
||||
- Report in Korean; technical English terms as-is
|
||||
- Audit ID format: COMP-YYYYMMDD-NNN
|
||||
45
.claude/commands/seo-core-web-vitals.md
Normal file
45
.claude/commands/seo-core-web-vitals.md
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: Core Web Vitals analyzer using PageSpeed Insights API (LCP, CLS, INP, FID)
|
||||
---
|
||||
|
||||
# SEO Core Web Vitals
|
||||
|
||||
PageSpeed Insights API client for CWV measurement and recommendations.
|
||||
|
||||
## Triggers
|
||||
- "Core Web Vitals", "page speed"
|
||||
- "LCP", "CLS", "INP", "performance audit"
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
export PAGESPEED_API_KEY=your_api_key
|
||||
python scripts/pagespeed_client.py --url https://example.com
|
||||
python scripts/pagespeed_client.py --url https://example.com --strategy both
|
||||
python scripts/pagespeed_client.py --urls urls.txt --output results.json
|
||||
```
|
||||
|
||||
## CWV Thresholds
|
||||
|
||||
| Metric | Good | Poor |
|
||||
|--------|------|------|
|
||||
| LCP | <=2.5s | >4s |
|
||||
| FID | <=100ms | >300ms |
|
||||
| CLS | <=0.1 | >0.25 |
|
||||
| INP | <=200ms | >500ms |
|
||||
|
||||
## Common Fixes
|
||||
|
||||
| Issue | Fix |
|
||||
|-------|-----|
|
||||
| Large LCP | Optimize images, preload critical resources |
|
||||
| High CLS | Set image dimensions, avoid injected content |
|
||||
| Poor INP | Reduce JavaScript, optimize event handlers |
|
||||
| Slow TTFB | Improve server response, use CDN |
|
||||
|
||||
## Rate Limits
|
||||
- No API key: 25/day; With key: 25,000/day
|
||||
|
||||
## Notion Output
|
||||
- Database: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
|
||||
- Korean report, Audit ID: [TYPE]-YYYYMMDD-NNN
|
||||
42
.claude/commands/seo-local-audit.md
Normal file
42
.claude/commands/seo-local-audit.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
description: Local SEO audit for Korean-market businesses (GBP, Naver Place, NAP, citations)
|
||||
---
|
||||
|
||||
# SEO Local Audit
|
||||
|
||||
Korean-market local SEO: business identity, GBP, Naver Smart Place, Kakao Map, NAP consistency, citations, LocalBusiness schema.
|
||||
|
||||
## Triggers
|
||||
- "local SEO", "Google Business Profile"
|
||||
- "Naver Place", "NAP consistency"
|
||||
|
||||
## Workflow (7 Steps)
|
||||
|
||||
1. **Business Identity (MANDATORY FIRST)**: Extract from JSON-LD, contact page, footer
|
||||
2. **Website NAP Extraction**: Establish canonical NAP baseline
|
||||
3. **GBP Verification**: Layered discovery (provided URL -> website -> WebSearch fallback)
|
||||
4. **Naver Smart Place**: Layered discovery with Korean search queries
|
||||
5. **Kakao Map Verification**: Check website links, then WebSearch
|
||||
6. **Citation Discovery**: Industry directories (강남언니, 바비톡, 굿닥, etc.)
|
||||
7. **LocalBusiness Schema Validation**: JSON-LD completeness check
|
||||
|
||||
## Scoring Weights
|
||||
|
||||
| Component | Weight |
|
||||
|-----------|--------|
|
||||
| NAP Consistency | 20% |
|
||||
| GBP Optimization | 20% |
|
||||
| Naver Smart Place | 20% |
|
||||
| LocalBusiness Schema | 15% |
|
||||
| Kakao Map | 10% |
|
||||
| Citations | 10% |
|
||||
| Business Identity | 5% |
|
||||
|
||||
## Key Rules
|
||||
- GBP and Naver Map are JS-rendered -- use WebSearch for discovery
|
||||
- "Not discoverable via web search" != "does not exist"
|
||||
- Korean market: Naver Smart Place is as important as GBP
|
||||
|
||||
## Notion Output
|
||||
- Database: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
|
||||
- Category: Local SEO, Audit ID: LOCAL-YYYYMMDD-NNN
|
||||
40
.claude/commands/seo-on-page-audit.md
Normal file
40
.claude/commands/seo-on-page-audit.md
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
description: On-page SEO analyzer for meta tags, headings, links, images, and Open Graph
|
||||
---
|
||||
|
||||
# SEO On-Page Audit
|
||||
|
||||
Single-page optimization analysis: meta tags, heading structure, links, images, OG data.
|
||||
|
||||
## Triggers
|
||||
- "on-page SEO", "meta tags"
|
||||
- "heading analysis", "page SEO check"
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
python scripts/page_analyzer.py --url https://example.com
|
||||
python scripts/page_analyzer.py --url https://example.com --json
|
||||
python scripts/page_analyzer.py --urls urls.txt
|
||||
```
|
||||
|
||||
## Analysis Categories
|
||||
- **Meta Tags**: Title (length, keywords), description, canonical, robots
|
||||
- **Heading Structure**: H1 presence/count, hierarchy validation, keyword placement
|
||||
- **Links**: Internal/external count, broken links, nofollow distribution
|
||||
- **Images**: Alt attributes, file sizes, lazy loading
|
||||
- **Open Graph**: OG title/description/image, Twitter Cards
|
||||
|
||||
## Common Issues
|
||||
|
||||
| Issue | Severity |
|
||||
|-------|----------|
|
||||
| Missing H1 | High |
|
||||
| Title too long (>60) | Medium |
|
||||
| No meta description | High |
|
||||
| Images without alt | Medium |
|
||||
| Multiple H1 tags | Medium |
|
||||
|
||||
## Notion Output
|
||||
- Database: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
|
||||
- Korean report, Audit ID: [TYPE]-YYYYMMDD-NNN
|
||||
42
.claude/commands/seo-search-console.md
Normal file
42
.claude/commands/seo-search-console.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
description: Google Search Console data retrieval (rankings, CTR, impressions, sitemaps)
|
||||
---
|
||||
|
||||
# SEO Search Console
|
||||
|
||||
GSC API client for search analytics, sitemap status, and index coverage.
|
||||
|
||||
## Triggers
|
||||
- "Search Console", "rankings"
|
||||
- "GSC data", "search performance"
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
python scripts/gsc_client.py --site sc-domain:example.com --action summary
|
||||
python scripts/gsc_client.py --site sc-domain:example.com --action queries --limit 100
|
||||
python scripts/gsc_client.py --site sc-domain:example.com --action pages
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
- Credentials: `~/.credential/ourdigital-seo-agent.json`
|
||||
- Service account: `ourdigital-seo-agent@ourdigital-insights.iam.gserviceaccount.com`
|
||||
|
||||
## Actions
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| `summary` | Clicks, impressions, CTR, position overview |
|
||||
| `queries` | Top search queries |
|
||||
| `pages` | Top pages by clicks |
|
||||
| `sitemaps` | Sitemap submission status |
|
||||
| `coverage` | Index coverage issues |
|
||||
|
||||
## Site Property Formats
|
||||
- Domain: `sc-domain:example.com`
|
||||
- URL prefix: `https://www.example.com/`
|
||||
|
||||
## Notion Output
|
||||
- Database: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
|
||||
- Korean report, Audit ID: [TYPE]-YYYYMMDD-NNN
|
||||
44
.claude/commands/seo-technical-audit.md
Normal file
44
.claude/commands/seo-technical-audit.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
description: Technical SEO audit for robots.txt, XML sitemap, and URL crawlability
|
||||
---
|
||||
|
||||
# SEO Technical Audit
|
||||
|
||||
Crawlability fundamentals: robots.txt validation, XML sitemap analysis, URL accessibility checking.
|
||||
|
||||
## Triggers
|
||||
- "technical SEO", "crawlability"
|
||||
- "robots.txt", "sitemap validation"
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
python scripts/robots_checker.py --url https://example.com
|
||||
python scripts/sitemap_validator.py --url https://example.com/sitemap.xml
|
||||
python scripts/sitemap_crawler.py --sitemap https://example.com/sitemap.xml
|
||||
```
|
||||
|
||||
## Scripts
|
||||
|
||||
| Script | Purpose |
|
||||
|--------|---------|
|
||||
| `robots_checker.py` | Parse robots.txt, test URL rules |
|
||||
| `sitemap_validator.py` | Validate XML structure, URL count, lastmod |
|
||||
| `sitemap_crawler.py` | Async check URL accessibility, HTTP status |
|
||||
|
||||
## Common Issues Detected
|
||||
|
||||
| Issue | Severity |
|
||||
|-------|----------|
|
||||
| Missing sitemap declaration | Medium |
|
||||
| Blocking CSS/JS resources | High |
|
||||
| URLs returning 404 | High |
|
||||
| Exceeds 50,000 URL limit | High |
|
||||
| Non-canonical URLs included | Medium |
|
||||
|
||||
## Config
|
||||
- `CRAWL_DELAY=1.0`, `MAX_CONCURRENT=20`, `REQUEST_TIMEOUT=30`
|
||||
|
||||
## Notion Output
|
||||
- Database: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
|
||||
- Korean report, Audit ID: [TYPE]-YYYYMMDD-NNN
|
||||
@@ -224,7 +224,7 @@ For long-running tasks, use `run_in_background: true`:
|
||||
|
||||
```
|
||||
# Good candidates for background execution:
|
||||
- Full skill audit across all 52 skills
|
||||
- Full skill audit across all 62 skills
|
||||
- Running Python tests on multiple skills
|
||||
- Generating comprehensive documentation
|
||||
|
||||
|
||||
13
CLAUDE.md
13
CLAUDE.md
@@ -7,7 +7,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||
**GitHub**: https://github.com/ourdigital/our-claude-skills
|
||||
|
||||
This is a Claude Skills collection repository containing:
|
||||
- **custom-skills/**: 62 custom skills for OurDigital workflows, SEO, GTM, Jamie Brand, NotebookLM, Notion, D.intelligence Agent Corps, Reference Curation, Mac Optimizer, and Multi-Agent Collaboration
|
||||
- **custom-skills/**: 62 custom skills for OurDigital workflows, SEO, GTM, Jamie Brand, NotebookLM, Notion, D.intelligence Agent Corps, Reference Curation, Mac Optimizer, TUI Designer, and Multi-Agent Collaboration
|
||||
- **example-skills/**: Reference examples from Anthropic's official skills repository
|
||||
- **official-skills/**: Notion integration skills (3rd party)
|
||||
- **reference/**: Skill format requirements documentation
|
||||
@@ -85,7 +85,6 @@ This is a Claude Skills collection repository containing:
|
||||
|---|-------|---------|---------|
|
||||
| 40 | jamie-brand-editor | Branded content generation | "write Jamie blog", "Jamie content" |
|
||||
| 41 | jamie-brand-audit | Content review/compliance | "review content", "brand audit" |
|
||||
| 42 | jamie-journal-editor | Clinic journal editing | "Jamie journal", "진료 일지" |
|
||||
| 43 | jamie-youtube-manager | YouTube SEO audit & management | "YouTube SEO", "YT optimization" |
|
||||
| 44 | jamie-youtube-subtitle-checker | YouTube subtitle validation | "check subtitles", "subtitle QA" |
|
||||
| 45 | jamie-instagram-manager | Instagram account management | "Instagram management", "IG strategy" |
|
||||
@@ -121,11 +120,12 @@ This is a Claude Skills collection repository containing:
|
||||
|
||||
**User Guide:** `custom-skills/dintel-shared/USER-GUIDE.md`
|
||||
|
||||
### System Tools (92)
|
||||
### System & Design Tools (92-93)
|
||||
|
||||
| # | Skill | Purpose | Trigger |
|
||||
|---|-------|---------|---------|
|
||||
| 92 | mac-optimizer | macOS system health audit & optimization (Claude Code only) | "audit my mac", "system health", "clean up caches", "check security", "update packages" |
|
||||
| 93 | tui-designer | TUI wizard interface design (Norton Commander / Gopher style, Rich) | "build TUI", "CLI wizard", "terminal UI", "Rich TUI" |
|
||||
|
||||
### Reference Curator & Multi-Agent (90-91)
|
||||
|
||||
@@ -253,15 +253,14 @@ our-claude-skills/
|
||||
│ ├── 34-seo-reporting-dashboard/
|
||||
│ │
|
||||
│ ├── 60-gtm-audit/
|
||||
│ ├── 61-gtm-manager/
|
||||
│ ├── 62-gtm-guardian/
|
||||
│ ├── 61-gtm-editor/
|
||||
│ ├── 62-gtm-validator/
|
||||
│ │
|
||||
│ ├── 31-notion-organizer/
|
||||
│ ├── 32-notion-writer/
|
||||
│ │
|
||||
│ ├── 40-jamie-brand-editor/
|
||||
│ ├── 41-jamie-brand-audit/
|
||||
│ ├── 42-jamie-journal-editor/
|
||||
│ ├── 43-jamie-youtube-manager/
|
||||
│ ├── 44-jamie-youtube-subtitle-checker/
|
||||
│ ├── 45-jamie-instagram-manager/
|
||||
@@ -298,6 +297,8 @@ our-claude-skills/
|
||||
│ │
|
||||
│ ├── 92-mac-optimizer/ # macOS system health toolkit (Claude Code only)
|
||||
│ │
|
||||
│ ├── 93-tui-designer/ # TUI wizard design (Rich, Norton Commander style)
|
||||
│ │
|
||||
│ └── 99_archive/
|
||||
│
|
||||
├── example-skills/skills-main/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
> **Internal R&D Repository** - This repository is restricted for internal use only.
|
||||
|
||||
A collection of **64 custom Claude Skills** for OurDigital workflows, D.intelligence Agent Corps (9-agent business operations suite), Jamie Plastic Surgery Clinic brand management, SEO/GTM tools, NotebookLM automation, Notion integrations, reference documentation curation, macOS system optimization, and multi-agent collaboration.
|
||||
A collection of **62 custom Claude Skills** for OurDigital workflows, D.intelligence Agent Corps (9-agent business operations suite), Jamie Plastic Surgery Clinic brand management, SEO/GTM tools, NotebookLM automation, Notion integrations, reference documentation curation, macOS system optimization, TUI wizard design, and multi-agent collaboration.
|
||||
|
||||
## Quick Install
|
||||
|
||||
@@ -105,7 +105,6 @@ cd our-claude-skills/custom-skills/_ourdigital-shared
|
||||
|---|-------|---------|
|
||||
| 40 | `jamie-brand-editor` | Branded content generation |
|
||||
| 41 | `jamie-brand-audit` | Content review/compliance |
|
||||
| 42 | `jamie-journal-editor` | Clinic journal editing |
|
||||
| 43 | `jamie-youtube-manager` | YouTube SEO audit & management |
|
||||
| 44 | `jamie-youtube-subtitle-checker` | YouTube subtitle validation |
|
||||
| 45 | `jamie-instagram-manager` | Instagram account management |
|
||||
@@ -121,11 +120,12 @@ cd our-claude-skills/custom-skills/_ourdigital-shared
|
||||
|
||||
**Prerequisites:** `pip install notebooklm-py && playwright install chromium && notebooklm login`
|
||||
|
||||
### System Tools (92)
|
||||
### System & Design Tools (92-93)
|
||||
|
||||
| # | Skill | Purpose |
|
||||
|---|-------|---------|
|
||||
| 92 | `mac-optimizer` | macOS system health audit & optimization (Claude Code only) |
|
||||
| 93 | `tui-designer` | TUI wizard interface design (Norton Commander / Gopher style, Rich) |
|
||||
|
||||
### Reference Curator & Multi-Agent (90-91)
|
||||
|
||||
@@ -184,6 +184,7 @@ our-claude-skills/
|
||||
│ ├── 90-reference-curator/
|
||||
│ ├── 91-multi-agent-guide/
|
||||
│ ├── 92-mac-optimizer/
|
||||
│ ├── 93-tui-designer/
|
||||
│ └── 99_archive/
|
||||
│
|
||||
├── example-skills/ # Anthropic reference examples
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# JHR — josunhotel.com Gotchas
|
||||
|
||||
Client: **JHR** (Josun Hotels & Resorts / 조선호텔앤리조트)
|
||||
Domain: josunhotel.com + subdomains (gjb, gjj, jpg, grp)
|
||||
|
||||
---
|
||||
|
||||
## 1. Intentionally Truncated Directory Names in robots.txt
|
||||
|
||||
**Date discovered**: 2026-03-20
|
||||
**Audit ID**: COMP-20260320-001
|
||||
|
||||
The following `Disallow` paths in robots.txt look like typos but are **intentional directory names** on the server:
|
||||
|
||||
| robots.txt path | Looks like it should be | Actual status |
|
||||
|-----------------|------------------------|---------------|
|
||||
| `/cnfirm` | `/confirm` | **Intentional** — real directory name |
|
||||
| `/mber` | `/member` | **Intentional** — real directory name |
|
||||
|
||||
**Do NOT recommend renaming these** in audit reports. The server-side application uses these truncated names by design.
|
||||
|
||||
### Context
|
||||
|
||||
The josunhotel.com backend (Java/.do endpoints) uses shortened directory names for certain internal paths. This is likely a legacy naming convention from the original application architecture.
|
||||
|
||||
### Audit Impact
|
||||
|
||||
When running Technical SEO audits (Stage 1), skip the "typo in Disallow paths" finding for `/cnfirm` and `/mber`. These are valid paths that correctly block crawler access to confirmation and member-related pages.
|
||||
@@ -0,0 +1,30 @@
|
||||
# JHR — lescapehotel.com Gotchas
|
||||
|
||||
Client: **JHR** (Josun Hotels & Resorts)
|
||||
Domain: lescapehotel.com → les.josunhotel.com (migrated)
|
||||
|
||||
---
|
||||
|
||||
## 1. Domain Migration Complete — Monitor Redirects & Link Juice
|
||||
|
||||
**Date discovered**: 2025-12-14
|
||||
**Updated**: 2026-03-20
|
||||
**Status**: Migration COMPLETE
|
||||
|
||||
The L'Escape Hotel domain migration from `lescapehotel.com` to `les.josunhotel.com` has been completed.
|
||||
|
||||
### What to Monitor (Watchtower)
|
||||
|
||||
- **301 redirects**: Verify all old lescapehotel.com URLs still 301 to correct les.josunhotel.com counterparts
|
||||
- **Link juice preservation**: Check that backlinks from external sites pointing to lescapehotel.com are passing authority through redirects
|
||||
- **Redirect chains**: Watch for double redirects (lescapehotel.com → old intermediate → les.josunhotel.com)
|
||||
- **GSC coverage**: Monitor les.josunhotel.com indexing in Google Search Console
|
||||
- **Referring domains**: Track referring domain count in Ahrefs/GSC to ensure backlink equity is maintained
|
||||
|
||||
### Audit Checklist (Run Periodically)
|
||||
|
||||
1. Sample 10-20 old lescapehotel.com URLs — verify 301 status
|
||||
2. Check for any 404s on les.josunhotel.com that should have redirects
|
||||
3. Compare organic traffic trends pre/post migration
|
||||
4. Verify old sitemap URLs are all redirecting properly
|
||||
5. Check Naver Search Advisor for indexing status
|
||||
@@ -0,0 +1,40 @@
|
||||
# SLA — shillahotels.com Gotchas
|
||||
|
||||
Client: **SLA** (Shilla Hotels & Resorts / 신라호텔)
|
||||
Domain: shillahotels.com
|
||||
|
||||
---
|
||||
|
||||
## 1. www1 / www2 Are Dev/Stage Hosts, NOT Production
|
||||
|
||||
**Date discovered**: 2026-03-20
|
||||
**Context**: SLA new integrated website under construction
|
||||
|
||||
The Shilla Hotels domain uses numbered subdomains for development environments:
|
||||
|
||||
| Subdomain | Purpose | Status |
|
||||
|-----------|---------|--------|
|
||||
| `www1.shillahotels.com` | Development | Active — deployed intermittently |
|
||||
| `www2.shillahotels.com` | Staging | Active — deployed intermittently |
|
||||
| `www.shillahotels.com` | Production (current) | Live |
|
||||
| TBD (new integrated site) | Production (future) | **Target launch: end of June 2026** |
|
||||
|
||||
**Do NOT run technical SEO audits against www1 or www2** unless specifically instructed. These are pre-production environments and will have:
|
||||
- No robots.txt
|
||||
- No XML sitemap
|
||||
- Incomplete meta tags
|
||||
- Missing canonical/hreflang tags
|
||||
|
||||
These are expected states for dev/stage, not audit findings.
|
||||
|
||||
### When to Scan
|
||||
|
||||
The client will notify when www1/www2 need technical SEO element checks. Do NOT proactively audit these subdomains.
|
||||
|
||||
## 2. No robots.txt or Sitemap on Dev/Stage Hosts
|
||||
|
||||
**Date discovered**: 2026-03-20
|
||||
|
||||
robots.txt and sitemap.xml are intentionally not deployed to www1 and www2. This is expected for pre-production environments. Do NOT flag as issues.
|
||||
|
||||
Wait for client instruction before scanning technical SEO elements on these hosts.
|
||||
Reference in New Issue
Block a user