이 노트에 대하여

logickocli는 한국어 자연어 논증을 표준 논리 좌표계로 정규화해 사람과 에이전트가 같은 추론 표면에서 대화하게 만드는 도구다. 한말 어휘, 표준 한자말, 영어, 기호를 하나의 ID 축으로 묶고, 논증을 구조화된 frame으로 돌려준다. 이 노트는 그 문제의식과 현재 구현 상태를 공개용 기준으로 정리한다.

히스토리

  • [2026-05-15 Fri 17:10] @mitsein — 공개용 botlog 형식으로 전면 정리. 중간 llmlog는 제거하고, 리포 분리 이후의 현재 상태와 다음 단계만 남김.
  • [2026-05-13 Wed 11:44] @담당자 — Phase 1 정비: SCHEMA 정리, 자가 검증 러너 추가, alias 충돌 2건 정리, README/NEXT 정합 조정.
  • [2026-05-13 Wed 11:00] 첫 외부 리포 생성 — ~/repos/gh/logickocli/, 초기 commit 92a1da1.
  • [2026-05-13 Wed 10:49] @담당자 — CLI 리포 이름 결정: logickocli.
  • [2026-05-13 Wed 10:30] 생성 — Phase 1 스킬 설계와 공개 로드맵 기록 시작.

관련메타

관련노트

logickocli — 한국어 논증을 표준 논리 좌표계로 옮기는 도구

한국어로 논증을 말할 때 사람과 에이전트는 자주 같은 것을 다른 이름으로 부른다.

  • “이고 없애기”
  • “연언 제거”
  • “conjunction elimination”
  • “∧E”

이 네 표현이 모두 같은 규칙을 가리킨다는 사실을 공유하지 않으면 대화는 쉽게 엇갈린다. logickocli의 역할은 논리학 자체를 새로 가르치는 것이 아니라, 서로 다른 표현을 같은 좌표계의 같은 노드로 정규화하는 것이다.

이 도구는 자연어 논증을 받아 다음 frame으로 구조화한다.

  • 주장
  • 전제
  • 결론
  • 형식화
  • 사용 규칙
  • 숨은 가정
  • 평가

핵심은 “한국어 추론을 표준 논리로 번역하는 얇은 층”이다. 에이전트는 이미 자연연역, 술어논리, 양상논리, 오류론을 알고 있다. 부족한 것은 한국어 입력과 표준 논리 표면을 안정적으로 연결하는 계약이다.

왜 스킬에서 리포로 분리했는가

처음 출발점은 agent-config 안의 스킬이었다. 하지만 이 주제는 단순한 프롬프트 조각으로 남기기 어려웠다. 어휘 데이터, 충돌 정책, 규칙 카드, 출력 frame, 테스트 케이스가 함께 움직여야 했기 때문이다.

그래서 현재 구조는 두 층으로 나뉜다.

  • ~/repos/gh/logickocli/ — 데이터와 계약의 본체
  • ~/repos/gh/agent-config/skills/logickocli/SKILL.md — 호스트 환경이 본체를 불러오는 얇은 진입점

이 분리로 얻은 것은 셋이다.

  1. 스킬 계약과 어휘 데이터의 SSOT를 한곳에 둘 수 있다.
  2. agent-config 바깥에서도 독립 리포로 공개하고 발전시킬 수 있다.
  3. Phase 2 이후 CLI, Lean4/Coq bridge, 자가 검증을 한 저장소에서 이어갈 수 있다.

Phase 1 — 현재 갖춘 것

Phase 1은 “쓸 수 있는 좌표계”를 만드는 단계다. 아직 CLI 바이너리는 없지만, 데이터와 분석 계약은 이미 분리 가능할 정도로 정리되었다.

구성 요소

  • 어휘 147개 unique ID
  • 도메인 9개: 명제논리, 술어논리, 메타논리, 통사/의미, 정언논리, 어휘, 인식론, 형식 오류, 비형식 오류
  • 자연연역/치환 규칙 카드
  • K/T/S4/S5/GL cheat sheet
  • 논증 분석 frame 5종: default, proof, debate, modal, probability
  • 테스트 케이스: 정규화 + 논증 분석

데이터 정책

원천은 20230617T120300 — 용어 말꼴 배움낱말 테이블 이다. 여기서 영어, 표준 한자말, 한말 어휘를 분리해 다음 원칙으로 정리했다.

  • 표준 한자말과 기호는 응답 표면으로 쓴다.
  • 한말 어휘는 입력 인식과 옛 노트 검색 호환을 위해 보존한다.
  • 영어와 기호는 같은 개념의 다중 진입점으로 유지한다.
  • 특정 저자의 사적 기호 체계를 도구의 기본 표면으로 삼지는 않는다.

이 선택은 다른 작업을 평가절하하려는 것이 아니다. logickocli의 목표가 “한국어 사용자와 범용 LLM 에이전트의 좌표계 정렬” 이기 때문에, 사전훈련 분포와 검증 도구 연결성 면에서 더 안정적인 표준 표면을 기준으로 잡은 것이다.

2026-05-13 정비 — 데이터 안정화와 자가 검증

리포 생성 직후 한 차례 정비가 들어갔다. 이 단계에서 한 일은 기능 확장이 아니라 데이터 안정화였다.

정비 내용

  • vocab/SCHEMA.md 추가: 필드 타입, alias 충돌 정책, 입력 인식 우선순위 명시
  • scripts/check_vocab.py 추가: 항목 수, 도메인 분포, 충돌, 스키마 누락, dangling test ID 점검
  • alias 충돌 2건 정리: LEX.TERM 의 ‘명사’, META.CONCLUSION_INDICATOR 의 단독 ‘따름말’
  • README/NEXT 정합 조정
  • scripts/extract_org_table.py~/sync/org/ / ~/org/ 경로 fallback 추가

중요한 점은 의도된 충돌과 정리할 충돌을 분리했다는 것이다. 예를 들어 ‘가정’ 같은 표현은 문맥에 따라 premise와 assumption 둘 다 될 수 있으므로 억지로 하나로 접지 않았다. 반대로 구조적으로 중복인 표면은 정리했다.

이 정비 이후, `python3 scripts/check_vocab.py` 한 줄로 현재 상태를 재검증할 수 있다.

아직 하지 않은 것

일부는 의도적으로 미뤄두었다.

  • 실제 normalize() 함수 구현
  • CLI 명령 표면 확정
  • Lean4 / Coq 실제 검증 bridge
  • 어휘 확장과 다국어 포지셔닝 결정

즉 지금 상태는 “공개 가능한 설계와 데이터 계약” 이지, “완성된 실행 도구” 는 아니다.

다음 단계 — 공개용 도구로 가기 위한 순서

다음 작업은 구현 난이도보다 순서를 잘 잡는 게 중요하다.

  1. 호스트 스킬을 실제 한 turn 써 보며 frame이 과하지 않은지 검증
  2. 입력 표현을 ID 후보로 돌려주는 normalize() 프로토타입 작성
  3. CLI 인터페이스 spec 고정
  4. Lean4 bridge 최소 예제로 실제 검증 루프 연결

이 순서를 지키면 “말은 그럴듯하지만 실제로는 검증되지 않은 설명” 으로 미끄러질 위험을 줄일 수 있다.