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동일).icbyte-identical ·pmcindex-only ·INDEX_OWNED.txtmanifest · 죽은 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/schemasenvelope 가frozen_enums_hashpublish(외부 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_ROOThost 경로·컨테이너 부재) → 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: indexfrontmatter + blueprint boot(start.sh)/webhook(route.ts) 양 경로 gate(customerservices.index유무 → 비-indexrm -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 +
--attestsentinel +owner:indexgate.
본질 — 왜 index 가 owner?
| Skill | 도메인 | index 가 owner 인 이유 |
|---|---|---|
| ic | 19-agent IC memo orchestration | 투자 도메인. 산출 = index.ic_decision + index.financial_model typed fact |
| ingest | dataroom pdf/pptx/xlsx → md clone | ic 의 직접 의존. 함께 가는 게 의존성 단순 |
| pmc (신규) | 분기 KPI / risk / NAV / postmortem | D-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 책임:
- 편집은 canonical 측 (
/Users/axe/index/skills/) 에서만 - Blueprint mirror 는 index 변경 후 byte-identical cp + sha256 검증
- 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 + mergePhase 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:indexvertical-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 | 비고 |
|---|---|---|---|
ic | index ⭐ | index (D-index-17) | 도메인 정확 일치 |
ingest | index ⭐ | index (D-index-17) | ic 의 직접 의존 |
due-diligence | Blueprint | index 검토 | Phase 1 후속 결정 |
vc-deal-sourcing | Blueprint | index 검토 | Phase 1 후속 결정 |
portfolio-management | Blueprint (deprecate 중) | pmc 흡수 | D-index-12 |
investor-relations | Blueprint (deprecate 중) | pmc 흡수 | D-index-12 |
pmc (신규) | (미생성) | index | Phase 1 B-pmc-skill-skeleton |
ctx | Blueprint | Blueprint | cross-deal 공통 |
humanizer | Blueprint | Blueprint | 일반 prose |
report-writing | Blueprint | Blueprint | 일반 |
vault-secret-capture | Blueprint | Blueprint | 보안 (운영자) |
office-admin | Blueprint | Blueprint or hive | 잔존 |
legal-compliance | Blueprint | Blueprint | 잔존 |
code-review | Blueprint | Blueprint | 개발 |
blueprint-platform | Blueprint | Blueprint | self-reference |
browser-automation | Blueprint | Blueprint | 일반 |
md-to-pdf | Blueprint | Blueprint | 일반 변환 |
5-axis 정합
| Axis | D-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 가 못 하는 영역 |
관련 페이지
- /services/index — 서비스 main
- /services/index/skill-evolution — 5 skill → service 진화 path
- /services/index/skill-integration — 통합 architecture
- /ops/decisions D-index-12 — pmc skill 흡수
- /ops/decisions D-index-17 — 본 결정
- /ops/backlog M7 — overlap sunset + MCP discovery 후속