Kirin documentation

The internal documentation for the Kirin autonomous chess system: the C++ engine, the hardware layer the robot ships, the services around them, and the fleet they run on.

This site carries two kinds of page, and the difference matters when they disagree:

  • The manual is hand-written and owns the reasoning — why a thing is built the way it is. It is the intent.

  • The API reference is generated from the sources under kirin/src on every push and owns the surface — what a symbol is and where it lives. It is current.

When the two disagree, that gap is worth a bug report either way.

Note

The manual is mid-migration from LaTeX (docs/docsite-docs/PLAN.md U2). Its prose and all 70 decision records are here and searchable; docs/manual/kirin.pdf remains the typeset article until the cutover.

Where to start

If you want to…

Go to

Understand how the system fits together

The system manual

Know why something is built the way it is

Decision register

Understand search, evaluation, or move generation

Chess engine

Work on motion, sensing, or the physical board

Hardware layer

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.

Warning

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