Skip to content

Collaboration network: static graph, core stats, and growth animation#3

Open
dima-yanter wants to merge 4 commits intomainfrom
claude/git-collab-network
Open

Collaboration network: static graph, core stats, and growth animation#3
dima-yanter wants to merge 4 commits intomainfrom
claude/git-collab-network

Conversation

@dima-yanter
Copy link
Copy Markdown
Owner

@dima-yanter dima-yanter commented Apr 18, 2026

Summary

Three notebooks building on the nonlinear performance model theme:

git-collaboration-network.ipynb

Static collaboration graph for any repo — PR edges (orange), temporal file-overlap edges (green), both (purple) — plus Code Archaeology heatmap.

github-core-network-stats.ipynb

Tests the JIRA hypothesis ("core is small") across the top 1000 GitHub repos: 80/20 core size, Gini coefficient, top-contributor dominance, CDF, and language breakdown.

collaboration-network-growth.ipynb (new)

Renders the full history of a project as a movie — the collaboration network grows from a single dot outward, one time period at a time:

  • GIF / MP4 via matplotlib.animation (dark background, plasma-coloured nodes, glow flash on new arrivals)
  • Interactive Plotly figure with ▶ Play button and time scrubber — runs inline in the notebook
  • Spring layout computed on the final graph so core contributors naturally cluster at the centre; peripheral contributors radiate outward
  • Node colour = join time (purple → orange on plasma); node size = cumulative PR count; edge alpha grows with age
Config Default Meaning
REPO facebook/react Any owner/repo
TIME_RESOLUTION 'Q' 'M' monthly, 'Q' quarterly, 'Y' yearly
MAX_PRS 300 More PRs = longer movie
OUTPUT_FILE collaboration_growth.gif .gif (Pillow) or .mp4 (ffmpeg)
FPS 4 Frames per second

Test plan

  • Run collaboration-network-growth.ipynb on a small repo (e.g. "pallets/flask") — GIF and Plotly figure should both render
  • Change TIME_RESOLUTION = 'M' and confirm more frames / finer granularity
  • Change OUTPUT_FILE = 'growth.mp4' with ffmpeg installed and confirm MP4 output
  • Run github-core-network-stats.ipynb with MAX_REPOS = 50 for a quick smoke test

https://claude.ai/code/session_01VAzMQrsv5yZXFmC4BxGrQ2

claude added 3 commits March 30, 2026 21:11
Fetches contributor stats from any GitHub repo via the API and runs
the same nonlinear maintenance model fitting as nonlinear-performance.ipynb.
Handles 202 retry, rate limit errors, and missing/empty repos.

https://claude.ai/code/session_01VAzMQrsv5yZXFmC4BxGrQ2
Builds a contributor collaboration network from GitHub PR and commit history,
and a code archaeology heatmap showing how deep into history a contributor
must reach to understand code areas they arrived at after others had left.

https://claude.ai/code/session_01VAzMQrsv5yZXFmC4BxGrQ2
Tests the hypothesis that the core collaboration network is very small:
fetches top 1000 GitHub repos by stars, computes 80/20 core size, Gini
coefficient, temporal core, and top-contributor dominance per repo,
then visualises aggregate distributions across the dataset.

https://claude.ai/code/session_01VAzMQrsv5yZXFmC4BxGrQ2
@dima-yanter dima-yanter changed the title Add git-collaboration-network notebook Add collaboration network + core network stats notebooks Apr 18, 2026
Renders GitHub PR collaboration history as a growing-network movie:
dark background, plasma-coloured nodes (purple=early, orange=late),
glow flash on new arrivals. Outputs a GIF/MP4 via matplotlib and an
interactive Plotly animation with play button + time scrubber.

https://claude.ai/code/session_01VAzMQrsv5yZXFmC4BxGrQ2
@dima-yanter dima-yanter changed the title Add collaboration network + core network stats notebooks Collaboration network: static graph, core stats, and growth animation Apr 18, 2026
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.

2 participants