Token导航 LogoToken导航

Agent Skill · 研究检索

dg(DG 搜索)

dg 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

dg 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为操作浏览器;许可证信息还不明确,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 71,089。

总安装 196周安装 8GitHub Stars 175下载 63核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:dg(DG 搜索)
来源仓库:https://github.com/v1r3n/dinesh-gilfoyle
仓库路径:skills/dg
安装命令:
npx skills add https://github.com/v1r3n/dinesh-gilfoyle --skill dg
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/v1r3n/dinesh-gilfoyle --skill dg

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

用于查找和筛选相关信息。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。适合根据关键词快速定位候选结果。可结合来源仓库和 README 核验具体用法。安装前建议确认权限范围和命令执行风险。dg 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/dg

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/v1r3n/dinesh-gilfoyle --skill dg;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

dg 怎么安装?

在终端执行 npx skills add https://github.com/v1r3n/dinesh-gilfoyle --skill dg。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

dg 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

dg 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

dg 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

dg 用的人多吗?

公开数据是累计安装 196 次,近一周安装 8 次,下载 63 次,GitHub 175 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

dg 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
dg

DG 搜索 · 本页

196175操作浏览器未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Dinesh vs Gilfoyle Code Review

Two-agent adversarial code review inspired by HBO's Silicon Valley. Gilfoyle attacks the code with withering technical precision. Dinesh defends it with flustered competence. The banter entertains; the back-and-forth produces genuinely better reviews.

Invocation

  • /dg — review git diff (staged + unstaged)
  • /dg 3 — git diff, max 3 rounds
  • /dg src/auth.ts — review specific file
  • /dg src/auth.ts 3 — specific file, 3 rounds max

Parse Arguments

  1. No args → target = git diff, cap = 5
  2. Number only → target = git diff, cap = that number
  3. Path only → target = that path, cap = 5
  4. Path + number → target = path, cap = number

Orchestration

Step 1: Gather Code

If git diff:

git diff HEAD
git diff --staged

Combine both diffs. If both are empty, tell the user there's nothing to review.

If file/path: Read the target file(s). If path is a directory, read all source files in it.

Always: Gather dependency context. Look for dependency files in the project root and include them in the context sent to agents:

  • package.json, package-lock.json, yarn.lock, pnpm-lock.yaml (Node.js)
  • requirements.txt, pyproject.toml, Pipfile.lock (Python)
  • go.mod, go.sum (Go)
  • pom.xml, build.gradle (Java)
  • Gemfile, Gemfile.lock (Ruby)
  • Cargo.toml, Cargo.lock (Rust)
  • composer.json, composer.lock (PHP)

These are needed for Gilfoyle's dependency vulnerability scan.

Step 2: Run the Debate

Initialize: round = 0, debate_history = []

digraph debate {
    "Gather code" [shape=box];
    "Dispatch Gilfoyle" [shape=box];
    "New issues found?" [shape=diamond];
    "Dispatch Dinesh" [shape=box];
    "All conceded, no pushback?" [shape=diamond];
    "Round >= cap?" [shape=diamond];
    "Ask user: continue?" [shape=diamond];
    "Synthesize final review" [shape=doublecircle];

    "Gather code" -> "Dispatch Gilfoyle";
    "Dispatch Gilfoyle" -> "New issues found?";
    "New issues found?" -> "Synthesize final review" [label="no — converged"];
    "New issues found?" -> "Dispatch Dinesh" [label="yes"];
    "Dispatch Dinesh" -> "All conceded, no pushback?";
    "All conceded, no pushback?" -> "Synthesize final review" [label="yes — converged"];
    "All conceded, no pushback?" -> "Round >= cap?";
    "Round >= cap?" -> "Dispatch Gilfoyle" [label="no — next round"];
    "Round >= cap?" -> "Ask user: continue?" [label="yes"];
    "Ask user: continue?" -> "Dispatch Gilfoyle" [label="yes — extend cap"];
    "Ask user: continue?" -> "Synthesize final review" [label="no"];
}

Each round:

  1. Dispatch Gilfoyle agent (Agent tool, general-purpose) with:

- Full content of gilfoyle-agent.md from this skill's directory - The code under review - Full debate history - Round number - Instruction: "You are doing research only — read the code and produce your review. Do NOT edit any files."

  1. Display Gilfoyle's banter to the user.
  2. Check convergence: Parse Gilfoyle's FINDINGS section. If all findings are repeats from previous rounds → converge.
  3. Dispatch Dinesh agent (Agent tool, general-purpose) with:

- Full content of dinesh-agent.md from this skill's directory - The code under review - Gilfoyle's latest full response - Full debate history - Round number - Instruction: "You are doing research only — read the code and produce your defense. Do NOT edit any files."

  1. Display Dinesh's banter to the user.
  2. Check convergence: Parse Dinesh's FINDINGS section. If every point is [concede] with zero [defend] or [dismiss] → converge.
  3. Append both responses to debate_history, increment round.
  4. If round >= cap: Ask user: *"These two could go all night. Continue for more rounds? (y/N)"*

- Yes → extend cap by original amount, continue loop - No → proceed to synthesis

Convergence announcements (pick one that fits):

  • "Gilfoyle has run out of things to hate. Unprecedented."
  • "Dinesh has conceded defeat. As expected."
  • "These two are going in circles. Separating them before it gets physical."

Step 3: Synthesize Final Review

After the debate ends, produce a structured summary from the full debate transcript.

Display format:

## Dinesh vs Gilfoyle Review — [target]
### [N] rounds of mass destruction

---
### Best of the Banter
[2-4 of the funniest or most insightful exchanges from the debate]

---

### Verdict

#### Critical (Gilfoyle won, Dinesh conceded)
[Issues where Dinesh couldn't mount a defense — these are real and need fixing]
- `file:line` — issue — fix

#### Important (Gilfoyle won after debate)
[Issues Dinesh tried to defend but Gilfoyle's argument was stronger]
- `file:line` — issue — fix

#### Contested (Dinesh held his ground)
[Issues where Dinesh's defense was valid — code is likely fine]
- `file:line` — what was raised — why the defense holds

#### Dismissed (Gilfoyle was nitpicking)
[Issues both sides agree don't matter]
- `file:line` — what was raised — why it's a non-issue

### Strengths
[Things even Gilfoyle grudgingly acknowledged were good]

### Score
Gilfoyle: X | Dinesh: Y
[Tongue-in-cheek tally of who won more arguments]

### Recommended Changes
[Clean checklist — no banter, no context, just what to do]
- [ ] `file:line` — what to change
- [ ] `file:line` — what to change
- [ ] ...

If no changes needed: "Nothing to fix. Gilfoyle is furious."

Step 4: Offer Comic Strip

After displaying the final review, ask the user:

*"Want a comic strip of the best moments? (y/N/pr)"* - y — generate and open in browser - pr — generate, convert to PNG, and attach to the current PR as a comment - N — skip

If y or pr, generate an HTML comic strip:

  1. Read the comic template from comic-template.html in this skill's directory.
  2. Fill in the template placeholders:

- {{REVIEW_TARGET}} — the target reviewed (e.g., "UI Codebase", "git diff", file path) - {{ROUND_COUNT}} — number of debate rounds - {{GILFOYLE_SCORE}} / {{DINESH_SCORE}} — final scores - {{DATE}} — current date - {{PANELS}} — Generate 4-8 comic panels from the best banter exchanges. Each panel uses this HTML structure:

<!-- Gilfoyle panel -->
<div class="panel gilfoyle">
  <span class="panel-number">1</span>
  <div class="panel-header">
    <div class="avatar"><svg><use href="#gilfoyle-avatar"/></svg></div>
    GILFOYLE
  </div>
  <div class="panel-body">
    <div class="speech">The quote goes here. Use <code>inline code</code> for technical references.</div>
  </div>
</div>

<!-- Dinesh panel -->
<div class="panel dinesh">
  <span class="panel-number">2</span>
  <div class="panel-header">
    <div class="avatar"><svg><use href="#dinesh-avatar"/></svg></div>
    DINESH
  </div>
  <div class="panel-body">
    <div class="speech">The response goes here.</div>
  </div>
</div>

<!-- Full-width panel for dramatic moments -->
<div class="panel gilfoyle full-width">
  <span class="panel-number">3</span>
  <div class="panel-header">
    <div class="avatar"><svg><use href="#gilfoyle-avatar"/></svg></div>
    GILFOYLE
  </div>
  <div class="panel-body">
    <div class="speech">A particularly devastating line that deserves the full width.</div>
  </div>
</div>
  • {{VERDICT_ITEMS}} — Generate verdict items from the final review:
<div class="verdict-item">
  <span class="tag tag-fixed">FIXED</span> CSP nonce replaced with deploy-time placeholder
</div>
<div class="verdict-item">
  <span class="tag tag-contested">CONTESTED</span> MutationObserver lifetime — Dinesh held ground
</div>
<div class="verdict-item">
  <span class="tag tag-dismissed">DISMISSED</span> prop-types — tree-shakes out
</div>
  1. Select the best moments for panels. Prioritize:

- The funniest exchanges (back-and-forth pairs work best) - Moments where Gilfoyle conceded (rare, dramatic) - Dinesh's best zingers - The most technically devastating lines - Keep quotes concise — trim to 1-3 sentences per speech bubble

  1. Write the filled HTML to a timestamped file: /tmp/dg-comic-{timestamp}.html

If y: 5. Open it in the browser: open /tmp/dg-comic-{timestamp}.html 6. Tell the user where the file is saved.

If pr: 5. Convert to PNG using a headless browser:

# Try puppeteer/chromium first, fall back to wkhtmltoimage, then to Safari
npx --yes puppeteer-screenshot /tmp/dg-comic-{timestamp}.html /tmp/dg-comic-{timestamp}.png 2>/dev/null \
  || wkhtmltoimage --quality 90 /tmp/dg-comic-{timestamp}.html /tmp/dg-comic-{timestamp}.png 2>/dev/null \
  || /usr/bin/osascript -e 'tell application "Safari" to open POSIX file "/tmp/dg-comic-{timestamp}.html"'

If screenshot tools aren't available, tell the user to screenshot manually from the browser. 6. Detect the current PR:

gh pr view --json number,url --jq '.number'
  1. Upload the image and comment on the PR: gh pr comment {PR_NUMBER} --body "$(cat <<'EOF' ## /dg Review Comic Strip![Dinesh vs Gilfoyle](/tmp/dg-comic-{timestamp}.png) _Generated by [/dg](https://github.com/v1r3n/dinesh-gilfoyle)_ EOF)" Note: If gh pr comment doesn't support local image upload, upload the image to the PR body as a drag-drop suggestion, or convert to base64 and embed.
  2. Tell the user the comment was posted with a link to the PR.

Key Principles

  • The banter is the feature, not decoration — it keeps reviews entertaining and thorough
  • Dinesh's concessions are the strongest signal — when he can't defend, it's a real issue
  • Successful defenses validate code — if Dinesh can justify it under Gilfoyle's assault, it's solid
  • Always end with actionable summary — fun on the outside, useful on the inside
  • Be technically correct — the humor only works if the technical substance is real

平台分布

Codex

36.54%
按下载量换算23

Claude

29.32%
按下载量换算18

Cursor

21.81%
按下载量换算14

Gemini CLI

9.01%
按下载量换算6

安全审计

Gen Agent Trust Hub

可疑

Socket

通过

Snyk

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills