contract / schema
Ontology — 분류 계약
Ontology — wiki2 분류 계약
이 문서는 wiki2의 유일한 분류 계약 owner다.
폴더 트리(토폴로지)나 운영 습관보다 이 문서가 우선한다.
AI와 사람은 위키 페이지를 만들거나 바꾸기 전에 이 문서를 따른다.
여기에 없는 corpus / origin / layer / type / domain / project 값을 발명하지 않는다.
0. 목적과 비범위
목적
wiki2는 혼합 도서관이다. 한 저장소 안에서 아래를 함께 유지한다.
- project — 내 프로젝트를 기반으로 한 개인 공학·운영 지식
- orbit — 웹·SNS·아티클 등 외부 정보를 취합·분류한 궤도 지식
- reference — 남이 만든 지식체계를 내가 참조만 하는 층
지식은 질문마다 raw에서 다시 조립하지 않는다.
LLM이 위키 층을 점진적으로 합성·유지하고, 교차참조·모순·종합이 누적된다.
(상위 패턴: Karpathy LLM Wiki — raw / wiki / schema. 이 문서는 schema 중 분류 계약이다.)
비범위
이 문서는 다음을 다루지 않는다.
- 실제 폴더 배치 (토폴로지) → 루트
README.md,raw/README.md,wiki/README.md - ingest / query / lint 절차 →
AGENTS.md - index / log 포맷 →
AGENTS.md§5–§6, 파일은index.md/log.md - 검색 엔진, 배포, CI
- wiki1 이관 계획
관련 문서
| 문서 | 역할 |
|---|---|
| README.md | 진입점 · 토폴로지 요약 |
| AGENTS.md | 운영 계약 (ontology에 종속) |
| index.md | 페이지 카탈로그 |
| log.md | 시간순 기록 |
1. 순서 원칙
기준 → 계층 → 배치. 계약이 먼저다.
| 단계 | 이름 | 역할 | 산출 |
|---|---|---|---|
| 1 | 온톨로지 | 무엇을 · 어떤 기준으로 | 이 문서 |
| 2 | 택소노미 | 계약이 정한 분류 뼈대(논리) | §3 닫힌 집합 |
| 3 | 토폴로지 | 폴더 트리 + 교차링크(물리) | live 디렉터리 · README 체인 (README.md 등) |
토폴로지 불변 원칙: 축을 폴더로 복제하지 않는다.
corpus/domain/layer/type 좌표는 frontmatter가 유일 진실이다. wiki 페이지는 flat (wiki/{type}-{slug}.md).
도서관 비유:
- 온톨로지 = 운영 방침 · 분류법 채택 규칙
- 택소노미 = 듀이 십진법 같은 번호 체계
- 토폴로지 = 책이 꽂힌 실제 서가
변경 비용:
- 온톨로지 변경 → 운영 방식 재설계
- 택소노미 변경 → 서가 재배치 · 번호 신설/통합
- 토폴로지 변경 → 책 몇 권 이동
금지: 규정집 없이 서가만 만들기.
AI가 매 세션 분류 기준을 새로 짓게 두지 않는다.
2. 축 정의
페이지 1장 = 아래 축의 좌표 1세트.
축은 직교한다. 한 축의 값을 다른 축 대신 쓰지 않는다.
2.1 corpus — 창고 모드
이 페이지가 어떤 유지 규칙으로 사는가.
| 값 | 의미 |
|---|---|
project |
내 프로젝트에서 나온 공학·운영 지식. 내가 compile한다. |
orbit |
웹·SNS·아티클·피드 등 외부 정보를 내가 취합·분류한다. |
reference |
남이 운영하는 지식체계/위키/캐논을 참조만 한다. 본문을 키우지 않는다. |
2.2 origin — 소유·혈통
| 값 | 의미 |
|---|---|
owned |
내가 썼거나, 내 소스에서 compile한 지식 |
external |
타인·외부 매체 원저 |
mixed |
외부 재료 위에 내 해석·분류·입장이 얹힘. 기여 구분을 본문 또는 메타에 명시 |
2.3 layer — 인식 거리
| 값 | 의미 | 해도 됨 | 금지 |
|---|---|---|---|
source |
단일 원본에 부착된 요약·발췌 | raw 대응, 인용, 출처 메타 | 다소스 종합 단정, 내 결정 선언 |
model |
2개 이상 재료를 묶은 구조 지식 | 개념·엔티티·비교·테제·맵 | raw 없는 신규 사실 창작, 단독 결론(“그래서 나는”) |
judgment |
내 입장·결정·사후학습 | 근거 링크 + 이유 | 근거 없는 선언, source로 위장 |
2.4 type — 페이지 형태
layer 안의 문서 양식. layer 이름을 type에 다시 쓰지 않는다.
| 값 | 주 layer | 한 줄 |
|---|---|---|
brief |
source | 단일 원본 브리프/요약 |
entity |
model | 사람·제품·조직·도구·작품 등 대상 |
concept |
model | 개념·패턴·메커니즘 |
comparison |
model | A vs B 구조 비교 |
thesis |
model | 여러 재료를 묶은 종합 테제 |
decision |
judgment | 결정과 근거·대안·폐기조건 |
learning |
judgment | 사후 교훈 (결정과 분리된 배움 단위) |
map |
model | 허브/목차/외부 체계 지도 (얇은 모델) |
query |
model 또는 judgment | 재사용 질의·답 fileback |
template |
model | 형식 템플릿 (status: template) |
2.5 domain — 주제 영역
관심 주제 서랍. 프로젝트 코드명이 아니다.
필수. 닫힌 목록(§3.5).
2.6 project — 프로젝트 소속 (선택)
특정 프로젝트에 묶일 때만 사용.
값(또는 목록)은 닫힌 프로젝트 목록(§3.6)의 원소여야 한다.
목록이 비어 있으면 project 필드를 쓸 수 없다 → 먼저 §7 확장 절차로 등록한다.
2.7 status / updated / title
| 필드 | 의미 |
|---|---|
title |
표시 제목 |
status |
draft | active | deprecated | template |
updated |
의미 있는 내용 변경일 YYYY-MM-DD |
status는 분류 축이 아니라 운영 필드다.
3. 닫힌 집합 (현재 값)
3.1 corpus
project | orbit | reference
3.2 origin
owned | external | mixed
3.3 layer
source | model | judgment
3.4 type
brief | entity | concept | comparison | thesis | decision | learning | map | query | template
3.5 domain
| 값 | 범위 |
|---|---|
agents |
LLM 에이전트, 툴, 오케스트레이션, 스키마 |
knowledge-systems |
위키/RAG/온톨로지/메모 체계 |
game-systems |
게임 규칙, 루프, 밸런스, 콘텐츠 파이프라인 |
runtime-clients |
Godot/Tauri/클라이언트 셸, 렌더, 입력 |
backends |
API, DB, 인증, 배포, 관측 |
markets |
증권/리서치/트레이딩 운영 |
education |
교육 운영, 출결, 학습 경험 |
creative-prod |
아트/시나리오/VN/미디어 생산 |
personal |
건강, 습관, 목표, 자기모형 |
meta |
wiki2 운영 자체, 온톨로지, 템플릿 |
unsorted |
임시 대기 (draft 전용) |
3.6 project
| 값 | 한 줄 |
|---|---|
chemical |
웹 — CAS 기반 화학 규제 스크리닝 B2B SaaS |
pet |
앱 — AI 데스크톱 컴패니언 (Hermes Pet / 시메지) |
100steps |
게임 — 무협 로그라이크 덱빌딩 백보일격 |
nornen-stock |
증권 — LUMINA stocks-ops. 정본=GitHub bluecafe/nornen-stock |
timebooks |
교육 — 영상↔교재 locator 멀티모달 학습. 정본=GitHub bluecafe/timebooks |
nornen-edu |
교육 — 학원/학교 출결·시간표 관리. 정본=GitHub bluecafe/nornen-edu |
angel |
크리에이티브 — VN「루미나의 계절」(Godot 4 .NET). 정본=GitHub bluecafe/angel |
ai-nornen |
게임/엔진 — AI TRPG (지식그래프·RAG·실플레이). 정본=GitHub bluecafe/ai-nornen |
목록 밖 슬러그 사용 금지. 추가·개명은 §7.
3.7 status
draft | active | deprecated | template
4. 결합 불변식
위키 페이지·AI 편집은 아래를 깨면 안 된다. 검증기는 이를 fail-fast로 거부한다.
| ID | 불변식 |
|---|---|
| I1 | 모든 wiki 페이지는 필수 필드: title, corpus, origin, layer, type, domain, status, updated |
| I2 | 모든 축 값은 §3 닫힌 집합 원소. 집합 밖 값 금지 |
| I3 | project가 있으면 §3.6 원소여야 한다. 목록이 비어 있는데 project를 쓰면 거부 |
| I4 | domain: unsorted 는 status: draft 만 허용. active/deprecated + unsorted 금지 |
| I5 | layer: source → type 은 brief 만 |
| I6 | layer: judgment → type ∈ {decision, learning, query} |
| I7 | layer: model → type ∈ {entity, concept, comparison, thesis, map, query, template} |
| I8 | origin: external ∧ layer: judgment 금지 |
| I9 | corpus: reference → type ∈ {brief, map, entity, concept, query, template} |
| I10 | corpus: reference → layer ≠ judgment |
| I11 | layer: source → raw_source 필수. 단 corpus: reference 는 ref_system + (ref_pin 또는 source_url) 로 대체 가능 |
| I12 | layer: judgment → 본문에 근거 링크 섹션 필수 (1개 이상) |
| I13 | origin: mixed → 본문 또는 frontmatter에 외부/소유 기여 구분 필수 |
| I14 | raw/ 는 불변. 변경은 wiki·schema(운영 문서)만 |
| I15 | §3에 없는 값 신설 금지. 확장은 §7만 |
| I16 | 모순을 조용히 덮지 않는다. 페이지 내 contradictions 또는 lint 항목으로 남긴다 |
| I17 | type: template → status: template |
| I18 | type: map → layer: model |
5. corpus × type 허용 표
| type | project | orbit | reference |
|---|---|---|---|
| brief | O | O | O |
| entity | O | O | △ 얇은 카드만 |
| concept | O | O | △ 얇게 |
| comparison | O | O | X |
| thesis | O | O | X |
| decision | O | O | X |
| learning | O | O | X |
| map | O | O | O (주력) |
| query | O | O | △ |
| template | O | O | O |
범례: O 허용 · △ 최소 메타·맵 보조 수준 · X 금지
reference 주력은 map + brief. 남 창고 본문을 우리 위키로 삼키지 않는다.
6. 출처·참조 필드
분류 축이 아닌 혈통 필드. 필요할 때 frontmatter에 둔다.
| 필드 | 언제 | 의미 |
|---|---|---|
raw_source |
layer=source (일반) | 불변 raw 파일 상대 경로 |
source_owner |
출처 명시 | 작성자·조직·프로젝트 |
source_url |
외부 URL 있을 때 | 원본 URL |
source_license |
알 수 있으면 | 라이선스. 모르면 unknown |
source_access |
알 수 있으면 | public | private | internal | restricted | unknown |
ref_system |
corpus=reference | 외부 체계 이름 |
ref_pin |
corpus=reference | 커밋·날짜·버전 핀 |
projects |
다 프로젝트 연결 | §3.6 원소 리스트 (단수 project 대신 가능) |
frontmatter 최소 예시
---
title: "예제 브리프"
corpus: orbit
origin: external
layer: source
type: brief
domain: agents
status: draft
updated: 2026-07-18
raw_source: "raw/inbox/example.md"
source_url: "https://example.com"
source_license: unknown
---
---
title: "외부 체계 맵"
corpus: reference
origin: external
layer: model
type: map
domain: knowledge-systems
status: active
updated: 2026-07-18
ref_system: "Example Wiki"
ref_pin: "2026-07-01"
source_url: "https://example.org/wiki"
---
7. 확장 절차
닫힌 집합을 바꾸느 것은 태그 추가가 아니라 계약 개정이다.
- 변경 이유와 영향 범위를 사용자와 합의한다.
- 이 문서 §3 (및 필요 시 §2·§4·§5)를 수정한다.
log.md에ontology항목으로 남긴다. (log 포맷은 운영 문서)- 기존 페이지 마이그레이션이 필요하면 같은 작업 단위에서 처리한다.
비용 감각:
| 변경 | 비용 |
|---|---|
| domain / project 값 추가 | 낮음~중간 |
| type 추가·삭제 | 중간 |
| layer / corpus / 불변식 변경 | 높음 — 마이그레이션 계획 없이 금지 |
AI는 확장을 제안할 수 있다.
사용자 확인 없이 ontology를 수정하지 않는다.
8. AI 의무 / 금지
의무
- 위키 작성·수정 전 이 문서를 따른다.
- 새 페이지에 I1 필수 필드를 채운다.
- 불변식 I2–I18을 지킨다.
- layer=judgment 이면 근거 링크를 본문에 남긴다.
- 모순·폐기·대체 관계를 숨기지 않는다.
- 확장이 필요하면 먼저 제안하고 확인을 받는다.
금지
- §3에 없는 축 값 발명
- 폴더가 비어 있다는 이유로 분류 기준을 즉석 창작
raw/수정- reference 본문을 owned 위키처럼 확장·재저술
- external 재료를 judgment로 위장
- unsorted 페이지를 active로 승격
- project 목록이 비어 있는데 project 필드 사용
- 사용자 확인 없는 ontology 개정
9. 개정 이력
| 날짜 | 요약 |
|---|---|
| 2026-07-18 | 초안. 축·닫힌 집합·불변식 V1·T1 허용 표·P0 빈 project 목록 확정 |
| 2026-07-18 | 6C. 비범위 포인터를 AGENTS/README로 고정. 토폴로지 flat 원칙을 §1에 명문화 |
| 2026-07-18 | project 목록 시드: chemical, pet, 100steps (P0→첫 등록) |
| 2026-07-18 | project 추가: nornen-stock (GitHub SSOT bluecafe/nornen-stock) |
| 2026-07-18 | project 추가: timebooks, nornen-edu, angel (GitHub SSOT bluecafe/*) |
| 2026-07-18 | project 추가: ai-nornen (GitHub SSOT bluecafe/ai-nornen origin/main) |
상세 타임라인은 log.md의 ontology 항목을 따른다.