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>
This commit is contained in:
2026-05-18 07:11:52 +09:00
parent ec3b4df1e3
commit 8189473008
29 changed files with 1327 additions and 1131 deletions

View File

@@ -1,6 +1,9 @@
# D.intelligence Quotation Manager
> **Agent #73** | `dintel-quotation-mgr` v1.0.0 | D.intelligence Agent Corps
> **Agent #73** | `dintel-quotation-mgr` v1.1.0 | D.intelligence Agent Corps
> canon_compliance: v1.3 | last_updated: 2026-05-18
> ⚠️ **canon 1순위**: `knowledge-base/canon/fact-sheet.md` v1.0 (인보이스·계약 법인 정보) + `service-architecture.md` v1.0 (모듈·가격 단위). 충돌 시 canon이 우선.
Generate professional quotations and estimates for D.intelligence service modules using a multi-agent sub-system (Scope, Resource, Pricing, Output).

View File

@@ -207,17 +207,25 @@ def generate_xlsx(draft: QuotationDraft, output_dir: Path) -> Path:
# -- Sheet 1: Cover --
ws_cover = wb.active
ws_cover.title = "표지"
ws_cover["B2"] = "D.intelligence :: SMART Marketing Clinic ::"
ws_cover["B2"] = "D.intelligence :: SMART Marketing Intelligence ::"
ws_cover["B2"].font = Font(name="Pretendard", size=16, bold=True)
ws_cover["B4"] = "견적서 (Quotation)"
ws_cover["B4"].font = Font(name="Pretendard", size=24, bold=True)
ws_cover["B6"] = f"고객사: {draft.client_name}"
ws_cover["B7"] = f"업종: {draft.industry}"
ws_cover["B8"] = f"견적번호: {draft.ref}"
ws_cover["B9"] = f"작성일: {draft.date_created.isoformat()}"
ws_cover["B10"] = f"유효기간: {(draft.date_created + timedelta(days=draft.validity_days)).isoformat()}"
ws_cover["B12"] = "DRAFT -- 검토 대기"
ws_cover["B12"].font = Font(color="FF0000", bold=True, size=14)
ws_cover["B3"] = "Analysis, Treatment & Growth"
ws_cover["B3"].font = Font(name="Pretendard", size=10, italic=True)
ws_cover["B5"] = "견적서 (Quotation)"
ws_cover["B5"].font = Font(name="Pretendard", size=24, bold=True)
ws_cover["B7"] = f"고객사: {draft.client_name}"
ws_cover["B8"] = f"업종: {draft.industry}"
ws_cover["B9"] = f"견적번호: {draft.ref}"
ws_cover["B10"] = f"작성일: {draft.date_created.isoformat()}"
ws_cover["B11"] = f"유효기간: {(draft.date_created + timedelta(days=draft.validity_days)).isoformat()}"
ws_cover["B13"] = "DRAFT -- 검토 대기"
ws_cover["B13"].font = Font(color="FF0000", bold=True, size=14)
ws_cover["B15"] = "D.intelligence Co., Ltd. (㈜디인텔리전스) | 458-88-01899"
ws_cover["B15"].font = Font(name="Pretendard", size=9)
ws_cover["B16"] = "경기도 성남시 수정구 창업로 43 판교글로벌비즈센터 업무동 1층 36호 (13449)"
ws_cover["B16"].font = Font(name="Pretendard", size=9)
ws_cover["B17"] = "info@dintelligence.co.kr | dintelligence.co.kr"
ws_cover["B17"].font = Font(name="Pretendard", size=9)
# -- Sheet 2: Scope --
ws_scope = wb.create_sheet("서비스 범위")
@@ -285,7 +293,7 @@ def generate_xlsx(draft: QuotationDraft, output_dir: Path) -> Path:
summary_row += 1
ws_pricing.cell(row=summary_row, column=5, value="Andrew 검토 필요").font = Font(color="FF0000", italic=True)
# -- Sheet 5: Terms --
# -- Sheet 5: Terms (v1.3 정합 — canon/fact-sheet.md) --
ws_terms = wb.create_sheet("계약 조건")
terms = [
("결제 조건", "착수금 50% / 완료 후 50%"),
@@ -294,9 +302,14 @@ def generate_xlsx(draft: QuotationDraft, output_dir: Path) -> Path:
("범위 변경", "서면 합의 후 별도 견적"),
("계약 해지", "착수 전 전액 환불 / 착수 후 진행분 정산"),
("", ""),
("D.intelligence", "SMART Marketing Clinic"),
("법인명 (KR)", "주식회사 디인텔리전스 / ㈜디인텔리전스"),
("법인명 (EN)", "D.intelligence Co., Ltd."),
("사업자등록번호", "458-88-01899"),
("대표이사", "임명재 (Andrew Yim)"),
("주소", "경기도 성남시 수정구 창업로 43 판교글로벌비즈센터 업무동 1층 36호 (13449)"),
("Website", "dintelligence.co.kr"),
("담당자", "Andrew Yim"),
("Email", "info@dintelligence.co.kr"),
("담당자", "임명재 (Andrew Yim), 대표이사"),
]
for row, (label, value) in enumerate(terms, 1):
ws_terms.cell(row=row, column=1, value=label).font = Font(bold=True)

View File

@@ -1,8 +1,10 @@
---
name: dintel-quotation-mgr
version: 1.0.0
version: 1.1.0
last_updated: 2026-05-18
canon_compliance: v1.3
agent-id: "73"
agent-corps: D.intelligence Agent Corps
agent-corps: D.intelligence Agent Corps (8 agents + 1 meta-agent)
description: |
Quotation Manager for D.intelligence. Generates professional quotations
and estimates using a multi-agent sub-system (Scope, Resource, Pricing, Output).
@@ -13,12 +15,42 @@ autonomy: draft-and-wait
# D.intelligence Quotation Manager
> **Agent #73** | `dintel-quotation-mgr` v1.0.0 | D.intelligence Agent Corps
> **Agent #73** | `dintel-quotation-mgr` v1.1.0 | D.intelligence Agent Corps
Generate professional quotations and estimates for D.intelligence service modules using a multi-agent sub-system. Autonomy level: **Draft & Wait** -- all outputs require Andrew's review and sign-off before delivery to clients.
---
## ⚠️ v1.3 정합성 — 단일 진실 (Single Source of Truth)
> **갱신일**: 2026-05-18 (v1.3 정합 적용) | **기준**: `knowledge-base/canon/` v1.0 + BRAND-GUIDE v1.3
**참조 의무 1순위** (충돌 시 canon이 우선):
| Canon 문서 | 사용 시점 |
|-----------|---------|
| `knowledge-base/canon/fact-sheet.md` v1.0 | 견적서·계약 가격 산출의 법인 정보 |
| `knowledge-base/canon/service-architecture.md` v1.0 | A-T-G 17 모듈 + 4 카테고리 + 1Day Clinic |
| `knowledge-base/canon/brand-canon.md` v1.0 | 견적서 톤 (정중·정확) |
| `knowledge-base/canon/naming-conventions.md` v1.0 | 견적서 파일명 (`DIN-{Service}-{Client}-{YYYYMMDD}.xlsx`) |
| `knowledge-base/gotcha/01_outdated-facts.md` | 주소·이메일·CEO 직함 회피 대상 |
### 핵심 표기 (v1.3 확정 — 견적서 헤더·푸터·계약 조건에 의무 반영)
- **법인명**: D.intelligence Co., Ltd. (㈜디인텔리전스 / 458-88-01899)
- **대표이사**: 임명재 (Andrew Yim) — ~~D.HIVE CEO~~~~Senior Advisor~~
- **주소**: 경기도 성남시 수정구 창업로 43 판교글로벌비즈센터 업무동 1층 36호 (13449) — ~~송파테라타워2~~~~황새울로~~
- **외부 메일**: **info@dintelligence.co.kr**~~contact@dintelligence.co.kr~~
- **회사 슬로건**: SMART Marketing Intelligence (~~SMART Marketing Clinic~~ ✗ — OurDigital 자산)
- **MD 의미**: Measurement Design (~~Marketing Diagnosis~~ ✗)
- **부가 서비스**: 1Day Clinic · Magazine D. · Newsletter (Courses → OurDigital 이관 — 견적 항목에서 제외)
### OurDigital 분리 원칙
> ⚠️ 본 스킬은 D.intelligence 견적 전용. OurDigital(D.intelligence Lab) 견적은 별도 워크플로우. 두 견적이 동시에 필요한 경우 사용자에게 분리 처리 의사를 명시적으로 확인.
---
## Agent Corps Context
- **Agent #73** -- Quotation Manager (Multi-Agent)
@@ -249,11 +281,12 @@ pricing:
The generated `.xlsx` file contains the following sheets:
#### Sheet 1: 표지 (Cover)
- D.intelligence logo and brand header
- D.intelligence logo and brand header (Tagline: "Analysis, Treatment & Growth")
- 견적서 (Quotation) title
- Client name and date
- Quotation reference number: `DI-Q-{YYYYMMDD}-{NNN}`
- Validity period: 견적 유효기간 30일
- Legal entity footer: "D.intelligence Co., Ltd. (㈜디인텔리전스) | 458-88-01899 | 경기도 성남시 수정구 창업로 43 판교글로벌비즈센터 1층 36호 | info@dintelligence.co.kr"
#### Sheet 2: 서비스 범위 (Scope)
- Table of selected modules with:
@@ -280,9 +313,10 @@ The generated `.xlsx` file contains the following sheets:
#### Sheet 5: 계약 조건 (Terms)
- Payment terms: 착수금 50% / 완료 후 50% (standard)
- Validity: 견적 유효기간 30일
- VAT: 별도 (10%)
- Scope change policy
- Cancellation terms
- D.intelligence contact information
- **D.intelligence Co., Ltd. contact**: 임명재 (Andrew Yim), 대표이사 / info@dintelligence.co.kr / 경기도 성남시 수정구 창업로 43 판교글로벌비즈센터 1층 36호 (13449)
---
@@ -387,13 +421,25 @@ Revise quotation DI-Q-20260308-001 based on Andrew's feedback.
## Key References
### Canon (1순위 권위)
| Resource | Path |
|----------|------|
| Brand constants | `../../_dintel-shared/src/dintel/brand.py` |
| Excel utilities | `../../_dintel-shared/src/dintel/excel.py` |
| Pricing reference | `../shared/pricing-reference.md` |
| Feedback log | `../shared/feedback-log.md` |
| Service Map | `/Users/ourdigital/Documents/D.intelligence Service Package/00_SERVICE-MAP.md` |
| Pricing Packages | `/Users/ourdigital/Documents/D.intelligence Service Package/06_PRICING-PACKAGES.md` |
| Brand Guide | `/Users/ourdigital/Documents/D.intelligence Service Package/08_BRAND-GUIDE-v1.1.md` |
| Generate script | `../code/scripts/generate_quotation.py` |
| Fact Sheet | `knowledge-base/canon/fact-sheet.md` v1.0 |
| Service Architecture | `knowledge-base/canon/service-architecture.md` v1.0 |
| Naming Conventions | `knowledge-base/canon/naming-conventions.md` v1.0 |
| Outdated Facts | `knowledge-base/gotcha/01_outdated-facts.md` (주소·이메일·CEO 직함) |
| Service Package PPTX | `knowledge-base/reference/company/D.intelligence-Service-Package-v2026-05.pptx` |
### Working References
| Resource | Path |
|----------|------|
| Brand constants | `_dintel-shared/src/dintel/brand.py` (CORPORATE dict) |
| Excel utilities | `_dintel-shared/src/dintel/excel.py` |
| Pricing reference (shared) | `_dintel-shared/references/pricing-reference.md` |
| Pricing reference (local) | `73-dintel-quotation-mgr/shared/pricing-reference.md` |
| Feedback log | `73-dintel-quotation-mgr/shared/feedback-log.md` |
| Pricing Packages (working) | `01_Strategy/PRICING-PACKAGES.md` |
| Brand Guide v1.3 | `02_Brand/BRAND-GUIDE-v1.3.md` |
| Generate script | `73-dintel-quotation-mgr/code/scripts/generate_quotation.py` |

View File

@@ -1,6 +1,9 @@
# Pricing Quick Reference
> D.intelligence Service Module Pricing | VAT 별도
> **Canon compliance**: v1.3 (2026-05-18) | **Authority**: `01_Strategy/PRICING-PACKAGES.md` + `knowledge-base/canon/service-architecture.md` v1.0
> **Legal entity for invoicing**: D.intelligence Co., Ltd. (458-88-01899)
> **Quotation contact**: info@dintelligence.co.kr | 경기도 성남시 수정구 창업로 43 판교글로벌비즈센터 1층 36호
---