Skip to content

feat: relevance ranking, evals, chronicle, embeddings, skill drift-check#1760

Open
BarrettHolien wants to merge 1 commit into
Graphify-Labs:v8from
HolienTech:feat/ranking-v2
Open

feat: relevance ranking, evals, chronicle, embeddings, skill drift-check#1760
BarrettHolien wants to merge 1 commit into
Graphify-Labs:v8from
HolienTech:feat/ranking-v2

Conversation

@BarrettHolien

Copy link
Copy Markdown

Five features grafting the strongest ideas from tobi/qmd (hybrid-search ranking) and garrytan/gbrain (evals, versioned skills, history) onto graphify's structural spine. Each is a module + CLI + tests. graphify's edge: it fuses structural signals (graph proximity, hub centrality, community) that pure-retrieval tools can't compute.

Features

  1. Relevance ranking (graphify/ranking.py) — rank query results by Reciprocal Rank Fusion over lexical + structural (proximity/centrality/community) + optional semantic backends, replacing the degree-only render order. New query flags --top-k, --explain, --semantic; also on the MCP query_graph tool.
  2. Relevance evals (graphify/evals.py) — graphify bench scores P@k / recall / MRR / nDCG against a JSONL fixture using the real ranking pipeline. --init scaffolds; --save/--replay gate regressions (exit 1).
  3. Local embeddings (graphify/embed.py) — opt-in graphify embed builds a local sidecar (Ollama nomic-embed-text with the model's search_query:/search_document: prefixes, or sentence-transformers; no API). --semantic fuses cosine similarity and seeds traversal when lexical finds nothing.
  4. Chronicle (graphify/chronicle.py) — graphify chronicle OLD NEW (or --rev via git show) diffs two graph snapshots: nodes/edges, god-nodes emerged/vanished, community shifts. API-free.
  5. Skill drift (graphify/skill_migrations.py) — graphify skill status|check-update reports installed-skill-vs-package drift (exit 1 for CI) with a migration registry.

Rebased onto current v8. Version 0.9.12 → 0.10.0 with CHANGELOG entry. Skill fragments regenerated + blessed (skillgen --check/--audit-coverage pass). New tests across all five features; full suite green apart from pre-existing ollama/gemini env-dependent failures unrelated to this change (they fail identically on unmodified v8).

Five features grafting the strongest ideas from tobi/qmd (hybrid-search ranking)
and garrytan/gbrain (evals, versioned skills, history) onto graphify's structural
spine. Each is a module + CLI + tests. graphify's edge: it fuses structural
signals (graph proximity, hub centrality, community) that pure-retrieval tools
can't compute.

1. Ranking (graphify/ranking.py): rank query results by Reciprocal Rank Fusion
   over lexical + structural + optional semantic backends, replacing the
   degree-only render order. New query flags --top-k, --explain, --semantic; also
   on the MCP query_graph tool. Shared core: serve._resolve_and_rank /
   rank_query_nodes.

2. Evals (graphify/evals.py): `graphify bench` scores P@k/recall/MRR/nDCG against
   a JSONL fixture via the real ranking pipeline. --init scaffolds, --save/
   --replay gate regressions (exit 1).

3. Embeddings (graphify/embed.py): opt-in `graphify embed` builds a local sidecar
   (Ollama nomic-embed-text with search_query:/search_document: prefixes, or
   sentence-transformers; no API). --semantic fuses cosine similarity and seeds
   traversal when lexical finds nothing.

4. Chronicle (graphify/chronicle.py): `graphify chronicle OLD NEW` (or --rev via
   `git show`) diffs two graph snapshots: nodes/edges, god-nodes emerged/vanished,
   community shifts. API-free.

5. Skill drift (graphify/skill_migrations.py): `graphify skill status|check-update`
   reports installed-skill-vs-package drift (exit 1 for CI) with a migration
   registry.

Skill fragments document the new query flags + a new analysis.md reference;
regenerated + blessed all artifacts (skillgen --check/--audit-coverage pass).
Version 0.9.12 -> 0.10.0.
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