Problem
Public documentation and architecture comments have drifted from v6 behavior:
docs/architecture.md says 11 solvers while the registry contains 13.
- It documents
arm.ik() and an unchanged (solutions, is_ls) result rather than the current solve()/diagnostic API.
- It describes base85 pickle artifacts, module-import priming, one-iteration refinement, and opt-in rescue that no longer match production behavior.
- Source docstrings still refer to a forthcoming Cython port and first-solve symbolic preprocessing.
- Strong “every IK branch” wording does not distinguish soundness, recovered branches, known numerical gaps, and conditional 7R sampling.
Proposed direction
- Generate solver counts, family tables, arm counts, backend availability, and benchmark fields from the registry/manifest.
- Keep one normative solve-contract document shared by API docs and generated artifact docstrings.
- State separate guarantees for 6R isolated-branch recovery, 7R conditional branch enumeration, redundancy sampling, winding representatives, refinement, and rescue.
- Maintain a visible list of known completeness limitations linked to their issues.
- Move historical phase notes out of production docstrings into ADRs or issue history.
Acceptance criteria
This issue should land after the M8 behavioral contract stabilizes.
Problem
Public documentation and architecture comments have drifted from v6 behavior:
docs/architecture.mdsays 11 solvers while the registry contains 13.arm.ik()and an unchanged(solutions, is_ls)result rather than the currentsolve()/diagnostic API.Proposed direction
Acceptance criteria
Manipulator.solvedocs describe identical option semantics.This issue should land after the M8 behavioral contract stabilizes.