Skip to content

Generate solver architecture and public contract docs from sources of truth #577

Description

@siddhss5

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

  • Architecture/API documentation matches the M8 canonical solve pipeline.
  • Registry-derived facts are generated and checked for drift.
  • Public claims distinguish soundness from completeness and sampling coverage.
  • Generated artifact docs and Manipulator.solve docs describe identical option semantics.
  • Stale Cython/base85/first-call/opt-in-rescue descriptions are removed or corrected.
  • Documentation CI fails when generated contract sections drift.

This issue should land after the M8 behavioral contract stabilizes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions