Files
our-claude-skills/custom-skills/_dintel-shared/src/dintel/brand.py
Andrew Yim 8189473008 chore(dintel-skills): align Agent Corps with canon v1.0 / BRAND-GUIDE v1.3
Standardize all 9 dintel-* skills + shared infrastructure against the
new D.intelligence canon (brand-canon, fact-sheet, service-architecture,
naming-conventions v1.0) and BRAND-GUIDE v1.3.

Term replacements (applied across SKILL.md, CLAUDE.md, scripts, refs):
- Slogan: SMART Marketing Clinic -> SMART Marketing Intelligence
  (Clinic is now an OurDigital asset; split enforced)
- Core Values: Scientific/Practical -> Science/Practice
- MD category: Marketing Diagnosis -> Measurement Design
- Brand Character: 마케팅 주치의 -> 성과중심의 데이터 기반 마케팅 과학자
- Address: 송파테라타워/황새울로 -> 판교글로벌비즈센터 1층 36호 (13449)
- External email: contact@ -> info@dintelligence.co.kr
- CEO title: D.HIVE CEO & Founder / Senior Advisor -> 대표이사
- Tone keywords: Scientific/Practical/Outcome-oriented
  -> Science-driven/Practice-oriented/Outcome-focused
- Foreign-word literals: 감사 보고서/리포트/결과 -> 진단 ~ (audit->진단)
- Adjacent services: removed Courses (transferred to OurDigital Practice)

Structural changes:
- Insert "v1.3 정합성 - 단일 진실" block citing canon docs in all 9
  SKILL.md files (preserves single source of truth at runtime).
- Bump version (1.0->1.1 or 1.1->1.2) and add canon_compliance: v1.3 +
  last_updated: 2026-05-18 to every frontmatter.
- Expand brand.py: CORPORATE/LAB dicts (full address, biz reg, CEO),
  TRANSLATION_STANDARDS, ADJACENT_SERVICES. PROHIBITED_WORDS grew
  13 -> 24 entries so Brand Guardian flags legacy phrases at runtime.
- Rewrite _dintel-shared/references/dintelligence_brand_guide.md as
  v1.3 canon mirror; sync brand-editor's local copy (no drift).
- Pin design-system reference header to 2026 PPTX v2.0.
- Refresh 73-quotation generate_quotation.py (Sheet 1 cover, Sheet 5
  terms) and 71-brand-editor generate_credential.py output.
- Update audit template title (감사 -> 진단).

Verified by 93-check compliance suite covering frontmatter, canon
citation, prohibited-term grep, Python compile + runtime imports, and
an end-to-end smoke test that generates a quotation .xlsx and inspects
cell content for v1.3 strings + absence of legacy strings.

Refs:
  knowledge-base/canon/{brand-canon,fact-sheet,service-architecture,naming-conventions}.md v1.0
  02_Brand/BRAND-GUIDE-v1.3.md
  knowledge-base/TODO-claude-code-skill-rebuild.md
  knowledge-base/gotcha/01_outdated-facts.md (10 cases)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 07:11:52 +09:00

207 lines
9.2 KiB
Python

"""Brand constants and identity for D.intelligence.
Canon compliance: v1.3 (2026-05-18)
Single source of truth: knowledge-base/canon/{fact-sheet,brand-canon,service-architecture,naming-conventions}.md v1.0
"""
# ── Brand Core ──────────────────────────────────────────────────
BRAND_NAME = "D.intelligence"
BRAND_CONCEPT = "SMART Marketing Intelligence" # v1.3 (was "SMART Marketing Clinic" — OurDigital asset)
BRAND_CHARACTER = "성과중심의 데이터 기반 마케팅 과학자" # Outcome-focused Data-driven Marketing Scientist
TAGLINE = "Analysis, Treatment & Growth"
TAGLINE_KR = "진단, 처방, 성장"
MOTTO = "Think Forward" # Internal motto — limited to signatures/footers/internal docs
MISSION = "데이터 기반 의사결정으로 기업의 지속가능한 성장을 실현하는 전문 파트너"
VISION = "마케팅 과학과 데이터 리터러시의 전도사"
BRAND_POSITION = "AI와 데이터 기반 마케팅 혁신의 파트너"
WEBSITE = "https://dintelligence.co.kr"
CONTACT_EMAIL = "info@dintelligence.co.kr" # External-facing primary inbox
CORE_VALUES = {
"Science": "과학적 방법론, 검증, 데이터 기반 판단",
"Practice": "실행 가능하고 현실적인 해법",
"Outcome": "측정 가능한 성과 중심",
"Insights": "복잡한 문제를 분명한 인사이트로 전환",
}
TONE_KEYWORDS = (
"Professional", "Science-driven", "Practice-oriented",
"Outcome-focused", "Calm but confident",
)
# ── Brand Colors — 2025 Design System ───────────────────────────
# Source: D.intelligence_Design_System_2025.pdf
# Primary palette (RGB)
COLOR_D_BEIGE = (229, 225, 210) # #E5E1D2 — Cover/Section BG (NEW primary BG)
COLOR_D_OLIVE = (206, 220, 0) # #CEDC00 — Accent only (demoted from 2022 BG)
COLOR_D_BROWN = (35, 24, 21) # #231815 — Primary text / Dark BG
COLOR_D_BLACK = (0, 0, 0) # #000000 — Dark BG / Text
# Secondary palette (RGB)
COLOR_D_GRAY = (114, 113, 113) # #727171 — Secondary text
COLOR_D_LIGHT_GRAY = (242, 242, 242) # #F2F2F2 — Card / BG
COLOR_D_BLUE = (0, 117, 192) # #0075C0 — Digital accent (diagrams, data viz)
COLOR_D_BORDER = (191, 191, 191) # #BFBFBF — Border 0.5pt
COLOR_D_WARM_GRAY = (200, 196, 184) # #C8C4B8 — Header bar, vertical line accent
COLOR_WHITE = (255, 255, 255)
# Hex versions
HEX_D_BEIGE = "#E5E1D2"
HEX_D_OLIVE = "#CEDC00"
HEX_D_BROWN = "#231815"
HEX_D_BLACK = "#000000"
HEX_D_GRAY = "#727171"
HEX_D_LIGHT_GRAY = "#F2F2F2"
HEX_D_BLUE = "#0075C0"
HEX_D_BORDER = "#BFBFBF"
HEX_D_WARM_GRAY = "#C8C4B8"
# Semantic aliases (for backward compatibility)
COLOR_PRIMARY = COLOR_D_BROWN # Primary text color
COLOR_ACCENT = COLOR_D_OLIVE # Accent (sparingly)
COLOR_TEXT = COLOR_D_BROWN # Body text
COLOR_BG = COLOR_D_BEIGE # Cover/section background
COLOR_SECONDARY = COLOR_D_GRAY # Secondary text
HEX_PRIMARY = HEX_D_BROWN
HEX_ACCENT = HEX_D_OLIVE
HEX_TEXT = HEX_D_BROWN
HEX_BG = HEX_D_BEIGE
HEX_SECONDARY = HEX_D_GRAY
# ── Typography — 2025 Design System ─────────────────────────────
FONT_KR = "Apple SD Gothic Neo"
FONT_EN = "DM Sans"
FONT_FALLBACK_KR = "Apple SD Gothic Neo"
FONT_FALLBACK_EN = "DM Sans"
# Type Scale
TYPE_SCALE = {
"display_title": {"size_pt": (54, 72), "weight": "Bold", "color": "D_BROWN"},
"slide_title": {"size_pt": (28, 36), "weight": "Bold", "color": "D_BROWN"},
"subtitle": {"size_pt": (14, 16), "weight": "Regular", "color": "D_GRAY"},
"body": {"size_pt": (11, 14), "weight": "Regular", "color": "D_BROWN"},
"footnote": {"size_pt": (8, 10), "weight": "Regular", "color": "D_GRAY"},
"header_bar": {"size_pt": (10, 10), "weight": "Regular", "color": "WARM_GRAY"},
}
# ── Layout Motifs — 2025 Design System ──────────────────────────
LAYOUT = {
"vertical_line_accent": {"color": "WARM_GRAY", "note": "Thin vertical line on left of section dividers"},
"three_dot_motif": {"symbol": "• • •", "position": "upper-right corner of cover/featured slides"},
"footer_tagline": "Analysis, Treatment & Growth",
"min_margin": "0.5 inches",
"border_weight": "0.5pt",
}
# ── Service Architecture ────────────────────────────────────────
SERVICE_PHASES = {
"Analysis": {"kr": "진단", "modules": ["A1", "A2", "A3", "A4", "A5", "A6"]},
"Treatment": {"kr": "처방", "modules": ["T1", "T2", "T3", "T4", "T5", "T6", "T7"]},
"Growth": {"kr": "성장", "modules": ["G1", "G2", "G3", "G4"]},
}
SERVICE_MODULES = {
"A1": "비즈니스·브랜드 진단",
"A2": "고객·소비자 분석",
"A3": "데이터 분석 — 웹·앱",
"A4": "디지털 마케팅 진단",
"A5": "퍼포먼스 마케팅 진단",
"A6": "운영·관리 진단",
"T1": "브랜드 스토리텔링 & 가이드",
"T2": "고객 접점 경험 최적화",
"T3": "디지털 자산 통합관리",
"T4": "콘텐츠 마케팅",
"T5": "광고·전환 최적화",
"T6": "Brand Visibility Treatment",
"T7": "운영 시스템·자동화",
"G1": "퍼포먼스 마케팅",
"G2": "콘텐츠 마케팅 대행",
"G3": "모니터링·이슈관리",
"G4": "연간 계약·운영",
}
SERVICE_CATEGORIES = {
"DI": "Data Intelligence",
"MD": "Measurement Design",
"MPO": "Marketing Performance Optimization",
"BVT": "Brand Visibility Treatment",
}
# ── Client Codes ────────────────────────────────────────────────
CLIENT_CODES = {
"JHR": "조선호텔앤리조트",
"JAM": "제이미성형외과",
"SLA": "신라호텔",
"SHR": "SHR",
"OurDigital": "OurDigital",
"DIN": "D.intelligence Co., Ltd. (internal)",
}
# ── Corporate Fact Sheet ───────────────────────────────────────
# Source: knowledge-base/canon/fact-sheet.md v1.0 (2026-05-17 APPROVED)
CORPORATE = {
"name_kr": "주식회사 디인텔리전스",
"name_kr_short": "㈜디인텔리전스",
"name_en": "D.intelligence Co., Ltd.",
"biz_reg_no": "458-88-01899",
"corp_reg_no": "110111-7449930",
"ceo_kr": "임명재",
"ceo_en": "Andrew Yim",
"ceo_title_kr": "대표이사",
"ceo_title_en": "CEO, D.intelligence Co., Ltd.",
"address_kr": "경기도 성남시 수정구 창업로 43 판교글로벌비즈센터 업무동 1층 36호 (13449)",
"address_en": "43 Changeop-ro, Sujeong-gu, Seongnam-si, Gyeonggi-do, Republic of Korea (13449)",
"building_en": "Pangyo Global Business Center #36",
"website": "https://dintelligence.co.kr",
"email_contact": "info@dintelligence.co.kr",
"email_ceo": "andrew.yim@dintelligence.co.kr",
"founded": "2020-04-14",
}
# Subsidiary (Lab) — operates the OurDigital brand. D.intelligence canon refs only.
LAB = {
"name_kr": "디인텔리전스 랩",
"name_en": "D.intelligence Lab",
"service_brand": "OurDigital", # External-facing brand for SMB/coaching/training
"biz_reg_no": "110-09-66786",
"address_kr": "경기도 성남시 수정구 창업로 43 판교글로벌비즈센터 업무동 1층 128호 (13449)",
"website": "https://ourdigital.org",
"email_contact": "support@ourdigital.org",
}
# ── Prohibited Expressions ──────────────────────────────────────
# Reference: knowledge-base/canon/brand-canon.md §8 + gotcha/01_outdated-facts.md #7
PROHIBITED_WORDS = [
# Exaggeration
"획기적", "혁신적", "놀라운", "독보적", "최고의",
# Guarantee
"반드시", "확실히", "무조건", "100%", "보장",
# Identity (D.intelligence is a partner, not an agency)
"대행사", "에이전시", "바이럴",
# Outdated brand character (OurDigital territory)
"마케팅 주치의", "지혜로운 상담 마케팅 주치의",
# Foreign-word literal translations (use 진단/프레임워크/인사이트 instead)
"감사 보고서", "감사 리포트", "감사 결과", "뼈대", "골격", "통찰력",
# Outdated company facts
"송파테라타워", "황새울로", "D.HIVE",
]
# Standard foreign-term translations (must use the "preferred" form in D.intelligence content)
TRANSLATION_STANDARDS = {
"audit": "진단", # ❌ 감사
"framework": "프레임워크", # ❌ 뼈대, 골격
"insight": "인사이트", # ❌ 통찰력
"benchmark": "벤치마크",
"stakeholder": "이해관계자",
}
# Adjacent services — Courses is intentionally absent (transferred to OurDigital, 2026-05-17)
ADJACENT_SERVICES = {
"1Day Clinic": "Quick Diagnosis — Analysis Phase 경량 버전",
"Magazine D.": "Insights Channel — 마케팅 인사이트 매거진",
"Newsletter": "Regular Updates — 정기 뉴스레터",
}