日本語 · English · 简体中文 · 繁體中文 · 한국어 · Deutsch · हिन्दी
Die empfohlene Nutzung von Fullseye besteht darin, es als Wissensbasis (RAG) eines KI-Coding-Assistenten einzusetzen. Da jeder op eine maschinenlesbare Markdown-Notiz besitzt (docs/ops, die einzige Quelle der Wahrheit), ist keine zusätzliche Vektordatenbank oder kein Embedding-Dienst nötig. Jede Umgebung, in der grep möglich ist, ist bereits ein RAG.
Es werden drei Einführungsstufen bereitgestellt. Tier 0/1 haben keinerlei externe Abhängigkeiten (sie kommen allein mit dem Fullseye-Repository aus).
Nutzung über PyPI: In einer Umgebung, in der
pip install fullseyeausgeführt wurde, steht das Konsolenskriptfullseye-ragzur Verfügung. Bei einem Checkout (Clone /pip install -e .) wird der vollständigedocs/ops-Korpus an das Skill gepinnt; bei einer reinen Wheel-Installation wird stattdessen die mitgelieferteOP_CATALOG.md(der vollständige Op-Katalog für die KI) gepinnt (wer später die vollständigen Pro-Op-Notizen möchte, klont einfach das Repository und führt es erneut aus). Aktualisiert wird mitpy -3.11 tools/update_fullseye.py(verweigert einen dirty Tree,--ff-only, aktualisiert das Skill über ein Backup und rührt die Studio-Einstellungen nicht an — so konzipiert, dass es die Umgebung nicht zerstört).
Nur mit den Dokumenten ausgestattet, fanden Codex und Copilot beide beim ersten Versuch den Index „von der Aufgabe zum Op“ nicht (2026-09-15), weil dieser Leitfaden nicht darauf verwies. Es gibt fünf Einstiege:
docs/CAPABILITIES.en.md. Eine Datei pro Aufgabe (docs/capabilities/) mit empfohlener Pipeline (geordnete Ops) / Alternativen / Grenzen / Kalibrierung auf reale Maße; tests/test_capabilities.py prüft, dass jeder Op existiert und die Typen (in → out) von Schritt zu Schritt verketten.fullseye-rag search / fullseye.search_ops (nächster Abschnitt).docs/ops/INDEX.md → Familienindex → Op-Notiz.fs.op_find(query) (Freitext, Wortstämme) / fs.op_assist(op) (Spezifikation, Presets, mögliche Folge-Ops) / fs.op_path(from_sort, to_sort) (Op-Kette von Typ A nach Typ B) / fs.op_producers(sort) (Ops, die einen Typ erzeugen) / fs.op_accepts(op) (gemessen akzeptierte Typen); auf der Kommandozeile fullseye has <op> (auch mit HALCON-Namen).docs/OP_INDEX.json (Typverträge aller Ops) und das im Wheel mitgelieferte OP_CATALOG.md.In Windows-Shells die Notizen ausdrücklich als UTF-8 lesen — sie sind UTF-8 ohne BOM; mit der Standard-Codepage geöffnet wird der japanische Text zu Zeichensalat, und eine KI schließt „nicht vorhanden“, obwohl sie ihn nur nicht lesen konnte (bei Codex so passiert). PowerShell: Get-Content -Encoding utf8; Python: PYTHONUTF8=1.
fullseye-rag search "Rauschen entfernen" # Befehl (läuft schon mit pip install fullseye)
fullseye-rag search "edge detection" -k 5 --lang de
import fullseye
fullseye.search_ops("Kantenerkennung", k=5) # Python; über MCP: fullseye_find_ops
Die Kurzbeschreibung jedes Ops ist in sieben Sprachen indiziert (japanisches Original plus englische,
chinesische (vereinfacht/traditionell), koreanische, deutsche und Hindi-Übersetzung; Hindi behält Fachbegriffe auf Englisch) und wird zusammen mit
Op-Name, HALCON-Name und Ein-/Ausgabetyp abgeglichen; zurück kommt eine Rangliste mit der Beschreibung in
der Sprache der Anfrage und dem Pfad der Notiz. Die Notizen selbst sind japanisch — ein grep nach
„Rauschen” findet 0 Treffer, diese Suche findet Ops in Ihrer Sprache. Keine Embeddings, kein externer
Dienst (BM25, nur Standardbibliothek). Synonyme werden nicht erkannt: bei dünnen Treffern anders
formulieren oder Englisch versuchen. Ausführbares Beispiel: py -3.11 examples/find_ops_by_meaning.py.
Öffnet man einen Checkout des Fullseye-Repositorys in Claude Code, lassen sich docs/ops/INDEX.md und die Pro-Op-Notizen direkt durchsuchen und referenzieren. Der Korpus ist Repository-Inhalt (nicht im Wheel enthalten) — wer also nur per pip installiert hat, sollte zusätzlich das Repository klonen.
docs/ops/2d/<category>/<op>.md # Aufrufform, Typvertrag, HALCON-Alias, Literatur, verwandte Ops
docs/ops/3d/<category>/<op>.md
docs/ops/INDEX.md # Gesamtinhaltsverzeichnis, automatisch durch Traversieren der Ordnerhierarchie erzeugt
docs/ops/<family>/guides/<name>.md # Anleitungen je Familie (Formeln, Diagramme, Zitate kanonischer Quellen)
docs/OP_INDEX.json # maschinenlesbarer Index der Registry
Wer beim Arbeiten im eigenen Projekt Fullseye heranziehen möchte, führt einmalig das mitgelieferte Setup-Skript aus:
py -3.11 tools/setup_claude_rag.py # Installation (erneuter Lauf = Aktualisierung)
py -3.11 tools/setup_claude_rag.py --uninstall # Deinstallation
Das mitgelieferte Skill skills/fullseye-ops wird nach ~/.claude/skills/fullseye-ops kopiert, und die Zeile FULLSEYE_REPO = in SKILL.md wird automatisch auf den absoluten Pfad dieses Checkouts fixiert (damit die KI unabhängig davon, in welchem Projekt sie arbeitet, weiß, wo sich der Korpus befindet). Bei einem Checkout, in dem der Korpus (docs/ops) nicht gefunden wird, wird die Installation verweigert (fail-closed).
Von da an ruft Claude Code bei Themen aus Bildverarbeitung und geometrischem Sehen dieses Skill automatisch auf und arbeitet nach dem Ablauf: docs/ops durchsuchen (retrieve) → Ops auswählen, deren Typen (sort) zusammenpassen, und implementieren → mit dem mitgelieferten Worked Example verifizieren. Der Skill-Text selbst ist die “Bedienungsanleitung für die KI”. Wer es manuell installieren möchte, kann skills/fullseye-ops einfach nach ~/.claude/skills/ kopieren — das funktioniert ebenfalls (nur ohne die Pfadfixierung sucht die KI den Repository-Ort jedes Mal neu).
Man kann außerdem einen “navigierbaren Korpus” erstellen, der die 3.629 Notizen hierarchisch in thematische Cluster gliedert und jedem Cluster eine LLM-Zusammenfassung beigibt. Intern verwenden wir dafür corpus2skill aus einem Fork von RAPTOR (TF-IDF + k-means + LLM-Zusammenfassung), aber das ist eine optionale Optimierung, keine Voraussetzung. Die einzige Anforderung lautet: “docs/ops als Eingabe nehmen und eine SKILL.md-Hierarchie pro Cluster ausgeben” — jedes gleichwertige Werkzeug kann also einspringen.
Beispiel für die erneute Aufnahme (nach einer Aktualisierung der Notizen) — ehrlich genau so dokumentiert, wie wir es intern betreiben:
$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 # benötigt ANTHROPIC_API_KEY
Hinweis: Ein geclusterter Korpus ist eine Momentaufnahme zum Zeitpunkt der Aufnahme. Wird docs/ops aktualisiert, veraltet er, sofern man ihn nicht erneut einliest (Tier 0/1 veralten nie, da sie stets die aktuellen Notizen lesen).
Eine Op-Notiz beantwortet „was tut dieser Op“, nicht „was messe ich in diesem Prozess, an diesem Teil“.
docs/literature/ schließt diese Lücke: externe Literaturkorpora (Maschinenbau-Konstruktion,
Mechatronik-Bauteile, Fertigungsprozesse, Fahrsimulation und -bewertung, Sensorsimulation — etwa 8.900 OpenAlex-Metadatensätze; je Fachgebiet eine Thema → Op-Tabelle), je Cluster zusammengefasst, mit den in
jedem Cluster zu verwendenden Ops (eine handgeschriebene Thema → Op-Tabelle, deren Op-Namen beim Erzeugen gegen die
ausgelieferten Notizen geprüft werden) und Titel / Jahr / DOI repräsentativer Arbeiten als Herkunft. Lesereihenfolge:
Prozess oder Bauteil → Literatur-Cluster → Ops → Op-Notiz (Typvertrag, lauffähiges Beispiel) → Implementierung.
Abstracts werden nicht kopiert, und Ops werden nie über Wortüberlappung gewählt (das brachte nachweislich unpassende Ops
bei Allerweltswörtern und wurde verworfen). Da die Korpora außerhalb des Repos liegen, wird nur diese Schicht mit
tools/gen_literature_notes.py --rad-root <RAD> neu erzeugt; tests/test_literature_notes.py sichert ihre Form.
Optische Messtechnik und Zuverlässigkeit der Sichtprüfung (POD, Laser-Speckle, Form aus Polarisation, globaler Lichttransport, Abnahmeprüfung und Messunsicherheit, synthetische Daten: sechs Achsen) ist eine von Hand kuratierte Schicht: Die Arbeiten wurden von Hand ausgewählt, und jede Achse hat eine von Hand geschriebene Übersicht (Manifest docs/literature/curated/).
Was sie tatsächlich erreicht: Die Schicht ist auffindbar, wenn man die Dateien des Repositorys liest (Claude-Code-Skill fullseye-ops, Checkout-Modus). Die Suche des MCP-Servers (fullseye_search_ops / fullseye_find_ops) und fullseye-rag search liefern die Cluster und Aufsätze der Literaturschicht nicht. Der von Hand geschriebene Kontext der Tabelle Thema → Op (“Thema: wozu dieser Op”, japanisch mit englischer Übersetzung) gehört jedoch zum Index der Bedeutungssuche, sodass auch eine Formulierung aus der Werkstatt (Schweißnahthöhe, Polierabtrag) den Op findet; das Ergebnis zeigt ihn im Feld contexts. Auch das Wheel (pip install) enthält docs/literature nicht.
version + Fingerprint).in:/out: sowie “verwandte Ops, deren Typen zusammenpassen”, sodass die KI eine Pipeline unter gleichzeitiger Typprüfung zusammensetzen kann.examples/ / examples_3d/), sodass die KI ihren eigenen Vorschlag selbst ausführen und überprüfen kann.py -3.11 studio.py), kann ein Mensch das von der KI zusammengestellte Ergebnis als Bildfenster bzw. 3D-Ansicht auf demselben Bildschirm prüfen (über dev_open_window u. Ä. lassen sich auch mehrere Fenster aus einem Skript heraus anordnen).