This prompt is designed for platform engineering, security, and architecture teams who need to evaluate the long-term viability of an open source dependency before adopting it or as part of a periodic supply chain health audit. The job-to-be-done is turning unstructured repository signals—commit frequency, issue resolution time, maintainer responsiveness, funding status, and community activity—into a structured sustainability score with clear adoption risk flags. The ideal user is a technical decision-maker who can provide a repository URL and needs an evidence-backed assessment, not a generic popularity metric.
Prompt
Open Source Maintainer Health Evaluation Prompt

When to Use This Prompt
Define the job, the ideal user, required inputs, and the boundaries where this prompt should not be applied.
Use this prompt when you are performing due diligence on a new dependency, comparing multiple libraries that solve the same problem, or auditing existing dependencies for abandonment risk. It requires access to live repository metadata, which means it should be wired into a tool-calling harness that can fetch data from GitHub, GitLab, or similar APIs. The prompt expects [REPOSITORY_URL] and [PACKAGE_NAME] as inputs, along with optional [ADOPTION_CONTEXT] describing how the dependency would be used in your system. The output is a structured JSON object containing a composite health score, individual dimension scores, risk flags, and a summary of evidence.
Do not use this prompt for real-time incident response, for evaluating proprietary or closed-source software, or as a substitute for a full security audit. It assesses maintainer health and community sustainability, not code quality, vulnerability presence, or license compliance—those require separate, specialized prompts. The prompt is also not suitable for repositories with fewer than 50 commits or less than six months of history, as the signal is too sparse for reliable evaluation. For high-risk production dependencies, always pair this automated assessment with human review of the flagged dimensions before making an adoption or replacement decision.
Use Case Fit
Where the Open Source Maintainer Health Evaluation Prompt works and where it introduces risk. Use these cards to decide whether this prompt fits your workflow before you integrate it.
Good Fit: Long-Term Platform Dependency Risk Assessment
Use when: your team is evaluating a new dependency for a platform service with a multi-year expected lifespan. The prompt synthesizes signals from commit frequency, issue response time, and maintainer diversity into a sustainability score. Guardrail: Always pair the prompt output with a manual review of the repository's governance model and funding sources before making a final adoption decision.
Bad Fit: Real-Time Security Alert Triage
Avoid when: you need an immediate yes/no decision on whether to patch a vulnerability. This prompt evaluates long-term health trends, not acute security events. Guardrail: Route urgent security decisions to the Security Advisory Impact Analysis Prompt or a dedicated vulnerability management workflow. Use this prompt only during scheduled dependency reviews or adoption evaluations.
Required Inputs: Repository Activity and Community Signals
What to watch: the prompt requires structured input including repository URL, recent commit history, issue response metrics, maintainer count, and funding platform status. Missing or stale data produces unreliable scores. Guardrail: Build a data-fetching harness that collects these signals from GitHub/GitLab APIs before invoking the prompt. Validate that all required fields are populated and timestamped within an acceptable recency window.
Operational Risk: False Confidence in Unmaintained Packages
What to watch: a package with recent commits may still be effectively abandoned if the sole maintainer is burned out or the commits are automated dependency bumps. The prompt can overestimate health when surface activity masks deeper rot. Guardrail: Add a manual review step for any package where the bus factor equals one, regardless of the prompt's score. Cross-reference with the Package Deprecation and Abandonment Risk Prompt for corroboration.
Operational Risk: Cultural and Language Bias in Community Signals
What to watch: the prompt may misinterpret low issue response rates or sparse community engagement as abandonment when the maintainers are active but communicate primarily in non-English forums or private channels. Guardrail: Supplement automated analysis with a human review of the repository's communication channels, including mailing lists, chat servers, and regional forums. Flag any package where language or platform barriers could skew the health score.
Integration Pattern: Scheduled Batch Assessment with Human Approval
What to watch: running this prompt ad hoc on every dependency update creates noise and decision fatigue. Guardrail: Schedule batch assessments quarterly or during architecture review cycles. Route any package scoring below a defined threshold to a human approval queue. Store historical scores to detect downward trends before they become critical failures.
Copy-Ready Prompt Template
A reusable prompt template for evaluating the health and long-term sustainability of an open source project.
This prompt template is designed to be copied directly into your prompt library or AI harness. It accepts a repository identifier and optional context about your usage to produce a structured sustainability assessment. The square-bracket placeholders are the only parts you need to replace before execution. The template is self-contained: it defines the role, the evaluation dimensions, the output schema, and the constraints the model must follow. You can adapt the [EVALUATION_DIMENSIONS] list to emphasize specific risks relevant to your organization, such as security response time or funding diversity.
textYou are an open source dependency risk analyst. Your task is to evaluate the health and long-term sustainability of an open source project based on the provided repository data. ## Repository to Evaluate [REPOSITORY_IDENTIFIER] ## Our Usage Context [DEPENDENCY_USAGE_CONTEXT] ## Evaluation Dimensions Analyze the repository across the following dimensions. For each, provide a finding, a confidence level (High, Medium, Low), and cite the specific evidence you relied on. [EVALUATION_DIMENSIONS] ## Output Schema Return a valid JSON object matching this structure exactly: { "project_name": "string", "assessment_date": "YYYY-MM-DD", "overall_sustainability_score": number (0-100), "overall_confidence": "High|Medium|Low", "dimensions": [ { "name": "string", "finding": "string", "risk_level": "Critical|High|Medium|Low", "confidence": "High|Medium|Low", "evidence": ["string"] } ], "adoption_risk_flags": [ { "flag": "string", "severity": "Critical|High|Medium|Low", "explanation": "string" } ], "recommendation": "Adopt|Adopt with Monitoring|Neutral|Avoid|Replace", "recommendation_rationale": "string", "data_quality_notes": ["string"] } ## Constraints - Base every finding on evidence present in the provided repository data. If evidence is missing for a dimension, set confidence to "Low" and note the gap in `data_quality_notes`. - Do not invent commit counts, issue resolution times, or funding amounts. If data is unavailable, state that explicitly. - If the repository appears abandoned (no commits in 12+ months, no maintainer response to issues), flag it as Critical risk regardless of other scores. - The `overall_sustainability_score` must reflect a weighted concern for bus factor, maintenance activity, and security responsiveness. - If our `[DEPENDENCY_USAGE_CONTEXT]` indicates deep integration or security-sensitive use, apply a stricter risk threshold.
To adapt this template, start by replacing [REPOSITORY_IDENTIFIER] with the GitHub owner/repo string or an internal package registry identifier. The [DEPENDENCY_USAGE_CONTEXT] should describe how your application consumes the package—for example, "core authentication middleware" or "development-only linting tool." This context is critical because it changes the risk calculus. The [EVALUATION_DIMENSIONS] placeholder should be replaced with a bulleted list of the specific factors you want assessed, such as "Maintainer bus factor," "Issue resolution time (median over last 90 days)," "Release cadence," "Security advisory history," and "Funding and sponsorship status." After running the prompt, validate the output JSON against the schema before ingesting it into your dependency risk dashboard. For high-risk dependencies, route the output to a human reviewer before accepting an "Adopt" or "Avoid" recommendation.
Prompt Variables
Required inputs for the Open Source Maintainer Health Evaluation Prompt. Each placeholder must be populated before the prompt is assembled and sent. Missing or malformed inputs will degrade the sustainability score accuracy.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[REPOSITORY_URL] | Target repository to evaluate | Must be a valid HTTPS URL. Parse with URL constructor. Reject file:// or empty strings. Null allowed if [PACKAGE_NAME] is provided instead. | |
[PACKAGE_NAME] | Package registry identifier for the dependency | lodash | Must match npm/PyPI/Maven/etc. naming rules for the target ecosystem. Required if [REPOSITORY_URL] is null. Validate against registry API if available. |
[ECOSYSTEM] | Package ecosystem for registry lookups | npm | Must be one of: npm, pypi, maven, rubygems, cargo, nuget, gomod. Enum check before prompt assembly. Required when [PACKAGE_NAME] is used. |
[EVALUATION_DATE] | Date context for time-sensitive metrics | 2025-03-15 | ISO 8601 date string. Must be parseable by Date(). Reject future dates beyond 7 days. Defaults to current date if null. |
[ADVISORY_SOURCE] | Security advisory database to query | GHSA | Must be one of: GHSA, CVE, OSV, NVD. Enum check. Multiple sources allowed as comma-separated list. Null defaults to GHSA. |
[BUS_FACTOR_THRESHOLD] | Minimum acceptable active maintainer count | 3 | Integer >= 1. Values below 2 trigger high-risk flag. Parse as int and validate range before prompt injection. |
[STALENESS_WINDOW_DAYS] | Days without activity before flagging as stale | 180 | Integer >= 30. Used to evaluate last commit, last release, and last issue response. Validate range. Null defaults to 180. |
[FUNDING_PLATFORMS] | Funding platforms to check for sustainability signals | OpenCollective, GitHub Sponsors | Comma-separated list. Must be subset of: OpenCollective, GitHub Sponsors, Tidelift, Patreon, Liberapay. Null skips funding check. |
Implementation Harness Notes
How to wire the Open Source Maintainer Health Evaluation Prompt into an application or automated review pipeline.
This prompt is designed to be called programmatically as part of a dependency risk assessment pipeline, not as a one-off chat interaction. The typical integration point is a CI/CD check, a periodic dependency audit job, or a pull-request review bot that evaluates new dependencies before they are merged. The application layer is responsible for gathering the required inputs—repository metadata, recent activity data, issue/PR statistics, funding information, and community signals—before assembling the prompt. The model's output should be treated as a structured risk signal that feeds into a larger decision record, not as the sole gate for blocking or approving a dependency.
Input assembly: Before calling the model, collect data from the GitHub/GitLab API, OpenCollective or GitHub Sponsors API, and package registry metadata. Normalize this into the [REPOSITORY_DATA] placeholder as a structured JSON or markdown table containing: repository name, stars, forks, open issues count, closed issues count, average issue response time (days), average PR merge time (days), number of unique contributors in the last 6 and 12 months, number of maintainers with merge rights, date of last release, date of last commit to default branch, funding platform links and active sponsor count, and any recent security advisory history. Validation layer: Before sending the prompt, validate that required fields are populated and that timestamps are within expected ranges. If the repository has fewer than 10 commits total or was created in the last 30 days, prepend a [CONSTRAINTS] note that the model should flag insufficient history for reliable assessment. Model choice: Use a model with strong structured output capabilities (GPT-4o, Claude 3.5 Sonnet, or equivalent) and set response_format to json_schema with the expected output schema. Temperature should be set low (0.0–0.2) to maximize consistency across evaluations.
Retry and fallback logic: If the model response fails schema validation, retry once with the validation errors appended to the prompt as additional [CONSTRAINTS]. If the second attempt also fails, log the failure, emit a partial result with an assessment_incomplete flag set to true, and route the dependency for manual review. Logging and audit trail: Store the full prompt, model response, parsed scores, and any validation errors in an audit log tied to the dependency name and version. This is critical for supply chain governance because decisions about dependency adoption must be reproducible and explainable to security auditors. Human review gates: Any dependency that scores below 40 on overall sustainability or has a bus factor of 1 should automatically trigger a human review ticket with the full evaluation report attached. Do not auto-block dependencies based solely on the model's score—use the score to prioritize human review queues. Scheduling: For existing dependencies, run this evaluation on a quarterly cadence and whenever a major version bump is proposed. For new dependencies, run it as a blocking informational check in the PR workflow, not as a merge gate unless your organization's policy explicitly requires it.
Expected Output Contract
Defines the shape, types, and validation rules for the structured sustainability score and risk flags returned by the Open Source Maintainer Health Evaluation Prompt. Use this contract to parse, validate, and store the model output.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
sustainability_score | integer (0-100) | Must be an integer within the inclusive range 0 to 100. Parse check: reject non-integer or out-of-range values. | |
activity_rating | string enum | Must be one of: 'active', 'low_activity', 'stalled', 'archived'. Schema check: reject any other string. | |
bus_factor_assessment | object | Must contain 'estimated_contributors' (integer >= 0) and 'risk_level' (string enum: 'low', 'medium', 'high', 'critical'). Schema check: reject if keys are missing or types mismatch. | |
issue_response_time_days | number or null | Must be a non-negative number if available, or null if data is insufficient. Parse check: reject negative numbers. | |
funding_status | string enum | Must be one of: 'well_funded', 'community_funded', 'underfunded', 'unfunded', 'unknown'. Schema check: reject any other string. | |
adoption_risk_flags | array of strings | Must be an array. Each element must be a non-empty string from a predefined list: 'single_maintainer', 'no_recent_releases', 'unresolved_security_issues', 'no_funding', 'deprecated_dependency', 'license_risk'. Schema check: reject unknown flags. | |
evidence_summary | string | Must be a non-empty string summarizing the key findings that support the score. Content check: reject empty or whitespace-only strings. | |
last_updated_timestamp | string (ISO 8601) | Must be a valid ISO 8601 date-time string representing when the evaluation was performed. Format check: reject unparseable date strings. |
Common Failure Modes
What breaks first when evaluating open source maintainer health and how to guard against it.
Recency Bias Overweights Recent Activity
What to watch: The model treats a recent burst of commits or issue responses as evidence of sustained health, ignoring years of prior neglect. A dormant project that gets one security patch looks healthy. Guardrail: Require the prompt to evaluate activity over configurable time windows (3-month, 6-month, 12-month, 24-month) and flag discrepancies between recent and historical patterns. Include a staleness penalty when activity is concentrated in a single recent window.
Bus Factor Overestimation from Commit Counts
What to watch: The model counts unique committers and assumes a healthy bus factor, but 80% of commits come from one person while others only fix typos. A project with 10 contributors can still have a bus factor of 1. Guardrail: Require the prompt to calculate a weighted bus factor based on contribution volume per author, not raw unique author count. Flag projects where a single author exceeds 60% of meaningful contributions as high-risk regardless of total contributor count.
Funding Signal Misinterpretation
What to watch: The model treats any funding badge or OpenCollective link as evidence of financial sustainability, ignoring whether funding is $5/month or a full-time team. Corporate sponsorship logos get overweighted. Guardrail: Require the prompt to distinguish between funding signals (badges, sponsor lists) and funding evidence (disclosed amounts, employed maintainers, foundation status). Add an explicit unknown-funding tier that defaults to high-risk rather than assuming sustainability.
Issue Response Time Confounded by Bot Activity
What to watch: The model sees fast issue responses and scores responsiveness highly, but the responses are automated stale-bot closures, lock-bot comments, or template replies that don't resolve anything. Guardrail: Require the prompt to classify issue responses as automated vs. human and substantive vs. procedural. Weight response time scoring by the fraction of issues that receive human substantive responses, not just any response. Flag repos where bot activity exceeds human engagement.
Community Engagement Confused with Popularity
What to watch: The model treats high GitHub stars, forks, or download counts as community health, but a project can have 10k stars and zero active maintainers. Popularity masks abandonment risk. Guardrail: Require the prompt to separate popularity metrics (stars, downloads) from engagement metrics (PR reviews, issue discussions, maintainer responsiveness). Add an explicit health score component that penalizes high-popularity, low-engagement projects as adoption traps.
Release Cadence Assessed Without Quality Context
What to watch: The model sees frequent releases and scores the project as actively maintained, but every release is a patch bump with one-line fixes while major bugs sit unresolved for years. Release frequency masks stagnation. Guardrail: Require the prompt to cross-reference release frequency with unresolved issue age and severity. Flag projects where release cadence is high but critical bugs remain open beyond a configurable threshold as exhibiting cosmetic maintenance.
Evaluation Rubric
Criteria for testing the quality and reliability of the Open Source Maintainer Health Evaluation Prompt before integrating it into a dependency risk pipeline. Use these tests to catch hallucinated metrics, missing evidence, and overconfident scores.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Evidence Grounding | Every scored dimension cites a specific observable (e.g., commit date, issue response time, funding platform URL) from the provided [REPOSITORY_DATA] | Score or claim present without a linked observable; hallucinated metric values (e.g., invented commit counts) | Parse output for citation markers; verify each claim against the input [REPOSITORY_DATA] payload using a scripted check |
Score Range Compliance | Overall sustainability score is an integer between 0 and 100; each sub-score falls within its defined 0-100 range | Score is null, negative, greater than 100, or a non-numeric string | Schema validation with min/max constraints; reject output if any score field violates range |
Bus Factor Accuracy | Bus factor number matches the count of distinct active committers in the last 12 months from [REPOSITORY_DATA] | Bus factor exceeds the number of distinct committers in the input data; bus factor is 0 when active committers exist | Extract committer list from input; compare count to output bus factor; flag mismatch as a critical failure |
Risk Flag Consistency | Adoption risk flags (e.g., 'LOW', 'MEDIUM', 'HIGH', 'CRITICAL') are consistent with the overall score thresholds defined in [CONSTRAINTS] | Risk flag is 'LOW' when score is below 40; risk flag is 'CRITICAL' when score is above 80 | Rule-based assertion: map score ranges to expected flags; fail if output flag violates the mapping defined in the prompt's [CONSTRAINTS] |
Funding Status Enum Adherence | Funding status field exactly matches one of the allowed enum values: 'ACTIVE', 'STALE', 'NONE', 'UNKNOWN' | Funding status is a free-text description, null, or an unrecognized string | Enum check against the allowed list; if [REPOSITORY_DATA] lacks funding info, 'UNKNOWN' is the only acceptable value |
Missing Data Handling | When [REPOSITORY_DATA] is missing a required field (e.g., issue response times), the output marks that sub-score as null and notes 'INSUFFICIENT_DATA' | Output invents a plausible score for missing data; output omits the sub-score entirely without explanation | Provide a deliberately sparse [REPOSITORY_DATA] fixture; assert that affected sub-scores are null and the reason field contains 'INSUFFICIENT_DATA' |
Community Engagement Signal Integrity | Community engagement score reflects metrics present in [REPOSITORY_DATA] (e.g., PR discussion frequency, contributor retention) and does not exceed 80 if only basic activity is observed | Score is 90+ for a repository with only commit activity and no discussion or external contribution signals | Use a baseline fixture with minimal community signals; assert the engagement score is <= 80 and the justification mentions the lack of discussion data |
Output Schema Validity | Output is valid JSON matching the [OUTPUT_SCHEMA] with all required fields present and correctly typed | Missing required fields; extra fields not in schema; type mismatch (e.g., string where number is expected) | JSON Schema validation against the provided [OUTPUT_SCHEMA]; reject output that fails validation |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base prompt and a single repository URL. Remove structured output schema requirements initially. Use a frontier model with high reasoning capability. Focus on getting a qualitative narrative assessment before adding scoring rigor.
codeEvaluate the health of this open source project: [REPO_URL] Consider: maintainer activity, issue response time, bus factor, release cadence, community engagement, and funding signals. Return a plain-text summary with key risks.
Watch for
- Overly optimistic assessments from recent activity spikes
- Missing bus factor detection when multiple maintainers appear active but are from the same organization
- No distinction between bot activity and human maintainer activity

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us