import%20marimo%0A%0A__generated_with%20%3D%20%220.18.4%22%0Aapp%20%3D%20marimo.App()%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20%F0%9F%93%8A%20LFX%20Leaderboard%20Analysis%3A%20Beyond%20the%20Rankings%0A%0A%20%20%20%20Welcome%20to%20a%20deeper%20dive%20into%20the%20Linux%20Foundation's%20open%20source%20ecosystem.%20While%20standard%20leaderboards%20tell%20us%20*who*%20is%20on%20top%2C%20this%20analysis%20asks%20*why*%20and%20*how*.%0A%0A%20%20%20%20We%20aren't%20just%20looking%20for%20the%20biggest%20projects%3B%20we're%20looking%20for%20the%20**healthiest**%2C%20the%20**most%20efficient**%2C%20and%20the%20**hidden%20gems**%20that%20are%20powering%20the%20industry%20quietly.%0A%0A%20%20%20%20%23%23%23%20%F0%9F%8E%AF%20Our%20Mission%0A%20%20%20%20We%20will%20slice%20and%20dice%20these%20datasets%20to%20uncover%3A%0A%20%20%20%20-%20**Hidden%20Gems**%3A%20Small%20projects%20with%20massive%20corporate%20backing.%0A%20%20%20%20-%20**Burnout%20Risks**%3A%20Teams%20that%20are%20running%20hot%20but%20slowing%20down.%0A%20%20%20%20-%20**Efficiency%20Monsters**%3A%20Small%20teams%20outperforming%20armies%20of%20developers.%0A%20%20%20%20-%20**The%20%22Churn%22%20Trap**%3A%20Projects%20that%20are%20spinning%20their%20wheels%20(refactoring)%20vs.%20those%20that%20are%20actually%20growing.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Datasets%20Info%3A%0A%0A%20%20%20%20-%20**contributors**%3A%20Developers%20ranked%20by%20volume%20of%20contributions%20over%20the%20last%2012%20months%2C%20highlighting%20the%20most%20active%20and%20influential%20individuals.%0A%20%20%20%20-%20**organizations**%3A%20Most%20influential%20organizations%20based%20on%20the%20total%20number%20of%20contributions%20made%20over%20the%20last%2012%20months.%0A%20%20%20%20-%20**active-contributors**%3A%20These%20projects%20attracted%20the%20highest%20number%20of%20unique%20contributors%20over%20the%20past%2012%20months.%0A%20%20%20%20-%20**active-organizations**%3A%20These%20projects%20brought%20together%20the%20largest%20number%20of%20distinct%20contributing%20organizations%20in%20the%20past%2012%20months.%0A%20%20%20%20-%20**commit-activity**%3A%20These%20projects%20recorded%20the%20most%20commits%20during%20the%20past%2012%20months%2C%20showing%20high%20development%20momentum.%0A%20%20%20%20-%20**codebase-size**%3A%20These%20projects%20maintain%20the%20largest%20codebases%20measured%20by%20total%20source%20lines%20of%20code.%0A%20%20%20%20-%20**fastest-responders**%3A%20These%20projects%20achieve%20the%20shortest%20median%20time%20to%20first%20response%20on%20issues%20over%20the%20past%2012%20months.%0A%20%20%20%20-%20**fastest-mergers**%3A%20These%20projects%20merge%20pull%20requests%20the%20fastest%20over%20the%20past%2012%20months.%0A%20%20%20%20-%20**focused-teams**%3A%20These%20projects%20show%20the%20highest%20productivity%20per%20contributor.%0A%20%20%20%20-%20**resolution-rate**%3A%20These%20projects%20keep%20development%20flowing%2C%20with%20most%20pull%20requests%20merged%20relative%20to%20issues%20opened.%0A%20%20%20%20-%20**small-teams-massive-output**%3A%20These%20projects%20demonstrate%20exceptional%20productivity%2C%20achieving%20the%20highest%20commit%20volumes%20with%2050%20or%20fewer%20contributors.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%F0%9F%93%82%20The%20Data%20Landscape%0A%0A%20%20%20%20We%20have%20access%20to%20a%20rich%20set%20of%20metrics.%20Here's%20what%20we're%20working%20with%3A%0A%0A%20%20%20%20-%20**People%20Power**%3A%20%60contributors%60%2C%20%60active-contributors%60%2C%20%60focused-teams%60%20(productivity%20per%20person).%0A%20%20%20%20-%20**Corporate%20Clout**%3A%20%60organizations%60%2C%20%60active-organizations%60%20(who%20is%20paying%20the%20bills%3F).%0A%20%20%20%20-%20**Velocity%20%26%20Health**%3A%20%60commit-activity%60%2C%20%60fastest-responders%60%2C%20%60fastest-mergers%60%2C%20%60resolution-rate%60.%0A%20%20%20%20-%20**Scale**%3A%20%60codebase-size%60.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%201.%20%F0%9F%A7%B9%20Data%20Loading%20%26%20Prep%0A%20%20%20%20First%2C%20let's%20load%20the%20raw%20JSON%20data%20into%20Pandas.%20We'll%20normalize%20project%20names%20so%20we%20can%20join%20these%20different%20datasets%20together.%20Think%20of%20this%20as%20assembling%20our%20%22Project%20360%22%20view.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20json%0A%20%20%20%20import%20os%0A%0A%20%20%20%20import%20altair%20as%20alt%0A%20%20%20%20import%20pandas%20as%20pd%0A%0A%20%20%20%20dataset_path%20%3D%20%22datasets%22%0A%20%20%20%20files%20%3D%20%5Bf%20for%20f%20in%20os.listdir(dataset_path)%20if%20f.endswith(%22_full.json%22)%5D%0A%0A%20%20%20%20dfs%20%3D%20%7B%7D%0A%20%20%20%20for%20file%20in%20files%3A%0A%20%20%20%20%20%20%20%20key%20%3D%20file.replace(%22_full.json%22%2C%20%22%22)%0A%20%20%20%20%20%20%20%20with%20open(os.path.join(dataset_path%2C%20file)%2C%20%22r%22)%20as%20f%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20data%20%3D%20json.load(f)%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20The%20data%20is%20a%20list%20of%20dictionaries%0A%20%20%20%20%20%20%20%20%20%20%20%20dfs%5Bkey%5D%20%3D%20pd.DataFrame(data)%0A%20%20%20%20%20%20%20%20%20%20%20%20print(f%22Loaded%20%7Bkey%7D%20with%20%7Blen(dfs%5Bkey%5D)%7D%20records%22)%0A%20%20%20%20return%20alt%2C%20dfs%2C%20json%2C%20os%2C%20pd%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%202.%20%F0%9F%9A%80%20Efficiency%3A%20David%20vs.%20Goliath%0A%0A%20%20%20%20**Question%3A**%20Do%20you%20need%20a%20massive%20army%20to%20move%20fast%3F%0A%0A%20%20%20%20We're%20calculating%20the%20**Commits%20per%20Contributor**%20ratio.%0A%20%20%20%20-%20**High%20Ratio**%3A%20A%20small%2C%20elite%20team%20(or%20highly%20automated%20bots)%20doing%20massive%20work.%0A%20%20%20%20-%20**Low%20Ratio**%3A%20A%20large%20community%20where%20each%20person%20contributes%20a%20little%20(the%20%22Bazaar%22%20model).%0A%0A%20%20%20%20*Note%3A%20The%20%60focused-teams%60%20dataset%20is%20the%20official%20leaderboard%20for%20this%20metric.%20We%20will%20calculate%20it%20manually%20here%20to%20verify%20and%20visualize%20the%20distribution.*%0A%0A%20%20%20%20*Let's%20see%20who%20the%20%22Special%20Forces%22%20of%20open%20source%20are.*%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(alt%2C%20dfs%2C%20pd)%3A%0A%20%20%20%20%23%20Merge%20active-contributors%20and%20commit-activity%20on%20project%20name%2Fslug%0A%20%20%20%20if%20%22active-contributors%22%20in%20dfs%20and%20%22commit-activity%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20_ac_df%20%3D%20dfs%5B%22active-contributors%22%5D%5B%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22active_contributors%22%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20_ca_df%20%3D%20dfs%5B%22commit-activity%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22commits%22%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20merged_df%20%3D%20pd.merge(_ac_df%2C%20_ca_df%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22)%0A%20%20%20%20%20%20%20%20merged_df%5B%22commits_per_contributor%22%5D%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_df%5B%22commits%22%5D%20%2F%20merged_df%5B%22active_contributors%22%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20top_efficient%20%3D%20merged_df.sort_values(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22commits_per_contributor%22%2C%20ascending%3DFalse%0A%20%20%20%20%20%20%20%20).head(10)%0A%0A%20%20%20%20%20%20%20%20print(%22Top%2010%20Most%20Efficient%20Projects%20(Commits%20per%20Contributor)%3A%22)%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20top_efficient%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22commits%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22commits_per_contributor%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20chart1%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20alt.Chart(merged_df)%0A%20%20%20%20%20%20%20%20%20%20%20%20.mark_circle()%0A%20%20%20%20%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scale%3Dalt.Scale(type%3D%22log%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Active%20Contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(%22commits%22%2C%20scale%3Dalt.Scale(type%3D%22log%22)%2C%20title%3D%22Commits%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20size%3Dalt.Size(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22commits_per_contributor%22%2C%20title%3D%22Commits%20per%20Contributor%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22commits%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22commits_per_contributor%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20.properties(title%3D%22Active%20Contributors%20vs.%20Commit%20Activity%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20.interactive()%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print(%22Required%20datasets%20not%20found.%22)%0A%20%20%20%20%20%20%20%20chart1%20%3D%20None%0A%20%20%20%20chart1%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%203.%20%E2%8F%B1%EF%B8%8F%20The%20%22Triage%20Trap%22%3A%20Speed%20vs.%20Quality%0A%0A%20%20%20%20**Hypothesis%3A**%20If%20a%20project%20responds%20instantly%20to%20issues%2C%20they%20probably%20fix%20them%20faster%20too%2C%20right%3F%0A%0A%20%20%20%20We're%20correlating%20**Response%20Time**%20(how%20fast%20they%20say%20%22Hello%22)%20with%20**Resolution%20Rate**%20(how%20often%20they%20actually%20close%20the%20issue).%0A%0A%20%20%20%20*Spoiler%20Alert%3A%20We%20found%20a%20correlation%20of%20**0.03**.%20That's%20basically%20zero.%20Fast%20bots%20saying%20%22Thanks%20for%20your%20issue!%22%20doesn't%20mean%20the%20bug%20gets%20fixed.*%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(alt%2C%20dfs%2C%20pd)%3A%0A%20%20%20%20if%20%22fastest-responders%22%20in%20dfs%20and%20%22resolution-rate%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20fr_df%20%3D%20dfs%5B%22fastest-responders%22%5D%5B%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22response_time_hours%22%7D%0A%20%20%20%20%20%20%20%20)%20%20%23%20Assuming%20hours%20or%20similar%20unit%0A%0A%20%20%20%20%20%20%20%20rr_df%20%3D%20dfs%5B%22resolution-rate%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22resolution_rate%22%7D%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20merged_rr_fr%20%3D%20pd.merge(fr_df%2C%20rr_df%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22)%0A%0A%20%20%20%20%20%20%20%20correlation%20%3D%20merged_rr_fr%5B%22response_time_hours%22%5D.corr(%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_rr_fr%5B%22resolution_rate%22%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20f%22Correlation%20between%20Response%20Time%20and%20Resolution%20Rate%3A%20%7Bcorrelation%3A.2f%7D%22%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20base%20%3D%20alt.Chart(merged_rr_fr).encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(%22response_time_hours%22%2C%20title%3D%22Response%20Time%20(Hours)%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(%22resolution_rate%22%2C%20title%3D%22Resolution%20Rate%22)%2C%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20points%20%3D%20base.mark_circle().encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%22name%22%2C%20%22response_time_hours%22%2C%20%22resolution_rate%22%5D%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20line%20%3D%20base.transform_regression(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22response_time_hours%22%2C%20%22resolution_rate%22%0A%20%20%20%20%20%20%20%20).mark_line(color%3D%22red%22)%0A%0A%20%20%20%20%20%20%20%20chart2%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20(points%20%2B%20line)%0A%20%20%20%20%20%20%20%20%20%20%20%20.properties(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3Df%22Response%20Time%20vs.%20Resolution%20Rate%20(Correlation%3A%20%7Bcorrelation%3A.2f%7D)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20.interactive()%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print(%22Required%20datasets%20not%20found.%22)%0A%20%20%20%20%20%20%20%20chart2%20%3D%20None%0A%20%20%20%20chart2%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%204.%20%F0%9F%8F%97%EF%B8%8F%20Growth%20vs.%20Maintenance%0A%0A%20%20%20%20**Question%3A**%20Is%20the%20project%20building%20a%20skyscraper%20or%20just%20painting%20the%20walls%3F%0A%0A%20%20%20%20We%20compare%20**Commit%20Activity**%20against%20**Codebase%20Size**.%0A%20%20%20%20-%20**High%20Commits%20%2B%20Low%20Size**%3A%20High%20Maintenance%2FRefactoring.%20The%20team%20is%20working%20hard%20to%20keep%20things%20running%20or%20cleaning%20up%20technical%20debt.%0A%20%20%20%20-%20**High%20Commits%20%2B%20High%20Size**%3A%20Massive%20expansion.%0A%0A%20%20%20%20*Projects%20like%20**Model%20Context%20Protocol%20(MCP)**%20appeared%20here%20with%20huge%20activity%20but%20small%20size-classic%20signs%20of%20a%20new%2C%20rapidly%20iterating%20standard%20or%20heavy%20refactoring.*%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(alt%2C%20dfs%2C%20pd)%3A%0A%20%20%20%20if%20%22codebase-size%22%20in%20dfs%20and%20%22commit-activity%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20cs_df%20%3D%20dfs%5B%22codebase-size%22%5D%5B%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22codebase_size%22%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20_ca_df%20%3D%20dfs%5B%22commit-activity%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22commits%22%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20merged_cs_ca%20%3D%20pd.merge(cs_df%2C%20_ca_df%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22)%0A%0A%20%20%20%20%20%20%20%20chart3%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20alt.Chart(merged_cs_ca)%0A%20%20%20%20%20%20%20%20%20%20%20%20.mark_circle()%0A%20%20%20%20%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(%22commits%22%2C%20scale%3Dalt.Scale(type%3D%22log%22)%2C%20title%3D%22Commits%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22codebase_size%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scale%3Dalt.Scale(type%3D%22log%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Codebase%20Size%20(LOC)%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%22name%22%2C%20%22commits%22%2C%20%22codebase_size%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20.properties(title%3D%22Commit%20Activity%20vs.%20Codebase%20Size%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20.interactive()%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20merged_cs_ca%5B%22maintenance_ratio%22%5D%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_cs_ca%5B%22commits%22%5D%20%2F%20merged_cs_ca%5B%22codebase_size%22%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20top_maintenance%20%3D%20merged_cs_ca.sort_values(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22maintenance_ratio%22%2C%20ascending%3DFalse%0A%20%20%20%20%20%20%20%20).head(10)%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Top%2010%20High%20Maintenance%2FRefactoring%20Projects%20(Commits%20per%20Line%20of%20Code)%3A%22%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20top_maintenance%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22name%22%2C%20%22commits%22%2C%20%22codebase_size%22%2C%20%22maintenance_ratio%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20)%20%20%23%20Identify%20high%20maintenance%20projects%20(High%20commits%2C%20low%20size)%0A%20%20%20%20else%3A%20%20%23%20We%20can%20define%20a%20ratio%3A%20commits%20%2F%20codebase_size%0A%20%20%20%20%20%20%20%20print(%22Required%20datasets%20not%20found.%22)%0A%20%20%20%20%20%20%20%20chart3%20%3D%20None%0A%20%20%20%20chart3%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%205.%20%F0%9F%92%8E%20Finding%20%22Hidden%20Gems%22%20(Corporate%20Darlings)%0A%0A%20%20%20%20**Question%3A**%20Which%20projects%20have%20huge%20corporate%20buy-in%20but%20relatively%20small%20contributor%20circles%3F%0A%0A%20%20%20%20We%20look%20for%20a%20high%20**Organizational%20Diversity%20Ratio**%20(Organizations%20%2F%20Contributors).%0A%20%20%20%20-%20**High%20Ratio**%3A%20Many%20companies%20care%20about%20this%2C%20but%20few%20people%20write%20the%20code.%20These%20are%20often%20critical%20infrastructure%20libraries%20(like%20**Numcodecs**%20or%20**ko**).%0A%20%20%20%20-%20**Low%20Ratio**%3A%20A%20massive%20community%20project%20(like%20Kubernetes)%20where%20the%20contributor%20count%20dwarfs%20the%20org%20count.%0A%0A%20%20%20%20*These%20%22Hidden%20Gems%22%20are%20often%20the%20safest%20bets%20for%20enterprise%20adoption-stable%2C%20backed%20by%20many%2C%20but%20not%20chaotic.*%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(alt%2C%20dfs%2C%20pd)%3A%0A%20%20%20%20if%20%22active-organizations%22%20in%20dfs%20and%20%22active-contributors%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20ao_df%20%3D%20dfs%5B%22active-organizations%22%5D%5B%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22active_organizations%22%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20_ac_df%20%3D%20dfs%5B%22active-contributors%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22active_contributors%22%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20merged_org_cont%20%3D%20pd.merge(ao_df%2C%20_ac_df%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22)%0A%20%20%20%20%20%20%20%20merged_org_cont%5B%22org_diversity_ratio%22%5D%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_org_cont%5B%22active_organizations%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%20merged_org_cont%5B%22active_contributors%22%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20filtered_org_cont%20%3D%20merged_org_cont%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_org_cont%5B%22active_contributors%22%5D%20%3E%2050%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20top_diversity%20%3D%20filtered_org_cont.sort_values(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22org_diversity_ratio%22%2C%20ascending%3DFalse%0A%20%20%20%20%20%20%20%20).head(10)%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Top%2010%20Projects%20with%20High%20Organizational%20Diversity%20(Orgs%20per%20Contributor)%3A%22%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20top_diversity%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_organizations%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22org_diversity_ratio%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20)%20%20%23%20Filter%20for%20projects%20with%20at%20least%20a%20decent%20number%20of%20contributors%20to%20avoid%20noise%0A%0A%20%20%20%20%20%20%20%20chart4%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20alt.Chart(filtered_org_cont)%0A%20%20%20%20%20%20%20%20%20%20%20%20.mark_circle()%0A%20%20%20%20%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scale%3Dalt.Scale(type%3D%22log%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Active%20Contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_organizations%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scale%3Dalt.Scale(type%3D%22log%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Active%20Organizations%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20size%3Dalt.Size(%22org_diversity_ratio%22%2C%20title%3D%22Diversity%20Ratio%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_organizations%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22org_diversity_ratio%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20.properties(title%3D%22Active%20Contributors%20vs.%20Active%20Organizations%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20.interactive()%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print(%22Required%20datasets%20not%20found.%22)%0A%20%20%20%20%20%20%20%20chart4%20%3D%20None%0A%20%20%20%20chart4%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%206.%20%F0%9F%9A%8C%20The%20%22Bus%20Factor%22%20Watchlist%3A%20Small%20Teams%2C%20Massive%20Output%0A%0A%20%20%20%20**Question%3A**%20Which%20projects%20are%20punching%20way%20above%20their%20weight%20(and%20thus%20have%20the%20highest%20%22Bus%20Factor%22%20risk)%3F%0A%0A%20%20%20%20We%20are%20looking%20at%20the%20**Small%20Teams%2C%20Massive%20Output**%20dataset.%0A%20%20%20%20-%20These%20projects%20have%20**%3C%3D%2050%20contributors**%20but%20are%20generating%20massive%20commit%20volumes.%0A%20%20%20%20-%20**Risk**%3A%20High%20output%20from%20a%20small%20group%20means%20if%20one%20key%20person%20leaves%2C%20the%20project%20could%20stall.%0A%0A%20%20%20%20*These%20are%20the%20%22David%22%20projects%20of%20the%20ecosystem.%20Impressive%2C%20but%20fragile.*%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(alt%2C%20dfs)%3A%0A%20%20%20%20if%20%22small-teams-massive-output%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20st_df%20%3D%20dfs%5B%22small-teams-massive-output%22%5D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%2C%20%22collectionsSlugs%22%5D%0A%20%20%20%20%20%20%20%20%5D.rename(columns%3D%7B%22value%22%3A%20%22commits%22%7D)%0A%0A%20%20%20%20%20%20%20%20%23%20We%20don't%20have%20exact%20contributor%20counts%20for%20all%20of%20these%20in%20this%20dataset%2C%0A%20%20%20%20%20%20%20%20%23%20but%20we%20know%20they%20are%20%3C%3D%2050.%0A%20%20%20%20%20%20%20%20%23%20Let's%20visualize%20the%20top%2015%20by%20commit%20volume.%0A%0A%20%20%20%20%20%20%20%20top_small_teams%20%3D%20st_df.sort_values(%22commits%22%2C%20ascending%3DFalse).head(15)%0A%0A%20%20%20%20%20%20%20%20print(%22Top%2015%20Small%20Teams%20(%3C%3D50%20Contributors)%20with%20Massive%20Output%3A%22)%0A%20%20%20%20%20%20%20%20print(top_small_teams%5B%5B%22name%22%2C%20%22commits%22%5D%5D)%0A%0A%20%20%20%20%20%20%20%20chart5%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20alt.Chart(top_small_teams)%0A%20%20%20%20%20%20%20%20%20%20%20%20.mark_bar()%0A%20%20%20%20%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(%22commits%22%2C%20title%3D%22Commit%20Volume%20(Last%2012%20Months)%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(%22name%22%2C%20sort%3D%22-x%22%2C%20title%3D%22Project%20Name%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%22name%22%2C%20%22commits%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20color%3Dalt.Color(%22commits%22%2C%20scale%3Dalt.Scale(scheme%3D%22viridis%22))%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20.properties(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Small%20Teams%2C%20Massive%20Output%3A%20The%20'Bus%20Factor'%20Watchlist%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20.interactive()%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print(%22Required%20datasets%20not%20found.%22)%0A%20%20%20%20%20%20%20%20chart5%20%3D%20None%0A%20%20%20%20chart5%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%207.%20%F0%9F%94%A5%20Burnout%20Risk%3A%20The%20%22Red%20Alert%22%20List%0A%0A%20%20%20%20**Question%3A**%20Who%20is%20running%20out%20of%20steam%3F%0A%0A%20%20%20%20We%20looked%20at%20projects%20with%20**High%20Productivity%20Scores**%20(the%20%60focused-teams%60%20dataset)%20that%20have%20seen%20a%20**massive%20drop%20in%20momentum**%20(commits%20plummeting%20compared%20to%20the%20previous%20period).%0A%0A%20%20%20%20*We%20found%20alarming%20drops%20in%20projects%20like%20**Islet**%20and%20**CheriBSD**%20(%3E97%25%20drop).%20These%20teams%20were%20running%20hot%20(high%20productivity)%20but%20are%20now%20stalling.%20If%20you%20depend%20on%20these%2C%20check%20on%20them.*%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(alt%2C%20dfs%2C%20pd)%3A%0A%20%20%20%20if%20%22focused-teams%22%20in%20dfs%20and%20%22commit-activity%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20_ft_df_burnout%20%3D%20dfs%5B%22focused-teams%22%5D%5B%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22productivity_score%22%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20_ca_df_burnout%20%3D%20dfs%5B%22commit-activity%22%5D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%22slug%22%2C%20%22value%22%2C%20%22previousPeriodValue%22%5D%0A%20%20%20%20%20%20%20%20%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22commits%22%2C%20%22previousPeriodValue%22%3A%20%22prev_commits%22%7D%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20_merged_burnout%20%3D%20pd.merge(%0A%20%20%20%20%20%20%20%20%20%20%20%20_ft_df_burnout%2C%20_ca_df_burnout%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%23%20Calculate%20Momentum%20(Percentage%20Change)%0A%20%20%20%20%20%20%20%20%23%20Handle%20division%20by%20zero%0A%20%20%20%20%20%20%20%20_merged_burnout%5B%22momentum%22%5D%20%3D%20_merged_burnout.apply(%0A%20%20%20%20%20%20%20%20%20%20%20%20lambda%20row%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(row%5B%22commits%22%5D%20-%20row%5B%22prev_commits%22%5D)%20%2F%20row%5B%22prev_commits%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20row%5B%22prev_commits%22%5D%20%3E%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%200%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20axis%3D1%2C%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%23%20Filter%20for%20projects%20with%20negative%20momentum%20(slowing%20down)%0A%20%20%20%20%20%20%20%20%23%20We%20focus%20on%20projects%20that%20have%20at%20least%20some%20significant%20activity%20to%20avoid%20noise%0A%20%20%20%20%20%20%20%20_declining_projects%20%3D%20_merged_burnout%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20(_merged_burnout%5B%22momentum%22%5D%20%3C%20-0.1)%0A%20%20%20%20%20%20%20%20%20%20%20%20%26%20(_merged_burnout%5B%22commits%22%5D%20%3E%20100)%0A%20%20%20%20%20%20%20%20%5D.sort_values(%22momentum%22%2C%20ascending%3DTrue)%0A%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Top%2010%20'Focused%20Team'%20Projects%20with%20Dropping%20Momentum%20(Burnout%20Risk%3F)%3A%22%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20_declining_projects%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22productivity_score%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22commits%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22prev_commits%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22momentum%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D.head(10)%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20chart6%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20alt.Chart(_merged_burnout)%0A%20%20%20%20%20%20%20%20%20%20%20%20.mark_circle()%0A%20%20%20%20%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22productivity_score%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scale%3Dalt.Scale(type%3D%22log%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Productivity%20Score%20(Commits%2FContributor)%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(%22momentum%22%2C%20title%3D%22Momentum%20(Activity%20Change)%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20color%3Dalt.condition(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.datum.momentum%20%3C%200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.value(%22red%22)%2C%20%20%23%20Red%20for%20negative%20momentum%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.value(%22green%22)%2C%20%20%23%20Green%20for%20positive%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22productivity_score%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22commits%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22prev_commits%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(%22momentum%22%2C%20format%3D%22.1%25%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20.properties(title%3D%22Project%20Momentum%20vs.%20Productivity%20Score%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20.interactive()%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%23%20Add%20a%20horizontal%20line%20at%200%20momentum%0A%20%20%20%20%20%20%20%20rule%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20alt.Chart(pd.DataFrame(%7B%22y%22%3A%20%5B0%5D%7D))%0A%20%20%20%20%20%20%20%20%20%20%20%20.mark_rule(color%3D%22black%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20.encode(y%3D%22y%22)%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20chart6%20%3D%20chart6%20%2B%20rule%0A%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print(%22Required%20datasets%20not%20found.%22)%0A%20%20%20%20%20%20%20%20chart6%20%3D%20None%0A%20%20%20%20chart6%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%208.%20%F0%9F%93%9A%20Libraries%20vs.%20Apps%3A%20The%20%22Free%20Rider%22%20Problem%0A%0A%20%20%20%20**Question%3A**%20Is%20a%20low%20contributor%20count%20always%20bad%3F%0A%0A%20%20%20%20We%20segmented%20our%20%22Hidden%20Gems%22%20into%20**Libraries**%20and%20**Apps**.%0A%20%20%20%20-%20**Libraries%20(e.g.%2C%20Resolve%2C%20MarkupSafe)**%3A%20High%20corporate%20use%20%2B%20low%20contributors%20%3D%20**Healthy**.%20Stable%20APIs%20don't%20need%20a%20thousand%20cooks%20in%20the%20kitchen.%0A%20%20%20%20-%20**Apps%20(e.g.%2C%20E4S)**%3A%20High%20corporate%20use%20%2B%20low%20contributors%20%3D%20**Warning**.%20Companies%20are%20using%20the%20app%20but%20not%20giving%20back.%0A%0A%20%20%20%20*This%20distinction%20saves%20us%20from%20flagging%20a%20perfectly%20healthy%20library%20as%20%22stagnant%22.*%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(alt%2C%20dfs%2C%20pd)%3A%0A%20%20%20%20if%20%22active-organizations%22%20in%20dfs%20and%20%22active-contributors%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20_ao_df_seg%20%3D%20dfs%5B%22active-organizations%22%5D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%2C%20%22collectionsSlugs%22%5D%0A%20%20%20%20%20%20%20%20%5D.rename(columns%3D%7B%22value%22%3A%20%22active_organizations%22%7D)%0A%20%20%20%20%20%20%20%20_ac_df_seg%20%3D%20dfs%5B%22active-contributors%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22active_contributors%22%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20_merged_seg%20%3D%20pd.merge(_ao_df_seg%2C%20_ac_df_seg%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22)%0A%20%20%20%20%20%20%20%20_merged_seg%5B%22org_diversity_ratio%22%5D%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20_merged_seg%5B%22active_organizations%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%20_merged_seg%5B%22active_contributors%22%5D%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%23%20Simple%20classifier%20function%0A%20%20%20%20%20%20%20%20def%20classify_project(row)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20slugs%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%20%22.join(row%5B%22collectionsSlugs%22%5D).lower()%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20isinstance(row%5B%22collectionsSlugs%22%5D%2C%20list)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20name%20%3D%20row%5B%22name%22%5D.lower()%0A%20%20%20%20%20%20%20%20%20%20%20%20text%20%3D%20slugs%20%2B%20%22%20%22%20%2B%20name%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20library_keywords%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22library%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sdk%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22framework%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22toolkit%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22plugin%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22module%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22api%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22standard%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22spec%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22protocol%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22connector%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22driver%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20app_keywords%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22platform%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22application%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22server%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22client%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22dashboard%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22system%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22database%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22service%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22desktop%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22mobile%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22app%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20is_lib%20%3D%20any(k%20in%20text%20for%20k%20in%20library_keywords)%0A%20%20%20%20%20%20%20%20%20%20%20%20is_app%20%3D%20any(k%20in%20text%20for%20k%20in%20app_keywords)%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20is_lib%20and%20not%20is_app%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%22Library%2FTool%22%0A%20%20%20%20%20%20%20%20%20%20%20%20elif%20is_app%20and%20not%20is_lib%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%22End-User%20App%22%0A%20%20%20%20%20%20%20%20%20%20%20%20elif%20is_lib%20and%20is_app%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%22Hybrid%2FPlatform%22%20%20%23%20e.g.%20a%20platform%20that%20also%20has%20an%20SDK%0A%20%20%20%20%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%22Unclassified%22%0A%0A%20%20%20%20%20%20%20%20_merged_seg%5B%22type%22%5D%20%3D%20_merged_seg.apply(classify_project%2C%20axis%3D1)%0A%0A%20%20%20%20%20%20%20%20%23%20Filter%20for%20high%20diversity%20ratio%20(%3E%200.5)%20and%20reasonable%20org%20count%20(%3E%205)%0A%20%20%20%20%20%20%20%20_hidden_gems%20%3D%20_merged_seg%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20(_merged_seg%5B%22org_diversity_ratio%22%5D%20%3E%200.5)%0A%20%20%20%20%20%20%20%20%20%20%20%20%26%20(_merged_seg%5B%22active_organizations%22%5D%20%3E%205)%0A%20%20%20%20%20%20%20%20%5D.copy()%0A%0A%20%20%20%20%20%20%20%20print(%22Top%20'Hidden%20Gems'%20Segmented%20by%20Type%3A%22)%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20_hidden_gems%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_organizations%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22org_diversity_ratio%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20.sort_values(%22org_diversity_ratio%22%2C%20ascending%3DFalse)%0A%20%20%20%20%20%20%20%20%20%20%20%20.head(15)%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20chart7%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20alt.Chart(_hidden_gems)%0A%20%20%20%20%20%20%20%20%20%20%20%20.mark_circle()%0A%20%20%20%20%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scale%3Dalt.Scale(type%3D%22log%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Active%20Contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_organizations%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scale%3Dalt.Scale(type%3D%22log%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Active%20Organizations%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20color%3D%22type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20size%3D%22org_diversity_ratio%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_organizations%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22active_contributors%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22org_diversity_ratio%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20.properties(title%3D%22Hidden%20Gems%20Segmentation%3A%20Libraries%20vs.%20Apps%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20.interactive()%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print(%22Required%20datasets%20not%20found.%22)%0A%20%20%20%20%20%20%20%20chart7%20%3D%20None%0A%20%20%20%20chart7%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%209.%20%F0%9F%94%84%20The%20%22Churn%22%20Trap%3A%20Motion%20vs.%20Progress%0A%0A%20%20%20%20**Question%3A**%20Are%20they%20building%20new%20features%20or%20just%20rewriting%20the%20same%20code%20forever%3F%0A%0A%20%20%20%20We%20calculated%20a%20**Churn%20Ratio**%3A%20Commits%20per%20Net%20Line%20of%20Code%20Change.%0A%20%20%20%20-%20**Low%20Ratio%20(~1.0)**%3A%20Every%20commit%20adds%20value%20(Growth).%0A%20%20%20%20-%20**High%20Ratio%20(%3E100)**%3A%20Hundreds%20of%20commits%20to%20change%205%20lines%20of%20code.%0A%0A%20%20%20%20*We%20found%20**Model%20Context%20Protocol%20(MCP)**%20and%20**EVerest**%20with%20ratios%20%3E%202000.%20This%20indicates%20massive%20refactoring%2C%20stabilization%2C%20or%20non-code%20work.%20They%20are%20spinning%20their%20wheels%20(or%20polishing%20the%20engine)%20rather%20than%20driving%20forward.*%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(alt%2C%20dfs%2C%20pd)%3A%0A%20%20%20%20if%20%22codebase-size%22%20in%20dfs%20and%20%22commit-activity%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20_cs_df_churn%20%3D%20dfs%5B%22codebase-size%22%5D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%2C%20%22previousPeriodValue%22%5D%0A%20%20%20%20%20%20%20%20%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22current_loc%22%2C%20%22previousPeriodValue%22%3A%20%22prev_loc%22%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20_ca_df_churn%20%3D%20dfs%5B%22commit-activity%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22commits%22%7D%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20_merged_churn%20%3D%20pd.merge(%0A%20%20%20%20%20%20%20%20%20%20%20%20_cs_df_churn%2C%20_ca_df_churn%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%23%20Calculate%20Net%20Line%20Change%0A%20%20%20%20%20%20%20%20_merged_churn%5B%22net_line_change%22%5D%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20_merged_churn%5B%22current_loc%22%5D%20-%20_merged_churn%5B%22prev_loc%22%5D%0A%20%20%20%20%20%20%20%20).abs()%0A%0A%20%20%20%20%20%20%20%20%23%20Avoid%20division%20by%20zero%0A%20%20%20%20%20%20%20%20_merged_churn%5B%22churn_ratio_proxy%22%5D%20%3D%20_merged_churn.apply(%0A%20%20%20%20%20%20%20%20%20%20%20%20lambda%20row%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20row%5B%22commits%22%5D%20%2F%20row%5B%22net_line_change%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20row%5B%22net_line_change%22%5D%20%3E%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20row%5B%22commits%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%20%20%23%20If%200%20change%2C%20ratio%20is%20infinite%20(just%20use%20commits%20as%20score)%0A%20%20%20%20%20%20%20%20%20%20%20%20axis%3D1%2C%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%23%20Filter%20for%20significant%20activity%0A%20%20%20%20%20%20%20%20_high_churn%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20_merged_churn%5B_merged_churn%5B%22commits%22%5D%20%3E%20100%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20.sort_values(%22churn_ratio_proxy%22%2C%20ascending%3DFalse)%0A%20%20%20%20%20%20%20%20%20%20%20%20.head(10)%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20print(%22Top%2010%20Projects%20with%20High%20Churn%20(Refactoring%2FInstability%3F)%3A%22)%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20_high_churn%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22name%22%2C%20%22commits%22%2C%20%22net_line_change%22%2C%20%22churn_ratio_proxy%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20chart8%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20alt.Chart(_merged_churn%5B_merged_churn%5B%22commits%22%5D%20%3E%20100%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20.mark_circle()%0A%20%20%20%20%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22net_line_change%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scale%3Dalt.Scale(type%3D%22log%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Net%20Line%20Change%20(Growth)%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22commits%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scale%3Dalt.Scale(type%3D%22log%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Commits%20(Activity)%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20color%3Dalt.Color(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22churn_ratio_proxy%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scale%3Dalt.Scale(scheme%3D%22viridis%22%2C%20reverse%3DTrue)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Churn%20Proxy%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22commits%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22net_line_change%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22churn_ratio_proxy%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20.properties(title%3D%22Activity%20vs.%20Growth%20(Churn%20Analysis)%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20.interactive()%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print(%22Required%20datasets%20not%20found.%22)%0A%20%20%20%20%20%20%20%20chart8%20%3D%20None%0A%20%20%20%20chart8%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%2010.%20%F0%9F%93%A6%20Generating%20a%20Complete%20Report%20Data%20for%20Data%20Story%0A%0A%20%20%20%20**Purpose%3A**%20Export%20all%20our%20analysis%20insights%20into%20a%20structured%20JSON%20format.%0A%0A%20%20%20%20We're%20consolidating%20all%20the%20metrics%20we've%20calculated%20into%20a%20single%20%60report_data.json%60%20file%20that%20can%20power%20interactive%20data%20stories%20and%20visualizations.%0A%0A%20%20%20%20This%20includes%3A%0A%20%20%20%20-%20**Efficiency%20Rankings**%3A%20Commits%20per%20contributor%20for%20all%20projects.%0A%20%20%20%20-%20**Response%20vs.%20Resolution**%3A%20Correlation%20data%20showing%20the%20disconnect%20between%20speed%20and%20quality.%0A%20%20%20%20-%20**Growth%20vs.%20Maintenance**%3A%20Projects%20categorized%20by%20their%20development%20patterns.%0A%20%20%20%20-%20**Hidden%20Gems**%3A%20High%20organizational%20diversity%20projects.%0A%20%20%20%20-%20**Bus%20Factor%20Watchlist**%3A%20Small%20teams%20with%20massive%20output.%0A%20%20%20%20-%20**Burnout%20Risk%20Indicators**%3A%20Projects%20with%20declining%20momentum.%0A%20%20%20%20-%20**Churn%20Analysis**%3A%20Motion%20vs.%20progress%20metrics.%0A%20%20%20%20-%20**Library%20vs.%20App%20Segmentation**%3A%20Categorized%20project%20types.%0A%0A%20%20%20%20*This%20JSON%20export%20enables%20downstream%20dashboards%20and%20data%20journalism%20pieces.*%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(dfs%2C%20pd)%3A%0A%20%20%20%20def%20generate_report()%3A%0A%20%20%20%20%20%20%20%20report_data%20%3D%20%7B%7D%0A%0A%20%20%20%20%20%20%20%20%23%201.%20Efficiency%20data%20(matches%20Section%202%3A%20David%20vs.%20Goliath)%0A%20%20%20%20%20%20%20%20if%20%22active-contributors%22%20in%20dfs%20and%20%22commit-activity%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20_ac_df%20%3D%20dfs%5B%22active-contributors%22%5D%5B%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22active_contributors%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_ca_df%20%3D%20dfs%5B%22commit-activity%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22commits%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_df%20%3D%20pd.merge(_ac_df%2C%20_ca_df%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_df%5B%22commits_per_contributor%22%5D%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20merged_df%5B%22commits%22%5D%20%2F%20merged_df%5B%22active_contributors%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22efficiency%22%5D%20%3D%20merged_df.nlargest(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2050%2C%20%22commits_per_contributor%22%0A%20%20%20%20%20%20%20%20%20%20%20%20).to_dict(orient%3D%22records%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22efficiency_all%22%5D%20%3D%20merged_df.to_dict(orient%3D%22records%22)%0A%0A%20%20%20%20%20%20%20%20%23%202.%20Response%20vs%20Resolution%20(matches%20Section%203%3A%20The%20%22Triage%20Trap%22)%0A%20%20%20%20%20%20%20%20if%20%22fastest-responders%22%20in%20dfs%20and%20%22resolution-rate%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20fr_df%20%3D%20dfs%5B%22fastest-responders%22%5D%5B%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22response_time_hours%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20rr_df%20%3D%20dfs%5B%22resolution-rate%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22resolution_rate%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_rr_fr%20%3D%20pd.merge(fr_df%2C%20rr_df%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22response_resolution%22%5D%20%3D%20merged_rr_fr.to_dict(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20orient%3D%22records%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22correlation%22%5D%20%3D%20float(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20merged_rr_fr%5B%22response_time_hours%22%5D.corr(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20merged_rr_fr%5B%22resolution_rate%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%23%203.%20Growth%20vs%20Maintenance%20(matches%20Section%204%3A%20Growth%20vs.%20Maintenance)%0A%20%20%20%20%20%20%20%20if%20%22codebase-size%22%20in%20dfs%20and%20%22commit-activity%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20cs_df%20%3D%20dfs%5B%22codebase-size%22%5D%5B%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22codebase_size%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_ca_df%20%3D%20dfs%5B%22commit-activity%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22commits%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_cs_ca%20%3D%20pd.merge(cs_df%2C%20_ca_df%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_cs_ca%5B%22maintenance_ratio%22%5D%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20merged_cs_ca%5B%22commits%22%5D%20%2F%20merged_cs_ca%5B%22codebase_size%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22growth_maintenance%22%5D%20%3D%20merged_cs_ca.to_dict(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20orient%3D%22records%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22top_maintenance%22%5D%20%3D%20merged_cs_ca.nlargest(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2015%2C%20%22maintenance_ratio%22%0A%20%20%20%20%20%20%20%20%20%20%20%20).to_dict(orient%3D%22records%22)%0A%0A%20%20%20%20%20%20%20%20%23%204.%20Hidden%20Gems%20(matches%20Section%205%3A%20Finding%20%22Hidden%20Gems%22)%0A%20%20%20%20%20%20%20%20if%20%22active-organizations%22%20in%20dfs%20and%20%22active-contributors%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20ao_df%20%3D%20dfs%5B%22active-organizations%22%5D%5B%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22active_organizations%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_ac_df%20%3D%20dfs%5B%22active-contributors%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22active_contributors%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_org_cont%20%3D%20pd.merge(ao_df%2C%20_ac_df%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20merged_org_cont%5B%22org_diversity_ratio%22%5D%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20merged_org_cont%5B%22active_organizations%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%20merged_org_cont%5B%22active_contributors%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20filtered_org_cont%20%3D%20merged_org_cont%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20merged_org_cont%5B%22active_contributors%22%5D%20%3E%2050%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22hidden_gems%22%5D%20%3D%20filtered_org_cont.nlargest(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2020%2C%20%22org_diversity_ratio%22%0A%20%20%20%20%20%20%20%20%20%20%20%20).to_dict(orient%3D%22records%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22org_diversity_all%22%5D%20%3D%20filtered_org_cont.to_dict(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20orient%3D%22records%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%23%205.%20Bus%20Factor%20(matches%20Section%206%3A%20Small%20Teams%2C%20Massive%20Output)%0A%20%20%20%20%20%20%20%20if%20%22small-teams-massive-output%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20st_df%20%3D%20dfs%5B%22small-teams-massive-output%22%5D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%2C%20%22collectionsSlugs%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D.rename(columns%3D%7B%22value%22%3A%20%22commits%22%7D)%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22bus_factor%22%5D%20%3D%20st_df.nlargest(20%2C%20%22commits%22).to_dict(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20orient%3D%22records%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%23%206.%20Burnout%20Risk%20(matches%20Section%207%3A%20The%20%22Red%20Alert%22%20List)%0A%20%20%20%20%20%20%20%20if%20%22focused-teams%22%20in%20dfs%20and%20%22commit-activity%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20_ft_df_burnout%20%3D%20dfs%5B%22focused-teams%22%5D%5B%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22productivity_score%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_ca_df_burnout%20%3D%20dfs%5B%22commit-activity%22%5D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22slug%22%2C%20%22value%22%2C%20%22previousPeriodValue%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22commits%22%2C%20%22previousPeriodValue%22%3A%20%22prev_commits%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_merged_burnout%20%3D%20pd.merge(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_ft_df_burnout%2C%20_ca_df_burnout%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_merged_burnout%5B%22momentum%22%5D%20%3D%20_merged_burnout.apply(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20lambda%20row%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(row%5B%22commits%22%5D%20-%20row%5B%22prev_commits%22%5D)%20%2F%20row%5B%22prev_commits%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20row%5B%22prev_commits%22%5D%20%3E%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20axis%3D1%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_declining_projects%20%3D%20_merged_burnout%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(_merged_burnout%5B%22momentum%22%5D%20%3C%20-0.1)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%20(_merged_burnout%5B%22commits%22%5D%20%3E%20100)%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D.nsmallest(15%2C%20%22momentum%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22burnout_risk%22%5D%20%3D%20_declining_projects.to_dict(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20orient%3D%22records%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22burnout_all%22%5D%20%3D%20_merged_burnout.to_dict(orient%3D%22records%22)%0A%0A%20%20%20%20%20%20%20%20%23%207.%20Churn%20Analysis%20(matches%20Section%209%3A%20The%20%22Churn%22%20Trap)%0A%20%20%20%20%20%20%20%20if%20%22codebase-size%22%20in%20dfs%20and%20%22commit-activity%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20_cs_df_churn%20%3D%20dfs%5B%22codebase-size%22%5D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%2C%20%22previousPeriodValue%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22current_loc%22%2C%20%22previousPeriodValue%22%3A%20%22prev_loc%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_ca_df_churn%20%3D%20dfs%5B%22commit-activity%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22commits%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_merged_churn%20%3D%20pd.merge(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_cs_df_churn%2C%20_ca_df_churn%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_merged_churn%5B%22net_line_change%22%5D%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_merged_churn%5B%22current_loc%22%5D%20-%20_merged_churn%5B%22prev_loc%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20).abs()%0A%20%20%20%20%20%20%20%20%20%20%20%20_merged_churn%5B%22churn_ratio_proxy%22%5D%20%3D%20_merged_churn.apply(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20lambda%20row%3A%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20row%5B%22commits%22%5D%20%2F%20row%5B%22net_line_change%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20row%5B%22net_line_change%22%5D%20%3E%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20row%5B%22commits%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20axis%3D1%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_churn_filtered%20%3D%20_merged_churn%5B_merged_churn%5B%22commits%22%5D%20%3E%20100%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22churn_high%22%5D%20%3D%20_churn_filtered.nlargest(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2015%2C%20%22churn_ratio_proxy%22%0A%20%20%20%20%20%20%20%20%20%20%20%20).to_dict(orient%3D%22records%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22churn_all%22%5D%20%3D%20_churn_filtered.to_dict(orient%3D%22records%22)%0A%0A%20%20%20%20%20%20%20%20%23%208.%20Libraries%20vs%20Apps%20segmentation%20(matches%20Section%208)%0A%20%20%20%20%20%20%20%20if%20%22active-organizations%22%20in%20dfs%20and%20%22active-contributors%22%20in%20dfs%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20_ao_df_seg%20%3D%20dfs%5B%22active-organizations%22%5D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%22name%22%2C%20%22slug%22%2C%20%22value%22%2C%20%22collectionsSlugs%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D.rename(columns%3D%7B%22value%22%3A%20%22active_organizations%22%7D)%0A%20%20%20%20%20%20%20%20%20%20%20%20_ac_df_seg%20%3D%20dfs%5B%22active-contributors%22%5D%5B%5B%22slug%22%2C%20%22value%22%5D%5D.rename(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20columns%3D%7B%22value%22%3A%20%22active_contributors%22%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20_merged_seg%20%3D%20pd.merge(_ao_df_seg%2C%20_ac_df_seg%2C%20on%3D%22slug%22%2C%20how%3D%22inner%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20_merged_seg%5B%22org_diversity_ratio%22%5D%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_merged_seg%5B%22active_organizations%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%20_merged_seg%5B%22active_contributors%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20def%20classify_project(row)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20slugs%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%20%22.join(row%5B%22collectionsSlugs%22%5D).lower()%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20isinstance(row%5B%22collectionsSlugs%22%5D%2C%20list)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%20%3D%20row%5B%22name%22%5D.lower()%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%20%3D%20slugs%20%2B%20%22%20%22%20%2B%20name%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20library_keywords%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22library%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22sdk%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22framework%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22toolkit%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22plugin%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22module%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22api%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22standard%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22spec%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22protocol%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22connector%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22driver%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20app_keywords%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22platform%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22application%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22server%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22client%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22dashboard%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22system%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22database%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22service%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22desktop%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22mobile%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22app%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20is_lib%20%3D%20any(k%20in%20text%20for%20k%20in%20library_keywords)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20is_app%20%3D%20any(k%20in%20text%20for%20k%20in%20app_keywords)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20is_lib%20and%20not%20is_app%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%22Library%2FTool%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20elif%20is_app%20and%20not%20is_lib%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%22End-User%20App%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20elif%20is_lib%20and%20is_app%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%22Hybrid%2FPlatform%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%22Unclassified%22%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20_merged_seg%5B%22type%22%5D%20%3D%20_merged_seg.apply(classify_project%2C%20axis%3D1)%0A%20%20%20%20%20%20%20%20%20%20%20%20_hidden_gems%20%3D%20_merged_seg%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(_merged_seg%5B%22org_diversity_ratio%22%5D%20%3E%200.5)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%20(_merged_seg%5B%22active_organizations%22%5D%20%3E%205)%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D.copy()%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20_hidden_gems%5B%22collectionsSlugs%22%5D%20%3D%20_hidden_gems%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22collectionsSlugs%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D.apply(lambda%20x%3A%20%22%2C%20%22.join(x)%20if%20isinstance(x%2C%20list)%20else%20str(x))%0A%20%20%20%20%20%20%20%20%20%20%20%20report_data%5B%22segmented_gems%22%5D%20%3D%20_hidden_gems.nlargest(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2030%2C%20%22org_diversity_ratio%22%0A%20%20%20%20%20%20%20%20%20%20%20%20).to_dict(orient%3D%22records%22)%0A%0A%20%20%20%20%20%20%20%20return%20report_data%0A%20%20%20%20return%20(generate_report%2C)%0A%0A%0A%40app.cell%0Adef%20_(generate_report%2C%20json%2C%20os)%3A%0A%20%20%20%20os.makedirs(%22datastory%2F%22%2C%20exist_ok%3DTrue)%0A%0A%20%20%20%20%23%20Save%20to%20JSON%20file%0A%20%20%20%20report_data%20%3D%20generate_report()%0A%20%20%20%20with%20open(%22datastory%2Freport_data.json%22%2C%20%22w%22)%20as%20_f%3A%0A%20%20%20%20%20%20%20%20json.dump(report_data%2C%20_f)%0A%0A%20%20%20%20print(f%22Exported%20%7Blen(report_data)%7D%20datasets%20to%20datastory%2Freport_data.json%22)%0A%20%20%20%20print(%22Keys%3A%22%2C%20list(report_data.keys()))%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Conclusion%0A%0A%20%20%20%20%23%23%23%20Key%20Findings%3A%0A%0A%20%20%20%201.%20%20**Contributor%20Efficiency**%3A%20Projects%20like%20**CBT%20Tape**%2C%20**Mushroom%20Observer**%2C%20and%20**SmokeDetector**%20show%20incredibly%20high%20commits%20per%20contributor%20ratios.%20This%20suggests%20highly%20automated%20workflows%20or%20extremely%20prolific%20core%20maintainers.%0A%20%20%20%202.%20%20**Response%20Time%20vs.%20Resolution%20Rate**%3A%20There%20is%20**no%20significant%20correlation%20(0.03)**%20between%20how%20fast%20a%20project%20responds%20to%20an%20issue%20and%20its%20resolution%20rate.%20Faster%20response%20doesn't%20guarantee%20a%20fix.%0A%20%20%20%203.%20%20**Codebase%20Growth%20vs.%20Activity**%3A%20Projects%20like%20**Model%20Context%20Protocol%20(MCP)**%20and%20**EVerest**%20show%20massive%20commit%20activity%20relative%20to%20their%20codebase%20size%2C%20indicating%20intense%20development%2C%20refactoring%2C%20or%20a%20repository%20structure%20where%20commits%20don't%20always%20equal%20lines%20of%20code%20(e.g.%2C%20configuration%2C%20documentation%20updates).%0A%20%20%20%204.%20%20**Organizational%20Diversity**%3A%20**ko**%2C%20**Infection**%2C%20and%20**Numcodecs**%20stand%20out%20as%20projects%20with%20high%20organizational%20diversity%20relative%20to%20their%20contributor%20count%2C%20suggesting%20broad%20industry%20adoption%20and%20support.%0A%20%20%20%205.%20%20**Bus%20Factor%20Watchlist**%3A%20Projects%20like%20**Mushroom%20Observer**%20and%20**SOAJS**%20are%20the%20%22Davids%22%20of%20the%20ecosystem%E2%80%94generating%20over%2020%2C000%20commits%20with%20%3C%3D%2050%20contributors.%20They%20are%20impressive%20but%20carry%20higher%20risk%20if%20key%20maintainers%20leave.%0A%20%20%20%206.%20%20**Burnout%20Risk**%3A%20We%20identified%20projects%20like%20**Islet**%20and%20**CheriBSD**%20that%20had%20high%20productivity%20scores%20but%20are%20now%20experiencing%20a%20%3E97%25%20drop%20in%20commit%20activity.%20These%20teams%20may%20be%20facing%20burnout%20or%20resource%20constraints.%0A%20%20%20%207.%20%20**Hidden%20Gems%20Segmentation**%3A%20We%20distinguished%20between%20healthy%20Libraries%20like%20**Resolve**%20and%20**MarkupSafe**%20(high%20corporate%20use%2C%20focused%20team)%20versus%20Apps%20like%20**E4S**%20that%20might%20need%20more%20community%20support.%0A%20%20%20%208.%20%20**Churn%20Analysis**%3A%20**Model%20Context%20Protocol%20(MCP)**%20and%20**EVerest**%20show%20extremely%20high%20churn%20ratios%20(%3E2000%20commits%20per%20net%20line%20change)%2C%20indicating%20heavy%20refactoring%20or%20stabilization%20phases%20rather%20than%20pure%20feature%20growth.%0A%0A%20%20%20%20%23%23%23%20%F0%9F%8F%81%20Final%20Verdict%0A%0A%20%20%20%20We've%20gone%20beyond%20the%20vanity%20metrics.%20Here%20is%20the%20pulse%20of%20the%20ecosystem%3A%0A%0A%20%20%20%201.%20%20**Don't%20trust%20the%20%22Fastest%20Responders%22**%3A%20Speed%20does%20not%20equal%20quality%20(0.03%20correlation).%0A%20%20%20%202.%20%20**Watch%20out%20for%20Burnout**%3A%20**Islet**%20and%20**CheriBSD**%20are%20flashing%20red%20warning%20lights.%0A%20%20%20%203.%20%20**Respect%20the%20Libraries**%3A%20**MarkupSafe**%20and%20**Resolve**%20are%20quiet%20pillars%20of%20the%20industry.%0A%20%20%20%204.%20%20**Question%20the%20Activity**%3A%20**MCP**%20is%20churning%20hard-is%20it%20stabilizing%20or%20stuck%3F%0A%0A%20%20%20%20*Data%20doesn't%20lie%2C%20but%20it%20does%20whisper.%20You%20just%20have%20to%20listen%20closely.*%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
b5d550366d8b9baad75b98c77fb26525