Greploop Apps
michaelshimeles/skills
Loops on a large pull request, merge request or Perforce changelist, fixing Greptile findings until it scores 5/5 with no unresolved comments.
Create self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores…
$ npx skills add ai-dynamo/dynamo --skill visual-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ai-dynamo/dynamo visual-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/visual-review .claude/skills/visual-review && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "visual-review" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/visual-review into .claude/skills/visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-review", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/visual-reviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ai-dynamo/dynamo --skill visual-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ai-dynamo/dynamo visual-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/visual-review .agents/skills/visual-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "visual-review" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/visual-review into .agents/skills/visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-review", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ai-dynamo/dynamo --skill visual-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ai-dynamo/dynamo visual-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/visual-review .cursor/skills/visual-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "visual-review" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/visual-review into .cursor/skills/visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-review", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ai-dynamo/dynamo.git --path .agents/skills/visual-review--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ai-dynamo/dynamo --skill visual-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ai-dynamo/dynamo visual-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/visual-review .gemini/skills/visual-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "visual-review" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/visual-review into .gemini/skills/visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-review", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ai-dynamo/dynamo visual-reviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ai-dynamo/dynamo --skill visual-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/visual-review .github/skills/visual-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "visual-review" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/visual-review into .github/skills/visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-review", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ai-dynamo/dynamo --skill visual-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ai-dynamo/dynamo visual-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/visual-review .opencode/skills/visual-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "visual-review" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/visual-review into .opencode/skills/visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-review", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
visual-reviewCreate self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores…
Visual Review is an agent skill from ai-dynamo/dynamo. Create self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores, smell indicators, interactive component and finding diagrams, structured finding packages, per-finding diff tabs with important references, expandable full context, API manifests, annotated red/green diffs, minimaps, validation cases, and fix prompts. Use when Codex is asked for a visual PR review or any of those visual…
Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including scripts, reference files and assets (for example `agents/openai.yaml`, `assets/vendor/cytoscape-3.33.4.min.js` and `assets/vendor/cytoscape-dagre-2.5.0.js`).
It sits in Development, covering Pull requests, HTML artifacts and Diagrams. It works with GitHub, GitLab and Git. The repository describes itself as: A Datacenter Scale Distributed Inference Serving Framework. The licence is Apache-2.0.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 1668037. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (JavaScript and Python), which the agent can run.
Shell commands in SKILL.md call:
gitpython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Visual Review loads about 4.5k tokens when it runs, and up to ~8.3k if it reads all its reference files. Until then it costs about 137 tokens; SKILL.md has 2,518 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from ai-dynamo/dynamo at commit 1668037, republished under its Apache-2.0 licence (© ai-dynamo). 2,518 words, ~4,542 tokens.
.claude/skills/visual-review/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.<!--
SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->
Produce a deep code review and render it as one portable HTML file with no external dependencies.
git diff --unified=100000 <base> <head> -- <changed-files>.python3 <skill-dir>/scripts/render_review.py \
--spec /absolute/path/review.json \
--diff /absolute/path/review.diff \
--output <workspace-artifact-dir>/<review-name>.html Resolve <workspace-artifact-dir> inside the active Codex workspace, not inside a temporary review worktree. Prefer a writable, VCS-ignored .codex/reviews/; otherwise use a writable, VCS-ignored workspace directory such as tmp/codex-reviews/. Confirm the chosen directory with git check-ignore when the workspace uses Git. The renderer creates the output directory when needed.
6. Re-run with --validate-only after edits. If a local headless browser exists, inspect the rendered page; otherwise rely on the renderer's structural, anchor, and annotation validation.
7. Return a clickable Markdown file link to the workspace-local HTML artifact, followed by a fenced markdown code block containing a copy-ready text version of every finding. Link the bare absolute .html path with no #fragment; Codex workspace file links with URL fragments may fail to open. Internal anchors remain available after the HTML file is open. Never hand off a final review from /tmp, $TMPDIR, ~/Library/Caches, or any path outside the active workspace; those locations are temporary working storage only.
file:line, summary, labeled evidence lists, and suggested fix. Preserve the dashboard's structure instead of flattening each finding into one prose paragraph.No findings. as its content.All changes plus one tab per finding. The all-changes tab shows the complete PR; each finding tab shows only code_blocks attached to that finding and a compact copy of its important reference snippets. Keep filenames, annotations, heat, smell, and exact line links functional in every view.code_blocks entry to exactly one finding through finding_ids; use those associations as the source of truth for finding-specific diff tabs.[+] expansion rows for each hidden context run so reviewers can reveal more context without leaving the dashboard. Finding tabs must not reveal unrelated changed rows merely because context is expanded.summary, two or more labeled details groups with short bullet items, a structured suggested_fix, and a per-finding agent_prompt.finding_ids array. Do not render mixed PR-wide sections for these artifacts. Only inherently PR-wide material such as the primary information-flow component map, scope, scores, file map, and complete diff stays global.finding_ids and render them in its collapsed diagram section. Do not add decorative diagrams for localized findings that are clearer in one code annotation.markdown code block so the reviewer can paste them into another review surface without opening the dashboard.source_url is a GitHub pull request, normalize direct review links to the current /files view and derive exact diff anchors for changed files and old/new lines. Inspect the PR page for files GitHub leaves behind a Load diff placeholder and list them in github_collapsed_files: their line anchors do not exist until the user expands the diff, so link to the always-present file anchor without an L/R suffix and say Load diff, then identify the old/new target line in the visible label and tooltip. Use exact L/R anchors only for files GitHub renders initially. Place a GitHub-style blue + button on the boundary between the number gutters and code, sized like GitHub's control. Reveal it only when the code cell is hovered or the button receives keyboard focus, not when the line numbers or another part of the row is hovered. Open GitHub in a new tab without replacing the local review; use both target="_blank" with rel="noopener noreferrer" and an explicit user-click window.open(..., "_blank", "noopener,noreferrer") handler because embedded app browsers may ignore the target attribute. Do not claim that this opens GitHub's comment editor: the user must use GitHub's own controls; state the necessary action in the button tooltip. Keep the line number itself as the dashboard's internal anchor, and also expose direct PR links from finding summaries, inline annotations, validation cases, and file headers.source_url is a GitLab merge request, normalize direct review links to its /diffs view. Pin file links with GitLab's SHA-1 filename anchor and derive exact line links with GitLab's <sha1(path)>_<old-position>_<new-position> line code. Expose these MR links in the same file headers, finding summaries, inline annotations, validation cases, and hover + buttons as GitHub links, and identify GitLab accurately in every label and tooltip.code_blocks. Use high/red for code that must be inspected, medium/yellow for code worth a look, and low/green for routine changes. Render the heat as a 5 px bar at the far left of the number gutters; do not recolor the number or code backgrounds, because those already encode diff semantics.code_blocks entry independently with smell: high, medium, or none. Smell is exclusively about code quality: structural debt, mixed responsibilities, duplication, avoidable complexity, poor encapsulation, readability, or maintainability. Never derive smell from correctness, finding severity, risk, or missing behavior; those belong to findings and review heat. Use high for concentrated structural debt, medium for a refactoring concern, and none for clean or routine code. Every high or medium smell must include a concise smell_reason naming the quality problem and its maintenance cost. Render that reason in the code-edge and aggregate hover explanations. Render high as a red ☁ and medium as an orange ☁ overlaid at the far-right edge of the block's first code row; render no row icon for none. Beside the PR title, aggregate the maximum smell as red, orange, or green.title. Structure metric tooltips with a heading, a short summary or scale explanation, and a bulleted list for multiple smell reasons or score factors. Do not concatenate long explanations into one paragraph with inline bullet characters.Safe to merge, never merely Risk: 10 is green and means low residual risk / safe to merge, while 1 is red and means unsafe to merge. Ten is also good for correctness and means a clear net correctness improvement. Color both continuously through red at 0, orange at 3, yellow at 6, and green at 10. Include a concise summary and an auditable base-plus-factors breakdown in each hover.risk_score for compatibility, but never expose that ambiguous name as the dashboard label.code_blocks data. Align one concise sentence with the start of each larger block; explain what the block does and avoid line-by-line narration or repeating findings.AGENTS.md or equivalent files.P0 through P3, then notes).involves_api_objects: true on findings whose trigger or consequence depends on API object fields. Every such finding must be covered by at least one manifests entry.file, side, and line; link the row to that diff anchor.highlight_lines; render them in light blue so evidence is distinguishable from context at a glance. Render the reference summary directly after the last highlighted line as a neutral gray annotation card with the same structure as P1/P2 inline annotations, but never present it as an additional finding.component diagram that covers the full information flow. Additional focused component diagrams are allowed.x, y, label_x, or label_y coordinates; preserve concise labels so the automatic planar-style layout stays readable.sequence diagrams for finding-specific event ordering. Keep participant names stable across failing and corrected views so they compare directly.manifests entries for every finding marked involves_api_objects.uid and resourceVersion with a comment that the document is an observed snapshot, not apply-ready input.The renderer and HTML template live in scripts/render_review.py and assets/review-template.html.
© ai-dynamo, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 11 other files (scripts, references, assets) in .agents/skills/visual-review of ai-dynamo/dynamo.
Open the folder on GitHubat commit 1668037
Visual Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Visual Review this skillai-dynamo/dynamo | 8.2k | — | ~4.5k | Automated safety check: Pass | Apache-2.0 | |
| Greploop Appsmichaelshimeles/skills | 1.3k | 1 repos | ~3.6k | Automated safety check: Pass | MIT | |
| MR and PR Description Draftertabler/tabler | 42k | — | ~2k | Automated safety check: Pass | MIT | |
| Miro Code Reviewmiroapp/miro-ai | 160 | — | ~4.8k | Automated safety check: Warn | MIT | |
| Create PRyonatangross/orchestkit | 289 | — | ~4.5k | Automated safety check: Notes | MIT | |
| Check PRonyx-dot-app/onyx | 32k | 2 repos | ~2.3k | Automated safety check: Pass | MIT |
michaelshimeles/skills
Loops on a large pull request, merge request or Perforce changelist, fixing Greptile findings until it scores 5/5 with no unresolved comments.
tabler/tabler
Drafts a merge request or pull request title and body in simple English from the branch's git history and diff against origin/dev, ready to paste into GitLab or GitHub.
miroapp/miro-ai
A skill your agent uses when the user wants to create a visual code review on a Miro board from a pull/merge request (GitHub, GitLab, or any forge), local uncommitted changes, or a branch comparison…
yonatangross/orchestkit
Creates GitHub pull requests with pre-flight validation, conventional title formatting, and structured summary generation.
onyx-dot-app/onyx
Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
ai-dynamo/dynamo
Knowledge of Fern's built-in MDX component library (accordions, callouts, cards, steps, tabs, code blocks, API-reference snippets, and more) for authoring docs pages.
ai-dynamo/dynamo
Knowledge of Fern's site-level navigation and structure configuration — how a docs site is organized in docs.yml (and product/version .yml files) using sections, pages, folders, tabs, tab variants…
ai-dynamo/dynamo
Drives persistent Claude Code, Codex, or OpenCode agent sessions through a Dynamo OpenAI/Anthropic-compatible endpoint over Agent Client Protocol (ACP).
ai-dynamo/dynamo
Benchmark and profile the Dynamo frontend (dynamo.frontend HTTP + tokenizer + KV router) against mock workers (dynamo.mocker).
ai-dynamo/dynamo
Selects and freezes a question-driven AIPerf workload, objective, load policy, and Kubernetes execution manifest for a successfully deployed Dynamo candidate.
ai-dynamo/dynamo
Sets up a structured debugging session for a Dynamo bug — pull the report from a Linear ticket, GitHub issue, or pasted text, capture the environment, create a persistent worklog markdown file, and…
Categories
Create self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores…. Visual Review is an agent skill from ai-dynamo/dynamo. Create self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores, smell indicators, interactive component and finding diagrams, structured finding packages, per-finding diff tabs with important references, expandable full context, API manifests, annotated red/green diffs, minimaps, validation cases, and fix prompts.
Visual Review fits situations like: Codex is asked for a visual PR review; any of those visual review artifacts.
Run `npx skills add ai-dynamo/dynamo --skill visual-review -a claude-code`. Or copy the skill folder (.agents/skills/visual-review in ai-dynamo/dynamo) into .claude/skills/visual-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ai-dynamo/dynamo --skill visual-review -a codex`. Or copy the skill folder (.agents/skills/visual-review in ai-dynamo/dynamo) into .agents/skills/visual-review in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ai-dynamo/dynamo --skill visual-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/visual-review, .gemini/skills/visual-review, .github/skills/visual-review and .opencode/skills/visual-review in your project.
Going by SKILL.md and its folder, Visual Review needs JavaScript and Python for the scripts in its folder and the command-line tools its instructions call (git and python3). Our summary lists: Python 3; Node.js.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Visual Review is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.5k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Visual Review: Greploop Apps (michaelshimeles/skills, 1.3k stars), MR and PR Description Drafter (tabler/tabler, 42k stars), Miro Code Review (miroapp/miro-ai, 160 stars) and Create PR (yonatangross/orchestkit, 289 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ai-dynamo (a GitHub organization) maintains it in ai-dynamo/dynamo, which has 8,245 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 8, 2026.
Source: ai-dynamo/dynamo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.