日本語 · English · 简体中文 · 繁體中文 · 한국어 · Deutsch · हिन्दी
Fullseye의 권장 운용 방식은 “AI 코딩 어시스턴트의 지식 베이스(RAG)로 사용“하는 것입니다. 모든 op가 기계가 읽을 수 있는 Markdown 노트(docs/ops, 단일 진실 원천)를 가지고 있으므로, 추가적인 벡터 DB나 임베딩 서비스는 필요하지 않습니다. grep이 가능한 환경이라면 그 자체가 곧 RAG가 됩니다.
3단계의 도입 방법을 제공합니다. Tier 0/1은 외부 의존성이 전혀 없습니다(Fullseye 저장소만으로 완결됩니다).
PyPI를 통한 사용:
pip install fullseye를 실행한 환경에서는 콘솔 스크립트fullseye-rag를 사용할 수 있습니다. checkout(clone /pip install -e .)인 경우docs/ops의 전체 코퍼스를 스킬에 고정하고, wheel만 설치한 경우에는 동봉된OP_CATALOG.md(AI를 위한 전체 op 카탈로그)를 스킬에 고정합니다(완전한 개별 op 노트가 필요해지면 저장소를 clone하여 다시 실행하면 됩니다). 업데이트는py -3.11 tools/update_fullseye.py로 수행합니다(dirty 트리 거부 ·--ff-only· 스킬은 백업 후 업데이트 · Studio 설정은 건드리지 않음 — 환경을 망가뜨리지 않도록 설계됨).
문서만 받은 Codex / Copilot 은 둘 다 첫 시도에서 용도로 찾는 색인을 찾지 못했다(2026-09-15). 이 가이드에 안내가 없었기 때문입니다. 입구는 5 개입니다:
docs/CAPABILITIES.md. 과제 하나에 파일 하나(docs/capabilities/)로 권장 파이프라인(순서 있는 op)/ 대안 / 한계 / 실측 보정을 가지며, op 이름이 실제로 있는지와 타입(in → out)이 앞 단계에서 뒷 단계로 이어지는지를 tests/test_capabilities.py 가 검사합니다.fullseye-rag search / fullseye.search_ops(다음 절).docs/ops/INDEX.md → 계열 목차 → op 노트.fs.op_find(query)(자유어·어간)/ fs.op_assist(op)(사양·프리셋·다음에 이을 곳)/ fs.op_path(from_sort, to_sort)(타입 A → 타입 B 를 잇는 op 열)/ fs.op_producers(sort)(그 타입을 만드는 op)/ fs.op_accepts(op)(실측으로 받아들이는 타입), CLI 는 fullseye has <op>(HALCON 이름으로도 찾을 수 있음).docs/OP_INDEX.json(전 op 의 타입 계약), wheel 에 동봉된 OP_CATALOG.md.Windows 셸에서 읽을 때는 UTF-8 을 명시한다 —— 노트는 BOM 없는 UTF-8 이라 기본 코드 페이지로 열면 일본어가 깨지고, AI 가 “읽지 못한” 것을 “없다”고 판단합니다(Codex 에서 실제로 일어남). PowerShell 은 Get-Content -Encoding utf8, Python 은 PYTHONUTF8=1.
fullseye-rag search "노이즈 제거" # 명령(pip install fullseye 만으로 동작)
fullseye-rag search "edge detection" -k 5 --lang ko
import fullseye
fullseye.search_ops("에지 검출", k=5) # Python. MCP 에서는 fullseye_find_ops
모든 op 요약을 7개 언어(일본어 원문 + 영어·중국어 간체/번체·한국어·독일어·힌디어 번역. 힌디어 번역은 전문 용어를 영어로 둡니다)로 색인하고,
op 이름·HALCON 이름·입출력 타입과 함께 대조해 순위대로 “요약(질의 언어) + 노트 위치”를 돌려줍니다.
노트 본문은 일본어라 grep 으로 “잡음”을 찾으면 0건이지만, 이 검색으로는 모국어로 찾을 수 있습니다.
임베딩이나 외부 서비스는 쓰지 않습니다(BM25, 표준 라이브러리만). 동의어는 인식하지 않으므로
결과가 적으면 다른 표현이나 영어로 다시 찾으세요. 실행 예: py -3.11 examples/find_ops_by_meaning.py.
Fullseye 저장소의 checkout을 Claude Code에서 열면 docs/ops/INDEX.md와 개별 op 노트를 그대로 검색·참조할 수 있습니다. 코퍼스는 저장소 콘텐츠이므로(wheel에는 포함되지 않음), pip 설치만 한 경우에는 저장소도 함께 clone하십시오.
docs/ops/2d/<category>/<op>.md # 호출 형식·타입 계약·HALCON 별칭·참고 문헌·관련 op
docs/ops/3d/<category>/<op>.md
docs/ops/INDEX.md # 폴더 계층을 순회하여 자동 생성한 전체 목차
docs/ops/<family>/guides/<name>.md # 계열별 사용 가이드(수식·그림·정전 인용)
docs/OP_INDEX.json # 레지스트리의 기계 판독 가능한 인덱스
자신의 프로젝트에서 작업하면서 Fullseye를 참조하고 싶다면, 동봉된 설치 스크립트를 한 번 실행합니다.
py -3.11 tools/setup_claude_rag.py # 설치(재실행 = 업데이트)
py -3.11 tools/setup_claude_rag.py --uninstall # 제거
동봉된 스킬 skills/fullseye-ops가 ~/.claude/skills/fullseye-ops로 복사되고, SKILL.md의 FULLSEYE_REPO = 줄이 이 checkout의 절대 경로로 자동 고정됩니다(AI가 어느 프로젝트에서 작업하든 코퍼스 위치를 알 수 있게 됩니다). 코퍼스(docs/ops)를 찾을 수 없는 checkout에서는 설치를 거부합니다(fail-closed).
이후로는 이미지 처리·기하 비전 주제에서 Claude Code가 자동으로 이 스킬을 실행하여, docs/ops를 검색(retrieve) → 타입(sort)이 이어지는 op를 선택해 구현 → 동봉된 worked example로 검증, 이라는 흐름으로 동작합니다. 스킬 본문 자체가 “AI를 위한 사용 지침서”입니다. 수동으로 설치하고 싶다면 skills/fullseye-ops를 ~/.claude/skills/로 복사하는 것만으로도 동작합니다(경로 고정이 없는 만큼 AI가 매번 저장소 위치를 탐색합니다).
3,629개의 노트를 주제 클러스터로 계층화하고, 각 클러스터에 LLM 요약을 붙인 “내비게이션이 있는 코퍼스”도 만들 수 있습니다. 내부적으로는 RAPTOR 포크의 corpus2skill(TF-IDF + k-means + LLM 요약)을 사용하고 있지만, 이는 어디까지나 선택적인 최적화이며 필수가 아닙니다. 요구 사항은 “docs/ops를 입력으로 클러스터별 SKILL.md 계층을 출력”하는 것뿐이므로, 동등한 도구라면 무엇으로든 대체할 수 있습니다.
재수집(노트 업데이트 후)의 예 — 내부 운용을 그대로 정직하게 기록한 것입니다.
$env:RAPTOR_DIR="<path-to-raptor-checkout>"
py -3.11 raptor_corpus2skill.py --source <fullseye>/docs/ops --name fullseye_ops_corpus_v2 `
--overwrite --max-depth 2 --max-clusters 6 --min-cluster-size 8 # ANTHROPIC_API_KEY 필요
주의: 클러스터링된 코퍼스는 수집 시점의 스냅샷입니다. docs/ops를 업데이트한 후 재수집하지 않으면 낡아집니다(Tier 0/1은 항상 원본 노트를 읽으므로 낡아지지 않습니다).
op 노트는 「이 op가 무엇을 하는가」에는 답하지만 「이 공정·이 부품에서 무엇을 측정해야 하는가」에는 답하지 않습니다.
docs/literature/가 그 틈을 메웁니다: 외부 문헌 코퍼스(기계 설계·메카트로닉스 부품·제조 공정·운전 시뮬레이션과 평가·센서 모의, 약 8,900건의
OpenAlex 메타데이터, 주제 → op 대응표는 분야별)를 클러스터별로 요약하고, 각 클러스터에서 쓸 op(사람이 쓴 주제 → op 대응표, op 이름은 생성 시 출하 노트와
대조해 실재를 보증)와 대표 논문의 제목·연도·DOI를 출처로 붙였습니다. 읽는 순서는 「공정·부품·운전 평가의 화제 → 문헌 클러스터 → 쓸 op →
op 노트(타입 계약·실행 가능한 예)→ 구현」. 초록은 옮기지 않고, 단어 일치로 op를 고르지도 않습니다(일반어로 무관한 op가 나열되는
것을 실측하고 버렸습니다). 코퍼스 본체는 저장소에 없으므로 이 층만 tools/gen_literature_notes.py --rad-root <RAD>로 다시 만들며,
tests/test_literature_notes.py가 형태를 지킵니다.
광학 계측과 외관 검사의 신뢰성(POD, 레이저 스페클, 편광으로부터의 형상 복원, 전역 광 수송, 수입 시험과 불확도, 합성 데이터의 6개 축)은 사람이 엄선한 층입니다. 논문은 사람이 골랐고 축마다 개요를 사람이 썼습니다(목록 docs/literature/curated/).
실제로 검색되는 범위: 이 층은 저장소 파일을 읽을 때(Claude Code 스킬 fullseye-ops, checkout 모드) 찾을 수 있습니다. MCP 서버의 검색(fullseye_search_ops / fullseye_find_ops)과 fullseye-rag search는 문헌 층의 클러스터나 논문을 반환하지 않습니다. 다만 테마 → op 표에 사람이 쓴 맥락(“테마: 왜 이 op를 쓰는가”, 일본어 원문과 영어 번역)은 의미 검색의 색인어에 들어 있어서, 현장의 표현(용접 비드 높이, 연마 제거량)으로도 op를 찾을 수 있고 결과의 contexts 필드에 표시됩니다. wheel(pip install)에도 docs/literature는 들어 있지 않습니다.
version + fingerprint).in:/out:과 “타입이 이어지는 관련 op”를 가지고 있어, AI가 타입을 검사하면서 파이프라인을 구성할 수 있습니다.examples/ / examples_3d/)이 있어, AI가 스스로 자신의 제안을 실행해 확인할 수 있습니다.py -3.11 studio.py)를 열면, AI가 구성한 결과를 이미지 창·3D 표시로 사람이 같은 화면에서 검사할 수 있습니다(dev_open_window 등을 통해 스크립트에서 여러 창을 배치할 수도 있습니다).