Commit Graph

148 Commits

Author SHA1 Message Date
665fe22201 feat(notion-writer): add table blocks, inline rich-text parsing, and parser tests
Extend markdown_to_notion_blocks with GFM table support and rewrite
parse_rich_text to emit Notion annotations for bold/italic/code/link/strike
instead of dropping them as literal text. Move checkbox match ahead of the
bullet match so "- [ ]" lines become to_do blocks, not bullets.

Add test_parser.py with 13 regression tests covering rich-text spans,
block types, and table cell formatting.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 13:00:12 +09:00
c9772db119 fix(notion-writer): skip archived blocks when replacing page content
The --replace flag failed with "Can't edit block that is archived" when
a page contained previously archived blocks. Now skips them during clear.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 23:26:47 +09:00
382b55e9c8 feat(reference-curator): add --wayback-fallback flag + CAPTCHA/IP block detection
- Add _is_captcha_response() to detect Google sorry page, 429, and
  "unusual traffic" markers in crawler responses
- Add --wayback-fallback CLI flag: auto-switches remaining URLs to
  web.archive.org/web/2024/ after 3 consecutive CAPTCHA blocks
- Add --delay CLI flag for polite crawling with configurable interval
- Add retry logic with exponential backoff on 429/5xx responses
- Document GOTCHA section in crawler CLAUDE.md with detection signals,
  Wayback detour solution, and prevention tips
- Add GOTCHA callout in pipeline orchestrator Stage 2 docs
- Record source: wayback in frontmatter for traceability

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 01:55:11 +09:00
b1c2dca080 feat(reference-curator): add --save-raw, --no-distill flags + OurSEO crawler integration
- Add --save-raw flag: saves intact crawled markdown in raw/ subdirectory
  alongside distilled content, with YAML frontmatter for traceability
- Add --no-distill flag: skip stages 4-5 (distiller + QA reviewer),
  pure archival mode for raw documentation capture
- Integrate OurSEO BaseAsyncClient + PageAnalyzer as seo-aiohttp backend:
  token-bucket rate limiting, semaphore concurrency, tenacity retries,
  full page metadata extraction (headings, links, schema, OG)
- New seo_crawler_adapter.py: crawl URLs, sitemaps, link discovery, manifests
  with progress tracking and resume support
- Update crawler selection: docs sites now default to seo-aiohttp
- Update crawl_config.yaml with seo-aiohttp routing rules
- Update pipeline orchestrator with flag resolution and skip paths
- Update README.md and USER-GUIDE.md with raw mode documentation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 23:26:50 +09:00
f215c11c32 feat(reference-curator): implement Python scripts + Gemini quality gate
Build the refcurator shared Python package and 7 CLI scripts that were
previously specification-only. Add Gemini CLI as an independent pre-distillation
quality evaluator, replacing the circular Claude-self-review pattern.

Key changes:
- shared/lib/src/refcurator/: 7-module package (config, db, models, utils,
  manifest, gemini) with PyMySQL + JSON file dual backend
- 7 Click CLI scripts: discover, crawl_mgr, repo, distiller, reviewer,
  exporter, pipeline — each with subcommands for data management
- Gemini quality gate: evaluates raw content BEFORE distillation using
  5 criteria (relevance, authority, completeness, freshness, distill_value)
- Pipeline reordered: discovery → crawl → store → evaluate → distill → export
- Bug fixes from Codex adversarial review:
  - FileBackend now hard-fails on JOIN/aggregate/GROUP BY queries
  - Exporter uses MAX(review_id) to prevent shipping stale approvals
  - Distiller updates existing rows on refactor instead of forking
- Updated all 7 CLAUDE.md directives with real script references
- install.sh updated with refcurator package install step

51/51 E2E tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 18:22:28 +09:00
133df68b81 Merge branch 'main' of https://gitea.dintelligence.co.kr/ourdigital/our-claude-skills 2026-04-06 18:06:34 +09:00
292cd132c2 [brand] Core Values 수정: In-Action 유지 (Performance-driven → In-Action 복원)
In-Action은 OurDigital 서비스 태그라인 체계의 핵심:
SEO in Action, Brand in Action, Performance in Action, Data in Action

Core Values 최종 확정: 마케팅 과학 / 실행 지향(In-Action) / 지속 성장

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 00:33:59 +09:00
7c8dbaeb78 [brand] ourdigital-brand-guide v1.1 + 전체 Skills 정합성 업데이트
Core Values 재정의: 마케팅 과학 / 실행 성과 중심 / 지속 성장
Value Prop: 마케팅 과학으로 진단하고, 실행으로 처방합니다
Brand Compliance: 5항목 → 7항목
Deprecated Terms 섹션 신설
폰트 통일: Noto Sans KR / Inter (Poppins/Lora 교체)
색상 참조 통일: #221814 / #cedc00

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 20:32:46 +09:00
322f47dd6a update: new skills and settings 2026-04-04 02:04:20 +09:00
c35a28780d feat(gtm): add mandatory knowledge-base read/write directives to GTM skills
Agents must now read client profiles before GTM work and write session
logs after completing audits, tag changes, or validation — ensuring
findings compound across sessions instead of being lost.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 00:03:27 +09:00
f292408ea8 docs: register jamie-faq-entry in CLAUDE.md, README.md, AGENTS.md
Add skill #42 to Jamie Clinic tables, directory layout, and agent
routing. Update skill count from 64 to 65.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 03:26:24 +09:00
500d352026 feat(jamie-faq-entry): add skill with dual-platform structure and slash command
Restructure 42-jamie-faq-entry into code/desktop/shared layout,
create Claude Code directive, register /jamie-faq-entry command.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 03:20:53 +09:00
8e56a0f926 fix: update gtm commands 2026-03-31 02:38:27 +09:00
3c7aaa2d6e Refactor CLI into package structure and fix reported bugs (B1-B12) 2026-03-30 16:24:05 +09:00
8b98fdd2fc 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>
2026-03-29 16:21:22 +09:00
c73d284d44 feat(jamie-journal): add /jamie-journal-editor slash command
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 07:45:47 +09:00
fd7b7c7fbb docs(jamie-journal): update README with code version structure and quick start
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 07:34:56 +09:00
c60e2abd34 fix(jamie-journal): broaden individual_variation_pattern and tune StructureValidator regex 2026-03-29 07:34:04 +09:00
ccdd2c44ef feat(jamie-journal): implement LinkRecommender (procedure cross-linking suggestions) 2026-03-29 07:29:11 +09:00
311adaf06c feat(jamie-journal): implement SpellingChecker (built-in medical dict + optional hanspell) 2026-03-29 07:28:49 +09:00
1d236192b0 feat(jamie-journal): implement ComplianceChecker (의료법 제56조 pattern matching) 2026-03-29 07:28:28 +09:00
18bf611663 feat(jamie-journal): implement StructureValidator (5-step body, opening, CTA, disclaimer) 2026-03-29 07:27:52 +09:00
44731eb2f8 feat(jamie-journal): scaffold journal_validator.py with CLI and orchestrator
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 07:25:26 +09:00
d6fd629943 feat(jamie-journal): rewrite code/CLAUDE.md as self-contained directive
Replaced stub referencing desktop/references/ with fully inline content:
all brand voice, analogy dictionary, procedure copy, compliance rules,
numeric expressions, image placement, and workflow sections embedded directly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 01:26:05 +09:00
3b42b3d5a9 chore: untrack .claude/settings.local.json
Machine-specific permission rules should not be in version control.
Already covered by .claude/* in .gitignore.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 00:23:02 +09:00
c11917b551 chore: add Gemini config, Jamie Instagram caption guide, merge settings
- Add .gemini/settings.json for Gemini CLI
- Add Jamie Instagram caption style guide (v1.0)
- Merge conflict in settings.local.json (both upstream and local permissions)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 20:02:00 +09:00
edf5b546fe docs: sync README, AGENTS.md, CLAUDE.md with skills 46 and 47
- Update skill count 62 → 64
- Add jamie-journal-editor and jamie-marketing-editor to Jamie Clinic tables
- Update directory layout range and agent routing notes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 20:38:40 +09:00
55d450e635 feat(jamie): add skill 46-jamie-journal-editor and 47-jamie-marketing-editor
Restructured from Claude Desktop extracted skills into standard dual-platform
packages (code/ + desktop/) aligned with existing skill conventions.

- 46: Journal/blog content editor for journal.jamie.clinic
- 47: Multi-channel marketing content editor with compliance checker
- Updated CLAUDE.md skill registry and directory layout

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 20:37:24 +09:00
877db1aa0f refactor: reorganize skill numbering, remove obsolete skills, rename shared libs
- Rename: 00→80 claude-settings-optimizer, 88→79 dintel-skill-update,
  92→81 mac-optimizer, 93→82 tui-design-template
- Rename: dintel-shared → _dintel-shared (consistent with _ourdigital-shared)
- Remove: 61-gtm-manager, 62-gtm-guardian (obsolete), 99_archive
- Update all dintel-* skill refs (114 occurrences across 31 files)
- Sync README.md, CLAUDE.md, AGENTS.md with new structure

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 19:32:44 +09:00
ee355479b7 update:new skills and settings. new remote repository is set 2026-03-23 19:03:37 +09:00
Andrew Yim
e7f7e786db docs: add /mac-optimizer slash command
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:57:29 +09:00
Andrew Yim
6a10ce1333 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>
2026-03-21 12:52:59 +09:00
Andrew Yim
2851250cc1 docs(gtm): add JHR GA4 tagging reference from event planning sheet
Comprehensive reference extracted from 'JHR - User Behaviour, Event
Planning & GA setup' Google Sheet covering:
- Tag naming convention (platform + trigger + purpose + event)
- 4 inherited settings variables with all parameters
- Property codes for 11 hotels
- Meta/Kakao pixel event mapping
- Custom channel grouping rules
- eCommerce product categories
- 173 event catalog organized by category

Source: Google Sheets ID 1rhzYApbZ4wbe1gE-E43E-mlRdLl_etkIOZnqs1g9X1U

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 02:22:46 +09:00
Andrew Yim
1eaec93c13 docs(gtm): add subdomain regex dot separator gotcha
The pattern (www|app|...|\.)?josunhotel does NOT match
www.josunhotel.com. Fix: (www|app|...)?\.?josunhotel
moves the dot outside the alternation as a separate optional match.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 02:05:27 +09:00
Andrew Yim
f8b61e6745 docs(gtm): add old vs new variable comparison, les subdomain note
- Two-variable comparison table (Path vs URL based)
- Gotcha: new subdomain requires updating 14+ regex rules
- /timesale/, /campaign/ marked as placeholder paths

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 01:35:25 +09:00
Andrew Yim
9e0557eeac docs(gtm): add content grouping gotchas and RegEx Table reference
New section in common_issues.md covering:
- How RegEx Table content grouping works in GTM
- Common pitfall: new page paths falling to "Other"
- Gotcha: parallel Path/URL variables must stay in sync
- JHR content group category reference table
- Audit checklist for content grouping

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 01:23:40 +09:00
Andrew Yim
e2919eef18 feat(tui-designer): add line input mode pattern and gotchas
New section covering read_line() for text input in raw-mode TUI,
with implementation pattern and 5 gotchas from real usage.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 23:43:02 +09:00
Andrew Yim
1fe6f71751 feat: add 93-tui-designer skill for CLI wizard interfaces
Reusable patterns for building Norton Commander / Gopher style TUI
wizards with Python Rich. Covers architecture, components, keyboard
input, bilingual i18n, ListSelector, and 21 battle-tested gotchas.

Reference implementation: DTM Agent TUI (dintel-gtm-agent/src/dtm/tui/)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 18:59:45 +09:00
c287ca3340 feat: update GTM skills triad with field-tested improvements
gtm-audit (60):
- Added Mode D rule: check elements for IDs before designing CSS triggers

gtm-editor (61):
- Added "Tagging Workflow: dataLayer First" section — always suggest
  dataLayer push code for developers before creating GTM triggers
- Added multi-language snippets (JS, React, Vue, PHP)
- Added "Trigger Design: IDs First" section — prefer element IDs,
  ask user to add IDs before falling back to CSS selectors
- Added ID naming convention: [section]-[element]-[action]
- Added decision tree for trigger selection

gtm-validator (62):
- Flag CSS-based triggers as fragility risk during QA
- Recommend adding IDs instead of finding alternative CSS selectors

Based on field testing with ourdigital.org GTM-N9TPJW container.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 21:55:50 +09:00
f905ef6314 feat: add GTM editor & validator skills (61, 62), update GTM audit (60)
Restructure GTM skills into audit → edit → validate workflow:
- 60-gtm-audit: MCP-based page scan, site audit, gap analysis, tag design (new code/SKILL.md)
- 61-gtm-editor: tag/trigger/variable creation via GTM API, ES5 Custom HTML, dataLayer generation
- 62-gtm-validator: QA toolkit with 7 validation modes, naming conventions, cross-platform mapping
All three skills use DTM Agent + Chrome DevTools MCP with clear handoff patterns.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 21:37:33 +09:00
8d5cfb69fd refactor: convert mac-optimizer from raw skill to proper plugin
Restructured 92-mac-optimizer from a CLAUDE.md-based skill into a full
Claude Code plugin with .claude-plugin/plugin.json, 6 slash commands
(/mac-doctor, /mac-packages, /mac-environment, /mac-security,
/mac-cleanup, /mac-resources), and auto-trigger SKILL.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 22:46:12 +09:00
f1a973c42d feat: add mac-optimizer skill (92) — Claude Code only
macOS system health toolkit with 5 audit modules (packages, environment,
security, cleanup, resources) and cleanup executor. Fixed bugs from review:
- Replace GNU timeout with perl alarm (macOS compatible)
- Remove Linux-only ps --sort flag, use portable sort
- Add JSON escaping to all audit scripts
- Remove redundant classify_size branch

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 15:59:24 +09:00
338176abbe feat: add D.intelligence Agent Corps (9 skills + shared infra)
Add 9 agent skills (#70-#77, #88) for D.intelligence business operations:
brand guardian, brand editor, doc secretary, quotation manager, service
architect, marketing manager, back office manager, account manager, and
skill update meta-agent. Includes shared Python package (dintel), reference
docs, document/quotation templates, service module CSVs, cross-device
installer, and comprehensive user guide.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 00:49:04 +09:00
72a6be6a74 [Claude] feat(skills): update SEO skills to use DataForSEO CLI + MCP tools
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 03:09:36 +09:00
9ba0748bf2 Fix arithmetic increment bug in installer causing silent exit
((var++)) returns exit code 1 when incrementing from 0, which
triggers set -e. Added || true to all 13 arithmetic operations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:31:57 +09:00
Andrew Yim
2aa9d098cb Fix SEO skills 19-34, add global slash commands, update installer (#4)
* Fix SEO skill 34 bugs, Korean labels, and transition Ahrefs refs to our-seo-agent

P0: Fix report_aggregator.py — wrong SKILL_REGISTRY[33] mapping, missing
CATEGORY_WEIGHTS for 7 categories, and break bug in health score parsing
that exited loop even on parse failure.

P1: Remove VIEW tab references from skill 20, expand skill 32 docs,
replace Ahrefs MCP references across all 16 skills (19-28, 31-34)
with our-seo-agent CLI data source references.

P2: Fix Korean labels in executive_report.py and dashboard_generator.py,
add tenacity to base requirements, sync skill 34 base_client.py with
canonical version from skill 12.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add Claude Code slash commands for SEO skills 19-34 and fix stale paths

Create 14 new slash command files for skills 19-28, 31-34 so they
appear as /seo-* commands in Claude Code. Also fix stale directory
paths in 8 existing commands (skills 12-18, 29-30) that referenced
pre-renumbering skill directories.

Update .gitignore to track .claude/commands/ while keeping other
.claude/ files ignored.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add 8 slash commands, enhance reference-curator with depth/output options

- Add slash commands: ourdigital-brand-guide, notion-writer, notebooklm-agent,
  notebooklm-automation, notebooklm-studio, notebooklm-research,
  reference-curator, multi-agent-guide
- Add --depth (light/standard/deep/full) with Firecrawl parameter mapping
- Add --output with ~/Documents/reference-library/ default and user confirmation
- Increase --max-sources default from 10 to 100
- Rename /reference-curator-pipeline to /reference-curator
- Simplify web-crawler-orchestrator label to web-crawler in docs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Convert slash command script paths to absolute for global availability

Symlinked all 39 project commands to ~/.claude/commands/ so they work
from any project directory. Converted 126 relative custom-skills/ paths
to absolute /Users/ourdigital/Projects/our-claude-skills/custom-skills/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Update installer to support global slash command installation

Add symlink-based global command setup so all 39 custom skills work from
any project directory. New --commands flag for quick re-sync, updated
--validate/--update/--uninstall to handle symlinks, and expanded skill
listing to cover all 7 domains.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add user guides in English and Korean for all 52 custom skills

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:37:54 +09:00
Andrew Yim
397fa2aa5d Fix SEO skills 19-34 bugs, add slash commands, enhance reference-curator (#3)
* Fix SEO skill 34 bugs, Korean labels, and transition Ahrefs refs to our-seo-agent

P0: Fix report_aggregator.py — wrong SKILL_REGISTRY[33] mapping, missing
CATEGORY_WEIGHTS for 7 categories, and break bug in health score parsing
that exited loop even on parse failure.

P1: Remove VIEW tab references from skill 20, expand skill 32 docs,
replace Ahrefs MCP references across all 16 skills (19-28, 31-34)
with our-seo-agent CLI data source references.

P2: Fix Korean labels in executive_report.py and dashboard_generator.py,
add tenacity to base requirements, sync skill 34 base_client.py with
canonical version from skill 12.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add Claude Code slash commands for SEO skills 19-34 and fix stale paths

Create 14 new slash command files for skills 19-28, 31-34 so they
appear as /seo-* commands in Claude Code. Also fix stale directory
paths in 8 existing commands (skills 12-18, 29-30) that referenced
pre-renumbering skill directories.

Update .gitignore to track .claude/commands/ while keeping other
.claude/ files ignored.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add 8 slash commands, enhance reference-curator with depth/output options

- Add slash commands: ourdigital-brand-guide, notion-writer, notebooklm-agent,
  notebooklm-automation, notebooklm-studio, notebooklm-research,
  reference-curator, multi-agent-guide
- Add --depth (light/standard/deep/full) with Firecrawl parameter mapping
- Add --output with ~/Documents/reference-library/ default and user confirmation
- Increase --max-sources default from 10 to 100
- Rename /reference-curator-pipeline to /reference-curator
- Simplify web-crawler-orchestrator label to web-crawler in docs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:12:57 +09:00
59e5c519f5 feat: Update jamie-instagram-manager to v2.0 with confirmed content strategy
Apply 7 patches from confirmed Instagram operation plan:
- Content 4 Pillar (Q&A릴스 40%, 일상 30%, 카드뉴스 20%, 에피소드 10%)
- Weekly schedule (Mon-Sun with feed/story/reels breakdown)
- Tone update (해요체 60% + 습니다체 40%)
- DM conversion funnel (IG→DM→카카오→예약, 30% target)
- Instagram design guide v2.0 reference added
- Both Code and Desktop versions synced at v2.0.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 23:40:24 +09:00
Andrew Yim
a28bfbf847 Fix SEO skill 34 bugs, Korean labels, and transition Ahrefs refs to our-seo-agent (#2) 2026-02-14 01:09:35 +09:00
d2d0a2d460 Add SEO skills 33-34 and fix bugs in skills 19-34
New skills:
- Skill 33: Site migration planner with redirect mapping and monitoring
- Skill 34: Reporting dashboard with HTML charts and Korean executive reports

Bug fixes (Skill 34 - report_aggregator.py):
- Add audit_type fallback for skill identification (was only using audit_id prefix)
- Extract health scores from nested data dict (technical_score, onpage_score, etc.)
- Support subdomain matching in domain filter (blog.ourdigital.org matches ourdigital.org)
- Skip self-referencing DASH- aggregated reports

Bug fixes (Skill 20 - naver_serp_analyzer.py):
- Remove VIEW tab selectors (removed by Naver in 2026)
- Add new section detectors: books (도서), shortform (숏폼), influencer (인플루언서)

Improvements (Skill 34 - dashboard/executive report):
- Add Korean category labels for Chart.js charts (기술 SEO, 온페이지, etc.)
- Add Korean trend labels (개선 중 ↑, 안정 →, 하락 중 ↓)
- Add English→Korean issue description translation layer (20 common patterns)

Documentation improvements:
- Add Korean triggers to 4 skill descriptions (19, 25, 28, 31)
- Expand Skill 32 SKILL.md from 40→143 lines (was 6/10, added workflow, output format, limitations)
- Add output format examples to Skills 27 and 28 SKILL.md
- Add limitations sections to Skills 27 and 28
- Update README.md, CLAUDE.md, AGENTS.md for skills 33-34

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 00:01:00 +09:00