| Multi-language comprehension + codegen Python, Java, TypeScript, C#, C, C++, Go, PHP, Perl, Kotlin | Shipped | automatic per repo |
JavaScript comprehension CommonJS require/exports, JSX, Express routes (incl. member handlers), and a Sequelize data layer — rides the existing typescript extra, no new install; comprehension only, no JavaScript codegen | Shipped | pip install 'synaptixs-spine[typescript]' |
| SQL data-layer comprehension schema, queries, stored procedures, migration folding | Shipped | pip install 'synaptixs-spine[sql]' |
SQL Server database projects UTF-16 scripts (SSMS’s default) and GO batch separators handled — on one project, 676 of 709 .sql files went from skipped to read | Shipped | automatic; no flag |
| SQL greenfield codegen generate a migration, validate on an ephemeral DB | Shipped | sdlc feature --language sql |
Framework-aware edges JAX-RS and Spring MVC endpoints (Java); ASP.NET Core endpoints, EF Core entities and Blazor (.razor) components (C#); Ktor and Spring MVC endpoints (Kotlin, sharing the Java reader) | Shipped | emitted on pkg extract / understand |
Java & C# typed-receiver call graphs calls through a field, parameter, typed local or var x = new T() (and, in C#, static calls on an in-repo type) now resolve to the declared-type member; constructor calls (new Order(7), object initializers, anonymous classes) land as CALLS to the created type; ASP.NET Core DI registrations (services.AddScoped<IMailer, SmtpMailer>()) become PROVIDES edges; blast_radius now also reaches an implementation’s callers through its interface | Shipped | pkg extract · blast_radius |
| Multi-repo comprehension several repos merge into one graph, so “what breaks if I change this?” can name a caller in a different repo — via HTTP call, shared table, or imported library | Shipped | .spine/repos.yaml · pkg extract --repos · investigate --repos |
| Join topology from evidence derived, not drawn by hand — and what could not be joined is reported | Shipped | pkg joins --propose · pkg joins --check |
C support #include graph + header/source merge; codegen on CMake or Meson | Shipped | sdlc feature --language c |
| Optional C/C++ semantic pass resolves member calls the CST cannot, adding edges only between symbols already in the graph — ids, nodes and determinism unchanged; the standard library stays out of reach | Partial | pip install 'synaptixs-spine[clang]' (also in [all]) |
| Go support package-per-directory, call graph, interface satisfaction; built + tested with go build/test, multi-module aware | Shipped | pip install 'synaptixs-spine[go]' · sdlc feature --language go |
Rust support Cargo package/target topology and a semantic module tree; target-scoped IDs, exact imports, explicit trait implementations, fields, references and precision-safe local calls; Cargo-aware codegen — scaffold, build-before-test with changed-package/reverse-dependent selection, workspace escalation — signed off for supported host environments; the tree-sitter-rust-orchard grammar pin closes the previous parser error. Extensive validation adds async/Tokio-style calls, procedural-macro source boundaries, and no_std with core/alloc imports: all 14 hand-labelled Rust corpus cases hold 1.00 precision on every emitted fact kind (three cross-module/workspace CALLS misses stay labelled), with pinned real-repository runs on mini-redis, async-trait, embedded-hal and Synaptreesitter; codegen now refuses actionably on a missing cross-compilation target, linker, or custom JSON target. Macro expansion, type-aware dispatch, full feature matrices and embedded firmware execution remain outside this release. | Shipped Core + Extensive validation, signed off for supported hosts | pip install 'synaptixs-spine[rust]' · sdlc feature --language rust |
PHP support namespace-keyed modules, traits as IMPLEMENTS, a precision-first call graph ($this->/self::/parent::/new/X::m(), typed-receiver resolution), Laravel/Slim/Symfony routes as Endpoints, Eloquent/Doctrine entities as Entitys — codegen with Composer or a pinned PHPUnit PHAR, configured test layout and changed-file lint | Shipped | pip install 'synaptixs-spine[php]' · sdlc feature --language php |
Perl support every package/5.38 class is its own type, inheritance across five spellings (use parent/use base, @ISA, extends, use Mojo::Base, :isa(...)) resolved literal-only, a call graph ($self->/SUPER::/qualified/bare calls), Mojolicious/Dancer2 routes as Endpoints, DBIx::Class as Entitys — codegen with perl -c, configured Perl::Critic, then prove, with optional cpanm | Shipped | pip install 'synaptixs-spine[perl]' · sdlc feature --language perl |
Kotlin support classes/objects/companions/extensions and typed-receiver CALLS (every property/parameter is declared, so calls resolve with no inference); Room entities + DAO READS/WRITES parsed from @Query; Retrofit calls as cross-repo consumer evidence; Ktor + Spring MVC routes as provider Endpoints (the Spring reader is shared with the Java front-end); Compose navigation as NAV routes; Hilt/Dagger wiring via the new PROVIDES edge kind; Multiplatform source sets with expect/actual joined by IMPLEMENTS; and a .kts Gradle module graph — codegen ships for Kotlin/JVM and Android via a Gradle-aware test runner | Shipped Multiplatform is comprehension-only | pip install 'synaptixs-spine[kotlin]' · sdlc feature --language kotlin |
Doc ingestion Markdown / reST / text → Doc nodes + MENTIONS edges; section-granular, precision-first, no LLM | Shipped | automatic on understand / state |
External docs join the blast radius Confluence pages, Jira issues, and any RAG system’s MCP server, pulled into a cache outside the checkout and bound to symbols at read time with the same one-anchor rule as the repo’s own docs; blast_radius, explain_symbol and docs_for list them with origin, source and age — never read by understand/state/episteme/, so CI stays reproducible | Shipped | orchestrator mcp ingest-docs · docs: block in .spine/repos.yaml |
HTML ingestion <h1..h6> become sections; inline <code> binds like a backtick | Shipped | automatic (stdlib, no extra) |
| PDF ingestion scanned / image-only PDFs are skipped (no OCR in the deterministic build) | Shipped | pip install 'synaptixs-spine[docs]' |
| Office ingestion .docx (heading styles → sections) and .xlsx (sheet → section) | Shipped | pip install 'synaptixs-spine[office]' |
Media ingestion images / audio / video → Doc nodes via a committed .spine-media/ transcript; the model runs only in the opt-in extract, never in the build | Shipped | orchestrator media extract (opt-in) |
| Image OCR architecture diagrams → box/edge labels bound to symbols (local Tesseract) | Shipped | pip install 'synaptixs-spine[media]' + tesseract |
| Audio / video ASR design reviews → timestamped transcripts; local Whisper, or remote only with explicit --allow-remote | Shipped | pip install 'synaptixs-spine[asr]' · --asr api |
| Doc-grounded codegen a reused symbol’s documenting prose rides into the codegen context | Shipped | automatic in sdlc feature |
| Bug localization, measured On a pinned five-project corpus (one repo per front-end, fixed to a pre-fix commit), the fixing file is in Spine's top 10 for 27 of 38 tickets (top-1: 12/38) — roughly eight times better than picking files at random, from the issue title alone | Shipped | orchestrator pkg accuracy . --oracle comprehension --pinned-corpus |
| Committed episteme/ knowledge base for humans + any AI tool, with a CI currency gate | Shipped | understand --out episteme · understand . --check |
| Current State report overview, runtime, code structure, doc coverage + drift, architecture diagrams (no LLM) | Shipped | orchestrator state . --lens developer|stakeholder |
PKG extraction / export sqlite, graphml, dot, json, obsidian — and cypher, loading the graph into Neo4j / Memgraph / any openCypher store for transitive closure, cycles and shortest-path queries the flat projections can’t answer | Shipped | orchestrator pkg extract · pkg export --format cypher |
| Measured graph accuracy precision & recall per node/edge kind, in all 12 languages, against a published corpus of 108 hand-labelled fixture cases across 13 front-ends — a number you can check | Shipped | orchestrator pkg accuracy |
Runtime oracle CALLS recall from real execution, tracing the repo’s own test suite | Partial Python only | pkg accuracy --oracle runtime |
Per-file route/table parity where the source declares more than the graph holds, with file:line | Shipped | pkg accuracy --oracle parity |
Invention detection CALLS edges targeting a name bound in the caller’s own scope — hunts for fiction, not absence | Partial Python only | pkg accuracy --oracle invention |
| Accuracy regression gate a committed baseline; CI fails when a gated number drops | Shipped | pkg accuracy --check |
| Measured caveats in the build document the blast radius states the recall for its language — a bound, not a hedge | Shipped | automatic in sdlc plan |
Intent layer Intent nodes + SERVES edges: which ticket a symbol was last changed for, from git blame + issue key; deterministic | Opt-in opt-in · ~3× CPU | understand . --intents · investigate --intents · pkg export --intents |
| Repo profile / audit | Shipped | orchestrator profile · audit |