Introduction

When developing agents with DeepSeek Harness (DSH), jumping directly into a session on an unfamiliar GitHub repository is often too costly and can easily lead to task failure because the environment is not well understood. dsh-tool-radar provides an evaluation approach based on real-time data rather than subjective judgment. As a repo_radar tool plugin, it extracts data from real-time GitHub evidence before the agent starts working and scores and diagnoses the repository’s “contribution friendliness.”

Core Features

The plugin provides quantitative metrics to the model via the repo_radar tool, helping the agent decide whether it should contribute code.

  • Quantitative scoring: Returns a score from 0 to 100, accompanied by specific evidence.
  • Four-dimensional analysis:
    1. Merge history: Analyzes the number of recently merged PRs and the median number of days from opening to merging.
    2. Queue health: Analyzes the number of open PRs, the proportion of stale PRs (>90 days), and the imbalance between the queue and merge volume.
    3. Maintainer responsiveness: Analyzes the median waiting days for the first maintainer comment among recently merged PRs.
    4. External contributor friendliness: Analyzes how frequently external contributors are merged.
  • Decision bands: Provides three decision bands.
    • Contribute: Scores of 70 or higher.
    • Consider: Scores of 45 to 69.
    • Avoid: Scores below 45.
  • Risk flags: Provides machine-readable risk flags, including no_recent_merges, stale_pr_backlog, slow_maintainer_response, mostly_internal_merges, and queue_overload.

Installation and Activation

Run the following command in the terminal to add the plugin to the specified DSH configuration file:

dsh plugin --profile <name> add github:he-yufeng/dsh-tool-radar

After the plugin is installed, it can be invoked via the repo_radar tool.

Typical Usage

Tool invocations require arguments and return structured JSON data.

Parameter description:
* repo (string, required): The repository name, in the format owner/name or a full GitHub URL.
* skills (array, optional): Skill keywords used to match the repository’s primary language.

Return data structure example:

{
  "repo": "owner/repo",
  "stars": null,
  "primaryLanguage": "Language",
  "score": 85,
  "recommendation": "Contribute",
  "breakdown": {
    "mergedPrs": 10,
    "openPrs": 3,
    "staleRatio": 0.1,
    "medianMergeDays": 2.5,
    "medianMaintainerResponseDays": 1.2,
    "externalMergedRatio": 0.6,
    "skillMatches": [],
    "stars": null
  },
  "notes": [
    "some recent merges",
    "maintainers respond within a day"
  ],
  "riskFlags": []
}

Technical Details and Limitations

  • API cost control: The plugin strictly limits API calls; each call consumes only:
    1. 1 repository information call.
    2. 1 closed PR sample.
    3. 1 open PR sample.
    4. At most 5 maintainer response probes for merged PRs.
  • Authentication mechanism: Unauthenticated by default. If you need to improve GitHub API rate limits, set the environment variable GITHUB_TOKEN or GH_TOKEN. This token is only used in the Authorization header, will never be recorded in logs, and will not appear in the output.
  • Error handling: If the input repository does not exist, is private, triggers rate limiting, or has an invalid format, the plugin throws a typed GitHubError instead of returning a misleading score.

Ecosystem and Considerations

The core philosophy of DSH is “everything is a plugin.” As an independently maintained plugin, dsh-tool-radar has its source code and license available in the GitHub repository. Before use, be sure to review the source code and license to ensure compliance with project standards. The plugin runs with the permissions of the current DSH process, so please verify the safety of the source before installation.