GitHub author interaction network discovery. Maps cobordisms between
/plugin marketplace add plurigrid/asi/plugin install asi-skills@asi-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Maps the interactome (interaction network) of GitHub contributors across discovered repos. Finds cobordisms - shared boundaries where different research communities meet.
┌─────────────────────────────────────────────────────────────────────────────┐
│ INTERACTOME STRUCTURE │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ BlockScience ◄────── olynch ──────► ToposInstitute │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ cadCAD AlgebraicJulia poly │
│ │ │ │ │
│ └──── jpfairbanks ─┴── epatters ─────┘ │
│ │
│ HoTT/Coq-HoTT ◄─── abooij ───► mortberg/cubicaltt │
│ │ │ │
│ └────── mikeshulman ──────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Shared contributors:
epatters (Evan Patterson) - Catlab.jl, ACSets.jl, Topos Instituteolynch (Owen Lynch) - poly, ACSets.jl, Catlab.jl, Topos Institutejpfairbanks (James Fairbanks) - Catlab.jl, ACSets.jl, U Floridakris-brown - Catlab.jl, ACSets.jl, Topos Instituteslibkind (Sophie Libkind) - Catlab.jl, Stanford/ToposBridge repos:
| Repo | Stars | Role |
|---|---|---|
| AlgebraicJulia/Catlab.jl | 681 | Applied category theory framework |
| AlgebraicJulia/ACSets.jl | 25 | Algebraic databases |
| AlgebraicJulia/AlgebraicPetri.jl | - | Compositional Petri nets |
| ToposInstitute/poly | 113 | Polynomial functors |
Shared contributors:
abooij - HoTT/Coq-HoTT, mortberg/cubicalttmikeshulman (Mike Shulman) - HoTT, real cohesionandrejbauer (Andrej Bauer) - HoTT, constructive mathDanGrayson - HoTT, cubicaltt, AgdaBridge insight: HoTT contributors often work on multiple proof assistants.
Key contributors:
toumix (1213 commits) - DisCoPy coregiodefelice (354 commits) - DisCoPyy-richie-y (173 commits) - DisCoPyoxford-quantum-group - Organizational accountBridge insight: QNLP (Quantum NLP) research connects quantum computing to linguistics via categorical semantics.
Key contributors:
zdhNarsil (94 commits) - Awesome-GFlowNets curatorbengioe (Emmanuel Bengio) - GFlowNet contributorBridge insight: GFlowNets for molecular design connects to chemistry/synthesis domains.
| Author | Repos | Affiliation |
|---|---|---|
epatters | Catlab.jl (2304), ACSets.jl (101) | Topos Institute |
olynch | poly (1), Catlab.jl (138), ACSets.jl (92) | Topos Institute |
jpfairbanks | Catlab.jl (79), ACSets.jl (19) | U Florida |
kris-brown | Catlab.jl (63) | Topos Institute |
| Author | Repos | Affiliation |
|---|---|---|
Alizter | Coq-HoTT (2191) | - |
jdchristensen | Coq-HoTT (1175) | UWO |
JasonGross | Coq-HoTT (930) | MIT |
mikeshulman | Coq-HoTT (888) | - |
andrejbauer | Coq-HoTT (396) | Ljubljana |
| Author | Repos | Affiliation |
|---|---|---|
JEJodesty | cadCAD (731), cats (107) | BlockScience |
mzargham | cadCAD (3) | BlockScience founder |
markusbkoch | cadCAD (74) | - |
danlessa | cadCAD (37) | - |
| Author | Repos | Affiliation |
|---|---|---|
toumix | discopy (1213) | Oxford |
giodefelice | discopy (354) | - |
y-richie-y | discopy (173) | - |
| Author | Connects | Via |
|---|---|---|
olynch | Topos ↔ AlgebraicJulia | poly, Catlab, ACSets |
abooij | HoTT ↔ Cubical | Coq-HoTT, cubicaltt |
dspivak | Topos ↔ Poly | poly (186 commits) |
# Authors who connect multiple communities
BRIDGE_AUTHORS = {
"olynch": ["ToposInstitute/poly", "AlgebraicJulia/Catlab.jl", "AlgebraicJulia/ACSets.jl"],
"epatters": ["AlgebraicJulia/Catlab.jl", "AlgebraicJulia/ACSets.jl", "ToposInstitute/*"],
"abooij": ["HoTT/Coq-HoTT", "mortberg/cubicaltt"],
"jpfairbanks": ["AlgebraicJulia/Catlab.jl", "AlgebraicJulia/ACSets.jl"],
"mikeshulman": ["HoTT/Coq-HoTT", "HoTT/book"],
}
Cluster 1: Applied Category Theory
- AlgebraicJulia (epatters, olynch, jpfairbanks, kris-brown)
- Topos Institute (dspivak, olynch, epatters)
- DisCoPy (toumix, giodefelice)
Cluster 2: Type Theory / Foundations
- HoTT (Alizter, jdchristensen, mikeshulman)
- Cubical (mortberg, simhu, coquand)
- Rzk (fizruk)
Cluster 3: Complex Systems / Token Engineering
- BlockScience (mzargham, JEJodesty)
- cadCAD ecosystem
Cluster 4: Haskell Categorical
- connections (cmk)
- lattices (phadej)
- haskerwaul (sellout)
#!/usr/bin/env python3
"""
GitHub Interactome: Map author interactions across repos.
"""
# /// script
# requires-python = ">=3.11"
# dependencies = ["rich", "networkx"]
# ///
import subprocess
import json
from collections import defaultdict
def get_contributors(repo: str) -> list[dict]:
"""Get contributors for a repo via gh CLI."""
cmd = f"gh api repos/{repo}/contributors --jq '.[] | {{login, contributions}}'"
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
contributors = []
for line in result.stdout.strip().split('\n'):
if line:
contributors.append(json.loads(line))
return contributors
def build_interactome(repos: list[str]) -> dict:
"""Build author-repo bipartite graph."""
author_repos = defaultdict(list)
repo_authors = defaultdict(list)
for repo in repos:
contributors = get_contributors(repo)
for c in contributors:
author = c['login']
author_repos[author].append({
'repo': repo,
'contributions': c['contributions']
})
repo_authors[repo].append(author)
return {
'author_repos': dict(author_repos),
'repo_authors': dict(repo_authors),
}
def find_bridges(interactome: dict, min_repos: int = 2) -> list[dict]:
"""Find authors who contribute to multiple repos (bridges)."""
bridges = []
for author, repos in interactome['author_repos'].items():
if len(repos) >= min_repos:
bridges.append({
'author': author,
'repos': [r['repo'] for r in repos],
'total_contributions': sum(r['contributions'] for r in repos),
})
return sorted(bridges, key=lambda x: len(x['repos']), reverse=True)
def find_cobordisms(interactome: dict) -> list[dict]:
"""Find shared boundaries between repo communities."""
cobordisms = []
repos = list(interactome['repo_authors'].keys())
for i, repo_a in enumerate(repos):
for repo_b in repos[i+1:]:
shared = set(interactome['repo_authors'][repo_a]) & \
set(interactome['repo_authors'][repo_b])
if shared:
cobordisms.append({
'repos': (repo_a, repo_b),
'shared_authors': list(shared),
'strength': len(shared),
})
return sorted(cobordisms, key=lambda x: x['strength'], reverse=True)
# Build interactome
gh-interactome-build:
@echo "🕸️ Building GitHub Interactome..."
python3 interactome.py build
# Find bridge authors
gh-interactome-bridges:
@echo "🌉 Finding bridge authors..."
python3 interactome.py bridges
# Find cobordisms
gh-interactome-cobordisms:
@echo "🔗 Finding cobordisms..."
python3 interactome.py cobordisms
# Author lookup
gh-interactome-author login:
@echo "👤 Author: {{login}}"
gh api users/{{login}} --jq '{name, company, blog, bio}'
gh api users/{{login}}/repos --jq '.[].name' | head -10
The compositional systems approach connects:
┌─────────────────────────────────────────────────────────────────────────────┐
│ COMPOSITIONAL SYSTEMS COBORDISM │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ UC Riverside ──── John Baez ────► AlgebraicJulia ◄─── Topos Institute │
│ │ │ │ │ │
│ │ ▼ ▼ ▼ │
│ │ Stock & Flow Catlab.jl, ACSets poly │
│ │ Diagrams │ (Spivak) │
│ │ │ │ │ │
│ └────────────────┼───────────────────┼──────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ Compositional AlgebraicPetri.jl │
│ Epidemiology AlgebraicDynamics.jl │
│ │ │ │
│ └─────────┬─────────┘ │
│ │ │
│ ▼ │
│ BlockScience │
│ (cadCAD, Token Engineering) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
"Compositional Scientific Computing with Catlab and SemanticModels" (2020)
"Compositional Modeling with Stock and Flow Diagrams" (2022)
"AlgebraicRL.jl: Compositional Reinforcement Learning"
| Concept | AlgebraicJulia | BlockScience |
|---|---|---|
| Compositionality | Operad algebras | cadCAD nested configs |
| Open systems | Undirected wiring diagrams | State variables + policies |
| Semantics | Functors to dynamical systems | Simulation runs |
| Visualization | String diagrams | System dynamics diagrams |
| Author | AlgebraicJulia | BlockScience | Academic |
|---|---|---|---|
| John Baez | Advisor/papers | - | UC Riverside |
| Sophie Libkind | AlgebraicDynamics | - | Stanford/Topos |
| James Fairbanks | Catlab core | - | U Florida |
| Evan Patterson | Catlab lead | - | Topos |
| Michael Zargham | - | cadCAD lead | BlockScience |
Conceptual Bridge: Both communities use category theory for compositional modeling of complex systems - AlgebraicJulia in scientific computing, BlockScience in cryptoeconomics/token engineering.
gh-skill-explorer - Discovery skill that feeds into thisgalois-connections - Adjunctions between domainsacsets-algebraic-databases - ACSets patternsdiscopy - String diagramsTarget organizations for interactome mapping:
| Speaker | Handle | Organization | Interactome Target |
|---|---|---|---|
| pancake | trufae | radareorg | Core r2 ecosystem (75+ repos) |
| thestr4ng3r | thestr4ng3r | rizinorg | Rizin/Cutter fork community |
| oleavr | oleavr | frida | Dynamic instrumentation ecosystem |
| xvilka | XVilka | radareorg | UEFI, radeco, decompilation |
| cryptax | cryptax | rednaga | Android security tooling |
# Build interactome for discovered repos
just gh-interactome build
# Find bridge authors
just gh-interactome bridges
# Find cobordisms between communities
just gh-interactome cobordisms
# Show author profile
just gh-interactome author olynch
# Visualize network
just gh-interactome viz
# NEW: Map r2con speaker orgs
just gh-interactome orgs radareorg rizinorg frida