Kirin v0.2.3-4-g1d04d94-dirty
Autonomous chess — engine and hardware API reference
Loading...
Searching...
No Matches
Kirin API Reference

Generated symbol-level reference for the C++ sources under kirin/src — the canonical Kirin chess engine and the hardware layer the robot ships.

Note
This site answers "what is this symbol?" For why a thing is built the way it is, read the system manual (docs/manual/kirin.pdf) and the design plans under docs/*/PLAN.md. Those are hand-written and own the reasoning; this site is generated from the source and owns the surface. When they disagree, the source is current and the manual is the intent — that gap is worth a bug report either way.

Where to start

If you want to… Go to
Understand search, evaluation, or move generation Chess engine (kirin_engine)
Work on motion, sensing, or the physical board Hardware layer (kirin_hardware)
Follow a game, puzzle, or review session Application layer
See how a run mode is selected Command-line entry point

The one seam worth knowing first

The engine reasons about piece types — it knows a black knight is on d5. The physical board needs piece identity, because a captured piece has to be driven to its own labelled storage slot, and two knights are not interchangeable once one of them is in a slot.

PieceTracker is where those two worlds reconcile. If you are touching capture handling, storage routing, or path planning and something seems to have one fact too few, this is almost always why.

Library boundary

kirin_engine has no hardware dependencies and builds and tests standalone; kirin_hardware depends on it, never the reverse. CMake enforces this at link time, and CI builds the engine on a machine with no board attached. Keeping that boundary clean is what lets the same engine run in the product, on the lichess bot, and under ctest.

Reading the file pages

Each source file's header comment becomes that file's page, so the prose you find under Files is the same text in the source — there is no second copy to drift. Adding a new file means writing a @file block; CI fails the docs build if one is missing.

Warning
Generated from the default branch on every push. A symbol appearing here is not a stability promise — none of this is a public API, and the only consumers are in this repository and kirin-gui.