wlsdks / atlas-absorb
글에서 개념 뽑기. 회의록·기획서·PR 설명에서 개념 후보를 뽑되 중복부터 먼저 확인한다. 사람이 고르기 전에는 쓰지 않는다. "이 글에서 뽑아줘" · "이 문서 반영해줘" 일 때 쓴다.
0
SKILL.md2.6 KB
/atlas-absorb — 글을 그래프로
이 스킬의 가장 큰 값은 「안 만드는 것」이다
산문에서 개념을 뽑을 때 가장 흔한 실패는 **이미 있는 것을 이름만 바꿔 또
만드는 것**이다. 그래서 순서가 「뽑고 나서 중복 확인」이 아니라
「중복 확인하고 나서 뽑기」 다.
- 무엇을 읽나
볼트 안(또는 사용자가 가리킨) 파일이면 →
absorb_document({ filePath }).confirm을 빼고 먼저 부른다 — 그러면 쓰지 않고 제안만 돌려준다.- 대화에 붙여 넣은 글이면 → 그 글을 직접 읽고 후보를 뽑는다.
- 후보마다 중복을 먼저 본다
후보 이름 하나하나에 대해 둘을 부른다.
query_concepts({ filter: '<이름>' })— 비슷한 이름이 이미 있나find_evidence({ title: '<이름>' })— 다른 이름으로 이미 들어와 있나
있으면 새로 만들지 않는다. 둘 중 하나를 한다 —patch_concept(expected_mtime 함께)로 내용을 채우거나, 관계만 더한다.
- 글에 없는 것은 만들지 않는다
산문은 사람이 대충 쓴다. 「~하면 좋겠다」 · 「~일 수도 있다」 는 아직 사실이
아니라 바람이다. 글이 실제로 주장하는 것만 후보로 올린다. 애매하면
후보에는 올리되 「글의 근거가 약함」이라고 적어서 사람이 판단하게 한다.
- 승인된 것만 쓴다 — 그리고 확인한다
- 파일이면
absorb_document({ filePath, confirm: true }) - 붙여 넣은 글이면
add_concepts→ (전부 성공한 뒤)add_relations - 그다음
validate_vault({})→query_ontology({ operation: 'health' })
이름은 이 볼트가 쓰는 방식대로
title 은 검색이 기준으로 삼는 단 하나의 정본 이름이라 **볼트 안에서 언어가
하나로 통일돼야** 한다. 섞이면 검색이 갈린다. 다른 언어 이름은 display_ko /display_en 에 넣는다. 지금 이 볼트가 어느 쪽인지는 list_concepts 로 먼저 본다.
이 스킬이 실패하는 방식
- 글에 없는 개념을 그럴듯하게 지어낸다
- 이미 있는 개념을 이름만 바꿔 또 만든다
confirm: true를 먼저 불러 사람이 보기 전에 써 버린다title언어를 볼트와 다르게 넣어 검색이 갈린다