Skip to content

Multiply capabilities: +5 languages, structural connectors, graph analysis, exporters, CI gate - #11

Open
cognis-digital wants to merge 3 commits into
masterfrom
enhance/multiply-capabilities
Open

Multiply capabilities: +5 languages, structural connectors, graph analysis, exporters, CI gate#11
cognis-digital wants to merge 3 commits into
masterfrom
enhance/multiply-capabilities

Conversation

@cognis-digital

Copy link
Copy Markdown
Owner

Multiply capabilities: languages, connectors, analysis, exporters, CI gate

This is an additive feature multiply on top of the existing knowledge-graph core. Public API is unchanged; every existing command still behaves the same. It also closes out several open threads (see below).

Extraction — 7 → 12 languages

  • New extractors: Ruby, PHP, Kotlin, C++, Protobuf (registered by suffix + language name).
  • New language-agnostic connector detector for gRPC / message-queue / env-var relationships, wired into the indexer so publisher/subscriber and shared-env couplings are captured alongside symbols.

Cross-language graph

Analysis (codegraph/analysis.py)

  • Dependency cycles (Tarjan SCC).
  • Layering violations against a declared top-to-bottom layer spec.
  • CODEOWNERS ownership overlay flagging every dependency edge that crosses a team boundary.

Exporters (codegraph/exporters.py)

  • JSON-graph, GraphML (Gephi / yEd / Cytoscape), and SARIF 2.1.0 findings for GitHub code scanning. (Addresses the SARIF discussion.)

CLI

  • New export and ci subcommands. The ci gate exits non-zero on cycles / layering violations / broken cross-language edges, with per-check opt-outs, a findings threshold, and optional SARIF output.
  • New query subcommands: connectors, cycles, layers, ownership.

MCP server

  • Six new audited tools: list_connectors, cross_language_edges_by_kind, find_cycles, check_layering, ownership_overlay, broken_cross_language_edges.

Tests / demos / docs

  • New test modules (analysis, connectors, exporters, new-language extraction, extended CLI, extended MCP server). Full suite: 124 passing.
  • Demos 06–11 (polyglot extraction, connectors, cycles, layering & ownership, exporters, CI gate), wired into run_all.
  • New polyglot sample repo (Ruby/PHP/Kotlin/C++/Go/Python services + CODEOWNERS + layers.json); README / ARCHITECTURE / DEMOS updated.

Independent of and non-conflicting with #4.

…analysis, exporters, and a CI gate

Extraction
- Add Ruby, PHP, Kotlin, C++, and Protobuf extractors (now 12 languages),
  registered by suffix and language.
- Add a language-agnostic connector detector (gRPC / message-queue / env-var)
  wired into the indexer so publisher/subscriber and shared-env relationships
  are captured alongside symbols.

Cross-language graph
- Resolve gRPC, MQ, and env connectors into typed cross_lang_* edges in
  addition to the existing HTTP inference.

Analysis (codegraph/analysis.py)
- Dependency cycles via Tarjan SCC, layering-violation detection against a
  declared top-to-bottom spec, and a CODEOWNERS ownership overlay that flags
  cross-team dependency edges.

Exporters (codegraph/exporters.py)
- JSON-graph, GraphML (Gephi/yEd/Cytoscape), and SARIF 2.1.0 findings.

CLI
- New 'export' and 'ci' subcommands; the ci gate exits non-zero on cycles /
  layering violations / broken cross-language edges with per-check opt-outs and
  a findings threshold, optionally emitting SARIF.
- New query subcommands: connectors, cycles, layers, ownership.

MCP server
- Six new tools (list_connectors, cross_language_edges_by_kind, find_cycles,
  check_layering, ownership_overlay, broken_cross_language_edges), audited.

Tests, demos, docs
- New test modules for analysis, connectors, exporters, new-language extraction,
  extended CLI and extended MCP server; suite is 124 passing.
- Demos 06-11 covering polyglot extraction, connectors, cycles, layering &
  ownership, exporters, and the CI gate; wired into run_all.
- Polyglot sample repo (Ruby/PHP/Kotlin/C++/Go/Python services, CODEOWNERS,
  layers.json); README/ARCHITECTURE/DEMOS updated. Public API unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant