Skip to Content

Skill Ownership — index 산하 투자 도메인 skill

D-index-17 결정 정합. ic + ingest 의 ownership 을 Blueprint 에서 index 로 이전. Overlap 기간 양쪽 보유, index canonical.

⭐ 현재 구현 — D-index-47 (P0–P3, 2026-06-03 LIVE)

D-index-17 의 ownership 의도D-index-47실구현·배포했다. 아키텍처 = index owns TRUTH (SoT bytes·semver·schema-contract·append-only audit) · Blueprint owns ROAD (universal git→webhook→rsync 분배, 신규 transport 0) · surface owns RUN (Agent SDK 로컬 디스크 read).

  • P0 reconcile (index 3b39a03) — index/skills/ingest 가 Blueprint base 보다 뒤처져 있던(“index=SoT” 가 ingest 에 대해 거짓) 역드리프트를 port 로 해소 → index 가 현행 SoT (diff -qr 동일). ic byte-identical · pmc index-only · INDEX_OWNED.txt manifest · 죽은 launchd 폐기.
  • P1 stamp + drift gate (index 11aca12, deployed) — propose event(artifact_event.payload_after)에 _provenance(skill·bundle_sha256·frozen_enums_hash·actor·surface) 스탬프 + propose 시 schema-drift hard gate(불일치 → SCHEMA_CONTRACT_DRIFT). /index/schemas envelope 가 frozen_enums_hash publish(외부 caller 가 contract discover+pin).
  • P2 attest + mirror mechanism (index 6edf0ff) — index-skill-sync.py --attest(deterministic dir-sha256 drift sentinel, advisory) + index-skill-mirror.sh(index→blueprint sanctioned PR-flow mirror = 아래 수동 cp -R 절차 대체). ⚠ 아래 “Phase 2 MCP-discovery” 의 MCP byte-delivery 는 infeasible 판명(SKILLS_ROOT host 경로·컨테이너 부재) → attest-only 로 재범위.
  • P3 vertical-gate (blueprint PR #381 gate + #382 pmc, merged origin/main) — 8 투자 skill(ic·ingest·due-diligence·vc-deal-sourcing·investor-relations·portfolio-management·legal-compliance + pmc)에 owner: index frontmatter + blueprint boot(start.sh)/webhook(route.ts) 양 경로 gate(customer services.index 유무 → 비-index rm -rf+skip purge, index keep). index customer(axe)만 투자 skill 수신, 비-index(Truvia)는 universal 9개만. axe 3중 안전(services.index + :-axe 기본 + fail-safe keep + 운영자 sync ungated).

Sunset 재정의: Blueprint mirror 는 “제거 대상”이 아니라 분배 ROAD 로 정식 채택(index→blueprint mirror + vertical-gate). 아래 design-era 절차/Phase-2 plan 은 이 구현으로 superseded — 실제 경로 = universal-base mirror + --attest sentinel + owner:index gate.

본질 — 왜 index 가 owner?

Skill도메인index 가 owner 인 이유
ic19-agent IC memo orchestration투자 도메인. 산출 = index.ic_decision + index.financial_model typed fact
ingestdataroom pdf/pptx/xlsx → md cloneic 의 직접 의존. 함께 가는 게 의존성 단순
pmc (신규)분기 KPI / risk / NAV / postmortemD-index-12 — portfolio-management + investor-relations 흡수

향후 검토 (Phase 1 후속):

  • due-diligence — DD 체크리스트 (투자 도메인)
  • vc-deal-sourcing — pipeline 관리 (투자 도메인)

Blueprint 잔존:

  • ctx / humanizer / report-writing / vault-secret-capture / office-admin / code-review / browser-automation / md-to-pdf / blueprint-platform — 일반 skill

Overlap 정책 (2026-05-28 시점)

/Users/axe/index/skills/ ← CANONICAL SoT ⭐ ├── ic/ │ ├── SKILL.md (45 KB, 25 rules) │ ├── scripts/ (gate_memo.sh + 26 Python scripts) │ ├── references/ │ └── tests/fixtures/ ├── ingest/ │ ├── SKILL.md │ └── scripts/ (ingest.py + vision_ingest.py + sync.sh) └── README.md (overlap 정책 + sync 책임) /Users/axe/blueprint/.claude/skills/ ← MIRROR (overlap 기간) ├── ic/ (byte-identical) └── ingest/ (byte-identical)

Sync 책임:

  1. 편집은 canonical 측 (/Users/axe/index/skills/) 에서만
  2. Blueprint mirror 는 index 변경 후 byte-identical cp + sha256 검증
  3. Blueprint hook (skill-sot-guard.sh) 가 main 직접 편집 차단 → drift 자동 방지

Sync 절차 (overlap 기간 안내)

# 1. canonical 편집 + commit (index repo) cd /Users/axe/index/skills/<name> vim SKILL.md cd /Users/axe/index && git add skills/<name> && git commit -m "feat(skill/<name>): ..." # 2. Blueprint mirror sync # Blueprint feature branch worktree 만들기 (hook 가 main 차단) cd /Users/axe/blueprint git fetch origin main git worktree add .claude/worktrees/skill-sync-<date> -b claude/skill-sync-<date> origin/main # 3. cp + sha256 검증 cd .claude/worktrees/skill-sync-<date> cp -R /Users/axe/index/skills/<name>/* .claude/skills/<name>/ diff -qr /Users/axe/index/skills/<name> .claude/skills/<name> # empty = identical git add .claude/skills/<name> git commit -m "sync(skill/<name>): mirror from index (D-index-17)" # 4. PR + merge

Phase 2 진화 후 본 manual sync 절차는 자동화 (MCP discovery + 자동 fetch).

Sunset 기준 (Phase 2 후 Blueprint mirror 제거)

다음 3 가지 모두 충족 시:

기준검증 방법
(a) 다음 3 deal 의 IC 실행이 index/skills/ic/ 기반 정상 작동gate_memo.sh PASS + memo PDF 정상 + ctx review queue 정상
(b) Blueprint Claude Agent SDK 가 index/skills/ mount/sync 자동화 확립docker-compose volume mount 또는 launchd cron sync
(c) ic --push-to-index mode 일반화B-ic-push-mode-impl PASS + 3 deal propose_deal_closure 성공

→ 충족 시 B-index-skill-overlap-sunset 으로 Blueprint mirror 완전 제거.

Phase 2 진화 — MCP-based skill discovery ⚠ SUPERSEDED (D-index-47)

⚠ 이 plan 은 D-index-47 P2 에서 superseded. MCP byte-delivery(get_skill_resource 로 SKILL.md/scripts fetch)는 infeasible 판명: SKILLS_ROOT 가 하드코딩 host 경로라 컨테이너에 부재 → 프로덕션에서 SKILLS_ROOT_READ_FAILED. 실제 채택 경로 = universal-base git→webhook→rsync 분배(ROAD) + index-skill-mirror.sh(SoT push) + --attest(drift sentinel) + owner:index vertical-gate. 아래는 역사적 기록.

본 결정 (D-index-17) 의 후속 진화 path (superseded). 별도 backlog 등재:

B-index-skill-mcp-discovery

index MCP 에 신규 tool:

Tool역할
list_skills(domain?)전체 skill 카탈로그 (name + version + locked_at)
get_skill_resource(name, version?)SKILL.md + scripts/* + references/* fetch (versioned)
propose_skill_update(name, version, content_diff)atomic INSERT (git PR 대신 DB versioning)

/index/schemas envelope 에 [email protected] 추가 — Blueprint artifact_schema 자동 mirror.

B-blueprint-skill-mcp-client

Blueprint Claude Agent SDK 변경:

  • session 시작 시 list_skills() 호출 → in-memory cache
  • skill 사용 시 get_skill_resource(name) 동기 fetch
  • filesystem .claude/skills/ 의존 점진 제거

B-index-skill-versioning-schema

CREATE TABLE shared.skill_resource ( id uuid PRIMARY KEY, name text NOT NULL, -- 'ic', 'ingest', 'pmc' version int NOT NULL, -- semver-like skill_md text NOT NULL, -- SKILL.md 본문 scripts jsonb NOT NULL, -- { filename: content } map references_md jsonb NOT NULL, -- { filename: content } domain text, -- 'investment', 'platform', 'general' created_by varchar(254), locked_at timestamptz, -- locked = immutable superseded_by uuid, -- next version FK UNIQUE (name, version) );

Per-deal trace: index.ic_decision.skill_version_used field 추가 → “이 IC 메모는 ic skill v8.3 으로 작성” 영구 audit.

혁신적 capability — Cross-deal skill effectiveness analytics

-- "ic skill v8.3 사용한 deal 평균 IRR vs v8.0 사용한 deal" SELECT ic.skill_version_used, AVG(fo.value) AS avg_loss_included_irr, COUNT(*) AS deal_count FROM index.ic_decision ic JOIN index.financial_output fo ON fo.model_id IN (SELECT id FROM index.financial_model WHERE deal_id = ic.deal_id) AND fo.output_code = 'irr_loss_included' AND fo.scenario_id IN (SELECT id FROM index.financial_scenario WHERE code = 'weighted') WHERE ic.skill_version_used LIKE 'ic@%' GROUP BY ic.skill_version_used;

→ ic skill 진화의 정량적 효과 측정 가능. 다른 vertical 서비스 (frame/hive) 가 못 하는 영역.

도메인 ownership 매트릭스 (전체)

Skill현재 위치Phase 1 owner비고
icindexindex (D-index-17)도메인 정확 일치
ingestindexindex (D-index-17)ic 의 직접 의존
due-diligenceBlueprintindex 검토Phase 1 후속 결정
vc-deal-sourcingBlueprintindex 검토Phase 1 후속 결정
portfolio-managementBlueprint (deprecate 중)pmc 흡수D-index-12
investor-relationsBlueprint (deprecate 중)pmc 흡수D-index-12
pmc (신규)(미생성)indexPhase 1 B-pmc-skill-skeleton
ctxBlueprintBlueprintcross-deal 공통
humanizerBlueprintBlueprint일반 prose
report-writingBlueprintBlueprint일반
vault-secret-captureBlueprintBlueprint보안 (운영자)
office-adminBlueprintBlueprint or hive잔존
legal-complianceBlueprintBlueprint잔존
code-reviewBlueprintBlueprint개발
blueprint-platformBlueprintBlueprintself-reference
browser-automationBlueprintBlueprint일반
md-to-pdfBlueprintBlueprint일반 변환

5-axis 정합

AxisD-index-17 결정 결과
본질도메인 alignment — ic skill 의 산출이 index.ic_decision/index.financial_model typed fact 라면 ic skill 본체도 index 산하가 자연
결과Phase 1 즉시 (1.5h) — 2 skill (ic + ingest) ownership 이전 완료. Phase 2 (3-5d) — MCP discovery 자동화
퀄리티Overlap (cp) 방식, symlink 아님 — Blueprint deploy / docker volume 과 충돌 없음. byte-identical sha256 검증 의무
안전Blueprint hook (skill-sot-guard.sh) 가 main 직접 편집 차단 = drift 자동 방지. Sunset 3 기준 명확
혁신Phase 2 의 versioning + per-deal skill_version_used → “skill 진화의 정량 효과” cross-deal analytics — frame/hive/cortex 가 못 하는 영역

관련 페이지

Last updated on