Evaluate Agent Framework
Score OSS agent framework → invest? Steps 2-3 novel: survival rate + supersession. Tier → INVEST / EVALUATE-FURTHER / CONTRIBUTE-CAUTIOUSLY / AVOID. Calibrate effort pre-commit.
Use When
Adopt framework prod? → check
Dep risk on framework → assess
Send eng effort to ext proj? → decide
Build-vs-adopt cmp → rank
Post-release / post-gov-change / post-acq re-eval
In
Req : framework_url — GitHub repo URL
Opt :
comparison_frameworks — alt framework URLs, bench
use_case — intended use (e.g., "multi-agent orchestration", "tool-use pipelines") → arch fit
contribution_budget — planned eng hrs → tier calib
Do
Step 1: Census
Size, activity, landscape → before deeper probe.
Read README.md, CONTRIBUTING.md, LICENSE, arch docs (docs/, ARCHITECTURE.md)
Quant metrics:
Stars/forks/issues/PRs → gh repo view <repo> --json stargazerCount,forkCount,issues,pullRequests
Dependents → GitHub "Used by" or gh api repos/<owner>/<repo>/dependents
Release cadence → gh release list --limit 10 — freq + semver?
Bus factor → top 5 contribs last 12mo by commit. Top >60% → crit low
Landscape:
Pioneer : first mover → defines cat (high infl, high supersession risk to followers)
Fast-follower : <6mo post-pioneer → iterate
Late entrant : post-stabilization → cmp on feat/gov
comparison_frameworks given → same metrics each alt
→ Census tbl: stars, forks, deps, cadence, bus factor, landscape (+cmps).
If err: private/rate-limited → manual README. No metrics (self-hosted GitLab) → note gap, qual only.
Step 2: Community Health
Welcome/support/retain externals?
External survival rate :
Last 50 closed PRs → gh pr list --state closed --limit 50 --json author,mergedAt,closedAt,labels
Author internal (org) vs external
survival_rate = merged_external_PRs / total_external_PRs
Healthy >50%; concern <30%
Responsiveness:
Issue first-response : median issue-open → first maintainer comment
PR merge latency : median ext PR open → merge
Healthy <7d resp, <30d merge; concern >30d resp
Contributor diversity:
Ext/int ratio last 6mo
Unique externals w/ >=2 merged PRs (repeat → healthy eco)
Gov artifacts:
CONTRIBUTING.md exists + actionable (not just "submit a PR")
CODE_OF_CONDUCT.md exists
Gov docs → decision process
Issue/PR templates guide contribs
→ Scorecard: survival, resp times, diversity, gov checklist.
If err: PR data thin (<20 closed) → note sample, weight others. Non-GitHub → adapt queries to platform API.
Step 3: Supersession Risk
Ext contribs → obsoleted by internal dev? Biggest risk.
Sample last 50-100 merged ext PRs (or all if fewer)
Each merged ext PR, later:
Reverted : explicit revert ref PR
Rewritten : same file/module changed <90d by internal
Obsoleted : feat removed/replaced next release
supersession_rate = (reverted + rewritten + obsoleted) / total_merged_external
Roadmap vs ext-active areas:
High overlap → high supersession (int builds over ext)
Low overlap → lower risk (ext fill gaps int won't)
"Contrib traps": look friendly, scheduled for int rewrite
Bench: NemoClaw → 71% ext PRs superseded <6mo. Calib pt.
→ Supersession % + breakdown (reverted/rewritten/obsoleted). Roadmap overlap.
If err: shallow/squash-merged (attrib lost) → est by ext PR paths vs files changed next releases. Lower confidence.
Step 4: Architecture Alignment
Arch supports use case w/o lock-in?
Extension pts:
Plugin API → documented?
Config surface → customize no-fork?
Hook/callback → intercept behavior?
Lock-in:
Rewrite cost : migrate-away est (d/wk/mo)
Data portability : export std fmt?
Std compliance : agentskills.io, MCP, A2A vs proprietary?
API stability:
Breaking changes/major (CHANGELOG, migration guides)
Deprecation policy (advance warn)
Semver compliance (breaking → major only)
Use case fit:
use_case given → arch natural fit?
Arch mismatches → workarounds req?
Interop:
agentskills.io compat (skill model)
MCP (tool integration)
A2A (agent-to-agent)
→ Arch report: ext pts, lock-in (low/med/high), API stability, use-case fit.
If err: sparse docs → derive from code + public API. Too young for stability hist → note, weight gov more.
Step 5: Governance + Sustainability
Gov model → long-term viable? Fair to externals?
Gov model:
BDFL : single decider → fast, bus factor risk
Committee/Core team : distributed → slower, resilient
Foundation-backed : Apache, Linux Foundation, CNCF → most sustainable
Corporate-controlled : one co → rug-pull risk
Funding:
VC, corp, grants, community, unfunded
Full-time maintainers >=2 healthy; 0 red flag
Revenue → how sustain?
Contributor protections:
License: permissive (MIT, Apache-2.0) vs copyleft (GPL) vs custom
CLA → rights transfer that disadvantage?
Recog → credited in releases/changelogs/docs?
Security:
SECURITY.md or equiv
Median CVE → patch time
Dep update (Dependabot, Renovate, manual)
Trajectory:
Gov evolving (→ foundation)?
Recent leadership/acq/relicense?
Public maintainer-contributor conflicts?
→ Gov assess: model, sustainability (sustainable/at-risk/critical), protections, security.
If err: gov undocumented → absence = yellow flag. Check implicit: who merges, who closes, who releases.
Step 6: Classify
Synth → 4-tier + justifications + recs.
Score each (1-5):
Community health : survival, resp, diversity
Supersession risk : rate, roadmap, traps (invert: low better)
Arch alignment : ext pts, lock-in, stability, fit
Gov sustainability : model, funding, protections, sec
Thresholds:
INVEST (all >=4): healthy, low supersession (<20%), aligned, sustainable gov → safe adopt + contrib
EVALUATE-FURTHER (mixed, none <2): mixed signals → specific follow-ups, re-eval date
CONTRIBUTE-CAUTIOUSLY (any 2, none <2): high supersession (>40%) or gov concerns → limit to requested work, maintainer-approved scope, plugin/ext decoupled from core
AVOID (any 1): crit red flags — abandoned, hostile (<15% survival), bad license, rug-pull → no eng effort
Write report:
Tier + 1-sentence rationale up front
Each dim score + evidence
contribution_budget given → how alloc hrs per tier
EVALUATE-FURTHER → specific Qs + timeline
CONTRIBUTE-CAUTIOUSLY → safe (plugins, docs, tests) vs risky (core)
comparison_frameworks evaluated → cmp matrix, rank all
→ Classification report: tier, scores, evidence, actionable recs.
If err: data gaps block confident call → default EVALUATE-FURTHER, doc missing data + how to get. Never default INVEST when unsure.
Chk
Census: stars, forks, deps, cadence, bus factor, landscape
Community: survival, resp times, diversity, gov artifacts
Supersession: rate + breakdown (reverted/rewritten/obsoleted)
Arch: ext pts, lock-in, API stability, fit
Gov: model, funding, protections, security
Tier: INVEST / EVALUATE-FURTHER / CONTRIBUTE-CAUTIOUSLY / AVOID
Each score → specific evidence
Recs actionable + calib to budget (if given)
Data gaps + confidence limits doc'd
Traps
Popularity ≠ health : 50k stars + 1 maintainer < 2k stars + 15 active contribs. SPoF.
Skip supersession : most common ext-contrib failure. Welcoming community worthless if int overwrites ext.
Arch-only, ignore gov : pretty design fails w/ unsustainable or hostile gov.
EVALUATE-FURTHER ≠ AVOID : mixed = investigate, not reject. Set re-eval date + specific Qs.
Snapshot bias : metrics point-in-time. Declining proj w/ great current > improving proj w/ mediocre. Check 6-12mo trend.
CLA complacency : some CLAs transfer copyright → your work = their asset. Read text, not checkbox.
Single-framework anchor : no cmp → anything looks great/terrible. Bench at least 1 alt, even informal.
See
1 --- 2 name: evaluate-agent-framework-10 3 description: Assess an open-source agent framework for investment readiness by evaluating community health, supersession risk, architecture alignment, and governance sustainability. Produces a four-tier classification (INVEST / EVALUATE-FURTHER / CONTRIBUTE-CAUTIOUSLY / AVOID) to guide resource allocation decisions before committing engineering effort. 4 license: MIT 5 --- 6 7 # Evaluate Agent Framework 8 9 Score OSS agent framework → invest? Steps 2-3 novel: survival rate + supersession. Tier → INVEST / EVALUATE-FURTHER / CONTRIBUTE-CAUTIOUSLY / AVOID. Calibrate effort pre-commit. 10 11 ## Use When 12 13 - Adopt framework prod? → check 14 - Dep risk on framework → assess 15 - Send eng effort to ext proj? → decide 16 - Build-vs-adopt cmp → rank 17 - Post-release / post-gov-change / post-acq re-eval 18 19 ## In 20 21 - **Req**: `framework_url` — GitHub repo URL 22 - **Opt**: 23 - `comparison_frameworks` — alt framework URLs, bench 24 - `use_case` — intended use (e.g., "multi-agent orchestration", "tool-use pipelines") → arch fit 25 - `contribution_budget` — planned eng hrs → tier calib 26 27 ## Do 28 29 ### Step 1: Census 30 31 Size, activity, landscape → before deeper probe. 32 33 1. Read `README.md`, `CONTRIBUTING.md`, `LICENSE`, arch docs (`docs/`, `ARCHITECTURE.md`) 34 2. Quant metrics: 35 - Stars/forks/issues/PRs → `gh repo view <repo> --json stargazerCount,forkCount,issues,pullRequests` 36 - Dependents → GitHub "Used by" or `gh api repos/<owner>/<repo>/dependents` 37 - Release cadence → `gh release list --limit 10` — freq + semver? 38 3. Bus factor → top 5 contribs last 12mo by commit. Top >60% → crit low 39 4. Landscape: 40 - **Pioneer**: first mover → defines cat (high infl, high supersession risk to followers) 41 - **Fast-follower**: <6mo post-pioneer → iterate 42 - **Late entrant**: post-stabilization → cmp on feat/gov 43 5. `comparison_frameworks` given → same metrics each alt 44 45 → Census tbl: stars, forks, deps, cadence, bus factor, landscape (+cmps). 46 47 If err: private/rate-limited → manual README. No metrics (self-hosted GitLab) → note gap, qual only. 48 49 ### Step 2: Community Health 50 51 Welcome/support/retain externals? 52 53 1. **External survival rate**: 54 - Last 50 closed PRs → `gh pr list --state closed --limit 50 --json author,mergedAt,closedAt,labels` 55 - Author internal (org) vs external 56 - `survival_rate = merged_external_PRs / total_external_PRs` 57 - Healthy >50%; concern <30% 58 2. Responsiveness: 59 - **Issue first-response**: median issue-open → first maintainer comment 60 - **PR merge latency**: median ext PR open → merge 61 - Healthy <7d resp, <30d merge; concern >30d resp 62 3. Contributor diversity: 63 - Ext/int ratio last 6mo 64 - Unique externals w/ >=2 merged PRs (repeat → healthy eco) 65 4. Gov artifacts: 66 - `CONTRIBUTING.md` exists + actionable (not just "submit a PR") 67 - `CODE_OF_CONDUCT.md` exists 68 - Gov docs → decision process 69 - Issue/PR templates guide contribs 70 71 → Scorecard: survival, resp times, diversity, gov checklist. 72 73 If err: PR data thin (<20 closed) → note sample, weight others. Non-GitHub → adapt queries to platform API. 74 75 ### Step 3: Supersession Risk 76 77 Ext contribs → obsoleted by internal dev? Biggest risk. 78 79 1. Sample last 50-100 merged ext PRs (or all if fewer) 80 2. Each merged ext PR, later: 81 - **Reverted**: explicit revert ref PR 82 - **Rewritten**: same file/module changed <90d by internal 83 - **Obsoleted**: feat removed/replaced next release 84 3. `supersession_rate = (reverted + rewritten + obsoleted) / total_merged_external` 85 4. Roadmap vs ext-active areas: 86 - High overlap → high supersession (int builds over ext) 87 - Low overlap → lower risk (ext fill gaps int won't) 88 5. "Contrib traps": look friendly, scheduled for int rewrite 89 6. Bench: NemoClaw → 71% ext PRs superseded <6mo. Calib pt. 90 91 → Supersession % + breakdown (reverted/rewritten/obsoleted). Roadmap overlap. 92 93 If err: shallow/squash-merged (attrib lost) → est by ext PR paths vs files changed next releases. Lower confidence. 94 95 ### Step 4: Architecture Alignment 96 97 Arch supports use case w/o lock-in? 98 99 1. Extension pts: 100 - Plugin API → documented? 101 - Config surface → customize no-fork? 102 - Hook/callback → intercept behavior? 103 2. Lock-in: 104 - **Rewrite cost**: migrate-away est (d/wk/mo) 105 - **Data portability**: export std fmt? 106 - **Std compliance**: agentskills.io, MCP, A2A vs proprietary? 107 3. API stability: 108 - Breaking changes/major (CHANGELOG, migration guides) 109 - Deprecation policy (advance warn) 110 - Semver compliance (breaking → major only) 111 4. Use case fit: 112 - `use_case` given → arch natural fit? 113 - Arch mismatches → workarounds req? 114 5. Interop: 115 - agentskills.io compat (skill model) 116 - MCP (tool integration) 117 - A2A (agent-to-agent) 118 119 → Arch report: ext pts, lock-in (low/med/high), API stability, use-case fit. 120 121 If err: sparse docs → derive from code + public API. Too young for stability hist → note, weight gov more. 122 123 ### Step 5: Governance + Sustainability 124 125 Gov model → long-term viable? Fair to externals? 126 127 1. Gov model: 128 - **BDFL**: single decider → fast, bus factor risk 129 - **Committee/Core team**: distributed → slower, resilient 130 - **Foundation-backed**: Apache, Linux Foundation, CNCF → most sustainable 131 - **Corporate-controlled**: one co → rug-pull risk 132 2. Funding: 133 - VC, corp, grants, community, unfunded 134 - Full-time maintainers >=2 healthy; 0 red flag 135 - Revenue → how sustain? 136 3. Contributor protections: 137 - License: permissive (MIT, Apache-2.0) vs copyleft (GPL) vs custom 138 - CLA → rights transfer that disadvantage? 139 - Recog → credited in releases/changelogs/docs? 140 4. Security: 141 - `SECURITY.md` or equiv 142 - Median CVE → patch time 143 - Dep update (Dependabot, Renovate, manual) 144 5. Trajectory: 145 - Gov evolving (→ foundation)? 146 - Recent leadership/acq/relicense? 147 - Public maintainer-contributor conflicts? 148 149 → Gov assess: model, sustainability (sustainable/at-risk/critical), protections, security. 150 151 If err: gov undocumented → absence = yellow flag. Check implicit: who merges, who closes, who releases. 152 153 ### Step 6: Classify 154 155 Synth → 4-tier + justifications + recs. 156 157 1. Score each (1-5): 158 - **Community health**: survival, resp, diversity 159 - **Supersession risk**: rate, roadmap, traps (invert: low better) 160 - **Arch alignment**: ext pts, lock-in, stability, fit 161 - **Gov sustainability**: model, funding, protections, sec 162 2. Thresholds: 163 - **INVEST** (all >=4): healthy, low supersession (<20%), aligned, sustainable gov → safe adopt + contrib 164 - **EVALUATE-FURTHER** (mixed, none <2): mixed signals → specific follow-ups, re-eval date 165 - **CONTRIBUTE-CAUTIOUSLY** (any 2, none <2): high supersession (>40%) or gov concerns → limit to requested work, maintainer-approved scope, plugin/ext decoupled from core 166 - **AVOID** (any 1): crit red flags — abandoned, hostile (<15% survival), bad license, rug-pull → no eng effort 167 3. Write report: 168 - Tier + 1-sentence rationale up front 169 - Each dim score + evidence 170 - `contribution_budget` given → how alloc hrs per tier 171 - EVALUATE-FURTHER → specific Qs + timeline 172 - CONTRIBUTE-CAUTIOUSLY → safe (plugins, docs, tests) vs risky (core) 173 4. `comparison_frameworks` evaluated → cmp matrix, rank all 174 175 → Classification report: tier, scores, evidence, actionable recs. 176 177 If err: data gaps block confident call → default EVALUATE-FURTHER, doc missing data + how to get. Never default INVEST when unsure. 178 179 ## Chk 180 181 - [ ] Census: stars, forks, deps, cadence, bus factor, landscape 182 - [ ] Community: survival, resp times, diversity, gov artifacts 183 - [ ] Supersession: rate + breakdown (reverted/rewritten/obsoleted) 184 - [ ] Arch: ext pts, lock-in, API stability, fit 185 - [ ] Gov: model, funding, protections, security 186 - [ ] Tier: INVEST / EVALUATE-FURTHER / CONTRIBUTE-CAUTIOUSLY / AVOID 187 - [ ] Each score → specific evidence 188 - [ ] Recs actionable + calib to budget (if given) 189 - [ ] Data gaps + confidence limits doc'd 190 191 ## Traps 192 193 - **Popularity ≠ health**: 50k stars + 1 maintainer < 2k stars + 15 active contribs. SPoF. 194 - **Skip supersession**: most common ext-contrib failure. Welcoming community worthless if int overwrites ext. 195 - **Arch-only, ignore gov**: pretty design fails w/ unsustainable or hostile gov. 196 - **EVALUATE-FURTHER ≠ AVOID**: mixed = investigate, not reject. Set re-eval date + specific Qs. 197 - **Snapshot bias**: metrics point-in-time. Declining proj w/ great current > improving proj w/ mediocre. Check 6-12mo trend. 198 - **CLA complacency**: some CLAs transfer copyright → your work = their asset. Read text, not checkbox. 199 - **Single-framework anchor**: no cmp → anything looks great/terrible. Bench at least 1 alt, even informal. 200 201 ## See 202 203 - [polish-claw-project](../polish-claw-project/SKILL.md) — contrib workflow this informs 204 - [review-software-architecture](../review-software-architecture/SKILL.md) — Step 4 arch eval 205 - [forage-solutions](../forage-solutions/SKILL.md) — alt framework discovery for cmp 206 - [search-prior-art](../search-prior-art/SKILL.md) — landscape + prior work 207 - [security-audit-codebase](../security-audit-codebase/SKILL.md) — Step 5 sec posture 208 - [assess-ip-landscape](../assess-ip-landscape/SKILL.md) — license + IP risk