Home - GuitarAlchemist/ix GitHub Wiki

ix — GuitarAlchemist

Part of the GuitarAlchemist ecosystem, governed by Demerzel.

Overview

ix

CI

Read this first: docs/MANUAL.md — the canonical user manual. Install, tool inventory, pipeline format, governance integration, extension guide, troubleshooting. Start there.

A Rust workspace of composable ML/math algorithms and AI governance, designed to be exposed as Claude Code skills via an MCP server and CLI. Part of the GuitarAlchemist ecosystem (ix + tars + ga + Demerzel).

For industrial engineering and robotics, IX is an offline/advisory co-processor. It can analyze telemetry, run reproducible optimization experiments, rank planner parameters, and orchestrate external engineering tools. It is not a CAD kernel, FEA/CFD solver, collision engine, complete digital twin, hard-real-time controller, safety PLC, consensus service, or authoritative distributed lock. See ADR-0005.

81 crates. 96 MCP tools. 80+ Claude Code skills. Pure Rust. No external ML frameworks.

Quick Start

# Build everything
cargo build --workspace

# Run tests
cargo test --workspace

# Run the CLI
cargo run -p ix-skill -- optimize --algo pso --function sphere --dim 10

# Build the optional local-only text embedding adapter
cargo build -p ix-skill --features embeddings --bin ix-embed

# Start the MCP server (for Claude Code integration)
cargo run -p ix-agent

ix-embed accepts an ix-local-embedding-request/1 JSON document on stdin (or from --input <path>) and emits ix-local-embedding-response/1. The caller must provide --model-cache <path> containing a complete cached Xenova/bge-base-en-v1.5 revision. The adapter verifies every required cache object before inference and forces any cache-miss fallback to loopback, so it never downloads a model or calls a paid provider implicitly.

Development Guide

ix — ML Algorithms + Governance for Claude Code Skills

Rust workspace (81 crates) implementing foundational ML/math algorithms and AI governance as composable crates, exposed via MCP server (ix-agent) and CLI (ix-skill). Part of the GuitarAlchemist ecosystem (ix + tars + ga + Demerzel).

Crate map: see README.md for the full list of 81 crates grouped by domain.

Build

cargo build --workspace
cargo test --workspace
cargo clippy --workspace -- -D warnings

Pre-PR gate — one command, actionable failures (ix#185):

cargo run -p ix-skill --bin ix -- doctor          # fast repo-specific surface checks
cargo run -p ix-skill --bin ix -- doctor --full   # plus the CI clippy + test invocation

It checks registry-snapshot drift (no hand-typed tool counts), orphan public traits, and the governance/state environment. Per-change-type checklists — MCP skill, DuckDB UDF, public API, @ai: invariant — live in docs/CHECKLISTS.md (FR).

Repo harness verification:

pwsh scripts/verify.ps1

MSRV: Rust 1.80+ (due to wgpu 28).

Conventions

  • Pure Rust; no external ML frameworks except wgpu for GPU compute.
  • CPU algorithms use f64 and ndarray::Array{1,2}<f64>; GPU uses f32 via WGPU shaders.
  • Each crate defines traits (Regressor, Classifier, Clusterer, Optimizer, etc.).
  • Builder pattern for algorithm configuration; seeded RNG for reproducibility.
  • Governance: all agent actions subject to Demerzel constitution (see governance/demerzel).
  • Before adding a new graph primitive, check docs/guides/graph-theory-in-ix.md — IX already has 10 graph-theory modules.
  • Do NOT add petgraph/daggy/graph-rs as new dependencies. Use ix-graph, ix-pipeline::dag::Dag<N>, ix-search, or ix-topo.
  • Cycles + concurrency + contention (locks, worker pools, "can these two lanes wedge?") are ix-petri, not a DAG — Dag::add_edge rejects the cycle. Read docs/guides/petri-nets-in-ix.md before modelling one.

MCP Federation

MCP peers in .mcp.json: ix (Rust, algorithms + governance), tars (F#, grammar + metacognition), ga (C#, music theory), sentrux (Rust, realtime structural-quality sensor), hari (Rust, belief-state substrate — batch tools hari_query_belief / hari_snapshot / hari_diff / hari_record_observation / hari_consensus plus live Phase-6 multiplexer hari_session_open / hari_session_event / hari_session_close). Capability registry: governance/demerzel/schemas/capability-registry.json.

Realtime vs offline code analysis boundary. Sentrux owns realtime structural quality (live treemap, regression gate, file-watcher feedback for in-progress agent edits). The ix-code-* crates own offline catalog work (large-corpus AST analysis, code-smell mining, code catalog snapshots that feed governance reports). When in doubt: if it's "what changed in the last 30 seconds," call sentrux; if it's "snapshot the whole codebase for the daily quality trend," use ix-code-analyze.

Full CLAUDE.md

⚠️ **GitHub.com Fallback** ⚠️