ontology-extractlisted
Install: claude install-skill wlsdks/oh-my-ontology
# /ontology-extract — prose 에서 ontology 가 자라게
이 프로젝트의 mission v3 한 줄: *하나의 codebase, 하나의 ontology, 개발자 + AI agent 가 같이 키운다*. `/ontology-sync` 가 **코드 변경** 에서 vault 가 자라게 했다면, 이 skill 은 **prose** (회의록 · PR 본문 · RFC 초안 · 채팅 로그 · Notion 한 단락) 에서 자라게 한다. Obsidian 처럼 `[[link]]` 만 자라는 게 아니라 *typed ontology 노드* 가 자란다 — LLM 이 매개라서 가능한 흐름.
## When to run
**Run when**:
- 사용자가 prose 단락을 보여주며 "ontology 로 정리해줘" / "여기서 추출해줘" 비슷한 요청
- 새 RFC / 회의록 / PR 본문에서 *그 codebase 가 새로 갖게 된 개념* 이 발견됨
- 사용자가 외부 문서 (Notion · Confluence · Slack 스레드) 한 단락을 붙여넣음
**Skip when**:
- prose 가 개인 노트 / 의견 / 상황 보고라 ontology 시민 (capability / element / domain) 으로 승격할 만한 *명사* 가 없음
- 사용자가 단순 "요약" 만 요청 — extraction 은 vault 변경을 시도하므로 *사용자 의도* 가 명확할 때만
- prose 가 이미 vault 안의 노드 본문 — 자신을 자신에서 추출하는 회귀
## Workflow
### 1. Read prose + 기존 vault 같이 본다 (cheap)
```
list_kinds # 전체 윤곽
find_evidence(title) # prose 의 핵심 명사 한두 개를 title 매치
similar_nodes # prose 의 핵심 구절을 candidate 로 받아 유사도 점수
```
prose 안의 *명사* 와 *동사구* 를 candidate phrase 로 뽑은 다음, vault 에 **이미 있는지** 먼저 확인한다. 가장 흔한 실패는 "auth-login" 이라는 노드가 이미 있는데 "사용자 로그인" 으로 별도 만들어 duplicate 생기는 케이스.
`similar_nodes({candidateSlug, title})` 가 prose 의 phrase 와 기존 노드 사이 유사도 (slug + title + neighbors) 점수를 반환한다. 점수 0.3 이상은 *기존 노드 patch* 후보, 그 미만은 *새 노드* 후보로 분류.
### 2. Candidate 추출 — kind 별 분류
prose 한 단락에서 평균적으로 0~3 개 ontology 시민이 나온다. 5+ 가 보이면 prose 가 너무 길거나 ontology 화 욕심이 과한 것 — 가장 굵직한 1~2 개만 우선.
| Prose 형태 | Likely kind | 예 |
|---|---|---|
| "X