{"adoption": {"forks": 125, "observed_at": "2026-08-28T04:03:44.547324+00:00", "stars": 1142}, "canonical_url": "https://ross.abutalabs.com/products/evoskill", "card": {"archived": false, "artifact_type": "framework", "description": "EvoSkill — An open-source framework that automatically discovers and synthesizes reusable agent skills from failed trajectories to improve coding agent performance.", "domain": ["large-language-models", "developer-tools"], "enriched": true, "function": ["agent-framework", "llm-training", "prompt-engineering", "benchmarking", "developer-tools"], "health_score": 99, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["sentient-agi/EvoSkill"], "name": "sentient-agi/EvoSkill", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2026-08-24T23:18:46+00:00", "repo": "sentient-agi/EvoSkill", "stars": 1142, "tags": ["skill-discovery", "coding-agents", "trajectory-mining", "agent-evolution", "claude-code", "opencode", "openhands", "ai-agents", "automation"], "topics": [], "urls": [], "use_cases": ["automatically generate reusable skills for coding agents from failure data", "improve Claude Code or OpenCode performance on coding benchmarks", "evolve agent prompts and skills using any LLM provider", "run benchmark evaluations of agent variants on held-out tasks", "turn a general-purpose AI agent into a domain specialist"], "what_it_is": "EvoSkill is an open-source Python framework that automatically discovers and synthesizes reusable skills from failed agent trajectories to improve coding agent performance. It extends GEPA-style feedback-driven optimization by jointly proposing skill and prompt mutations, evaluating variants on held-out data, and producing improved agent programs compatible with tools like Claude Code, Codex CLI, OpenCode, and OpenHands.", "when_to_avoid": ["you need a general agent framework for building agents from scratch rather than optimizing existing ones", "your agent is not among the supported integrations", "you cannot run evaluation benchmarks or lack trajectory/failure data"], "when_to_choose": ["you use a supported coding agent (Claude Code, OpenCode, OpenHands, Goose, etc.) and want automated skill/prompt improvement", "you have failed agent trajectories and want to mine them into reusable skills", "you want model-provider-agnostic agent optimization with benchmark-driven iteration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/evoskill", "repo": "sentient-agi/EvoSkill", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:35:16.729692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be28eac2e563bd2b87e5a81ef344279876b786c2f038d5321830d037824648b7", "fetched_at": "2026-08-28T04:03:44.547324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sentient-agi/EvoSkill"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:35:16.729692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be28eac2e563bd2b87e5a81ef344279876b786c2f038d5321830d037824648b7", "fetched_at": "2026-08-28T04:03:44.547324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sentient-agi/EvoSkill"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:35:16.729692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be28eac2e563bd2b87e5a81ef344279876b786c2f038d5321830d037824648b7", "fetched_at": "2026-08-28T04:03:44.547324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sentient-agi/EvoSkill"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:35:16.729692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be28eac2e563bd2b87e5a81ef344279876b786c2f038d5321830d037824648b7", "fetched_at": "2026-08-28T04:03:44.547324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sentient-agi/EvoSkill"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:35:16.729692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be28eac2e563bd2b87e5a81ef344279876b786c2f038d5321830d037824648b7", "fetched_at": "2026-08-28T04:03:44.547324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sentient-agi/EvoSkill"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:35:16.729692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be28eac2e563bd2b87e5a81ef344279876b786c2f038d5321830d037824648b7", "fetched_at": "2026-08-28T04:03:44.547324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sentient-agi/EvoSkill"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.547324+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:35:16.729692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be28eac2e563bd2b87e5a81ef344279876b786c2f038d5321830d037824648b7", "fetched_at": "2026-08-28T04:03:44.547324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sentient-agi/EvoSkill"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:35:16.729692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be28eac2e563bd2b87e5a81ef344279876b786c2f038d5321830d037824648b7", "fetched_at": "2026-08-28T04:03:44.547324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sentient-agi/EvoSkill"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:35:16.729692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be28eac2e563bd2b87e5a81ef344279876b786c2f038d5321830d037824648b7", "fetched_at": "2026-08-28T04:03:44.547324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sentient-agi/EvoSkill"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:35:16.729692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be28eac2e563bd2b87e5a81ef344279876b786c2f038d5321830d037824648b7", "fetched_at": "2026-08-28T04:03:44.547324+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sentient-agi/EvoSkill"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 13, "rhythm": 89}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 182, "days_push": 9, "days_rel": 78, "gap_med": 9.5, "n_releases_24m": 5}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}