dependency-pruner
Skill3.3k starsChanged 2 days agoApache-2.0View on GitHub
Audit the dependencies a change added or widened before its pull request opens, keep each only where it is load-bearing, and replace the rest with a few lines, a lighter package, or one already in the tree. Use at the end of a change, as the last worker task before the pull request opens, or when asked to trim or justify a package's dependencies.
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 7
Run once per change, on the diff, after the code is complete, because a package added mid-way is often not needed by the end.
- Distinctive: line 27
Commit the pruning apart from the feature work, so its review is about dependencies and nothing else.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
A dependency is a maintenance contract: every one costs build time, audit surface, and a future upgrade, so each must be load-bearing, which means removing it would cost more than it saves. Run once per change, on the diff, after the code is complete, because a package added mid-way is often not needed by the end.
Inventory
List every direct dependency, feature, and version bump the manifest diff adds or widens, then every package the lockfile diff adds and the direct dependency or feature that pulls it in, since a feature flag or a transitive addition expands the build as much as a new direct entry. For each direct one, find the code that uses it and write down what it does there and what removing it would take.
Decide
- Replaceable in a few straightforward, testable lines of safe code: replace it, because the package costs every upgrade and the lines cost one review; except where the lines would reimplement security-sensitive or standards-defined behaviour - parsing, cryptography, encodings - which is where a short implementation is wrong in ways no test of yours catches.
- Replaceable only with
unsafe: keep it, sincezerocopy,bytemuck, and their kind are audited where a hand-written transmute is not. - A proc-macro in a foundational package - one kept to few dependencies because many others build on it - goes unless the feature cannot exist without it, because a macro adds a host-side build and the common derive stacks bring
syninto every dependent's build graph; an error type there isDisplayandErrorwritten by hand, notthiserror. - Already in the tree, directly or transitively: reuse it rather than add a second package for the same job.
- Needed but heavy: look for a minimal alternative that does only the needed part.
- Two candidates remain: take the one with the stronger maintenance evidence - issues and pull requests answered, releases when fixes were needed, more than one active maintainer - since the one that stops being maintained becomes your code.
- A dependency the applicable intent file allows or forbids by name follows the intent.
Change
Remove what the decisions say to remove, then inspect the resolved graph and run the repository's dependency policy checks (for Cargo, cargo tree -d for duplicate versions and the feature graph for enabled edges), because a removal changes resolution and feature unification for packages you did not touch.
Commit the pruning apart from the feature work, so its review is about dependencies and nothing else.
Report every kept dependency with what it does and why replacing it costs more, every removed one with what replaced it, and the net change in direct and transitive counts.
Trending
More talk lately.about the whole repository
Who's talking about Devolutions/IronRDP
- A Hacker News story“IronRDP: a Rust implementation of Microsoft's RDP protocol”Hacker News · Mar 21, 2025 · 545 points
- @github-trending.bsky.social“🚀 Skyrocketing! 🚀 (200+ new stars) 📦 Devolutions / IronRDP ⭐ 1,328 (+276) 🗒 Rust Rust implementation of …”Bluesky · Mar 23, 2025 · 19 likes
- @hacker-news-jp.bsky.social“IronRDP: MicrosoftのRDPプロトコルのRust実装 IronRDP: a Rust implementation of Microsoft's RDP protocol 🔺 328 💬 45 …”Bluesky · Mar 21, 2025 · 5 likes
- fosrl/pangolin“Browser RDP fails with GNOME Remote Desktop And Windows Connection Errors”GitHub · Jun 14, 2026 · 3 reactions
- @rusttrending.bsky.social“Devolutions / IronRDP: Rust implementation of the Microsoft Remote Desktop Protocol (RDP) ★1304 …”Bluesky · Mar 23, 2025 · 3 likes
The biggest 5 of 60 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 60
Talked about on GitHub, Bluesky and Hacker News (60 times).
On GitHub · 50
- Jun 14, 2026Browser RDP fails with GNOME Remote Desktop And Windows Connection Errors — fosrl/pangolin3 reactions · 19 comments
- Jul 29, 2026fix(kerberos): remove unnecessary sequence number incrementation — Devolutions/sspi-rs1 reaction
- Feb 25, 2026Can't connect to Ubuntu RDP host — totoshko88/RustConn1 reaction · 5 comments
- Nov 18, 2025build(deps): no zlib for flate2 on WASM — Devolutions/sspi-rs1 reaction
- Oct 7, 2025chore(webapp): bump VNC and RDP WASM packages — Devolutions/devolutions-gateway1 reaction · 2 comments
45 more on GitHub
- Aug 28, 2025fix(webapp)!: add manual clipboard mode for RDP, VNC and ARD — Devolutions/devolutions-gateway1 reaction · 3 comments
- Oct 29, 2026chore(deps): bump ironrdp-graphics from 0.9.0 to 0.10.0 — kihyun1998/justrdp0 reactions
- Oct 24, 2026Bug: (IronRDP) (Windows Server 2025) Screen tearing on resize — meanaverage/tabby-rdp0 reactions · 5 comments
- Oct 23, 2026Vendored forks: upstream drift or advisories need review — armaxri/termiHub0 reactions
- Oct 22, 2026Embedded RDP: distorted display when connecting to xrdp — totoshko88/RustConn0 reactions · 1 comment
- Oct 21, 2026Stalled transport retains an old session and blocks reconnect until service restart — MuNeNiCK/hypr-rdp0 reactions
- Oct 19, 2026Bump ironrdp-graphics from 0.6.0 to 0.9.0 — Antxj/termcraft0 reactions
- Oct 19, 2026Bump ironrdp-pdu from 0.6.0 to 0.9.0 — Antxj/termcraft0 reactions
- Oct 19, 2026Bump ironrdp-cliprdr from 0.4.0 to 0.7.0 — Antxj/termcraft0 reactions
- Oct 19, 2026Bump ironrdp-core from 0.1.5 to 0.2.1 — Antxj/termcraft0 reactions
- Oct 19, 2026Bump ironrdp-dvc from 0.4.1 to 0.8.0 — Antxj/termcraft0 reactions
- Oct 15, 2026Windows desktop service 18.11.x fails RDP license exchange on windows hosts with RDS CALs — gravitational/teleport0 reactions · 1 comment
- Oct 9, 2026Vendored forks: upstream drift or advisories need review — armaxri/termiHub0 reactions
- Oct 2, 2026feat(unattended): pivot to native Windows Devolutions Gateway and RDP readiness — hamburger-os/PalmTTY0 reactions · 1 comment
- Sep 28, 2026Bump ironrdp-pdu from 0.8.0 to 0.9.0 — athiedepayit/rustrdp0 reactions
- Sep 26, 2026[test] vendored-fork drift sync self-test (#3498) — armaxri/termiHub0 reactions · 1 comment
- Sep 26, 2026Vendored forks: upstream drift or advisories need review — armaxri/termiHub0 reactions · 1 comment
- Sep 26, 2026Vendored forks: upstream drift or advisories need review — armaxri/termiHub0 reactions · 1 comment
- Sep 26, 2026Vendored forks: upstream drift or advisories need review — armaxri/termiHub0 reactions · 1 comment
- Sep 24, 2026feat(kerberos): add support for IAKerb extension for Kerberos client — Devolutions/sspi-rs0 reactions · 9 comments
- Sep 24, 2026feat(picky-krb): add IAKerb proxy message encoding/decoding — Devolutions/picky-rs0 reactions · 1 comment
- Sep 11, 2026Support Linux user authentication through PAM — MuNeNiCK/hypr-rdp0 reactions
- Sep 7, 2026Bump ironrdp-displaycontrol from 0.7.0 to 0.8.0 — athiedepayit/rustrdp0 reactions · 1 comment
- Sep 7, 2026Bump ironrdp-input from 0.6.0 to 0.7.0 — athiedepayit/rustrdp0 reactions · 1 comment
- Sep 4, 2026[no ci]: Bump ironrdp-pdu from 0.8.0 to 0.9.0 — athiedepayit/rustrdp0 reactions · 1 comment
- Sep 4, 2026[no ci]: Bump ironrdp-cliprdr from 0.6.0 to 0.7.0 — athiedepayit/rustrdp0 reactions
- Sep 4, 2026[no ci]: Bump ironrdp-graphics from 0.8.1 to 0.9.0 — athiedepayit/rustrdp0 reactions · 1 comment
- Sep 4, 2026[no ci]: Bump ironrdp-dvc from 0.7.0 to 0.8.0 — athiedepayit/rustrdp0 reactions · 1 comment
- Sep 4, 2026[no ci]: Bump ironrdp-session from 0.10.0 to 0.11.0 — athiedepayit/rustrdp0 reactions
- Aug 26, 2026chore(deps): bump ironrdp-session from 0.8.0 to 0.11.0 in /src-tauri — voktty/voktty0 reactions · 1 comment
- Jul 28, 2026build(deps): bump ironrdp-egfx from 0.2.0 to 0.3.0 in /rdp-kotlin/rust — GlassHaven/Haven0 reactions · 2 comments
- Jul 28, 2026build(deps): bump ironrdp-displaycontrol from 0.7.0 to 0.8.0 in /rdp-kotlin/rust — GlassHaven/Haven0 reactions · 2 comments
- Jul 28, 2026build(deps): bump ironrdp-session from 0.10.0 to 0.11.0 in /rdp-kotlin/rust — GlassHaven/Haven0 reactions · 2 comments
- Jul 27, 2026Bump ironrdp-pdu from 0.7.0 to 0.9.0 in /android/yyslide-android/rdp-kotlin/rust — wuyan1337/yySlide0 reactions
- Jul 27, 2026Bump ironrdp-cliprdr from 0.5.0 to 0.7.0 in /android/yyslide-android/rdp-kotlin/rust — wuyan1337/yySlide0 reactions
- Jul 25, 2026build(deps): bump ironrdp-input from 0.6.0 to 0.7.0 in /rdp-kotlin/rust — SkyL9ne/Haven0 reactions
- Jul 25, 2026build(deps): bump ironrdp-session from 0.10.0 to 0.11.0 in /rdp-kotlin/rust — SkyL9ne/Haven0 reactions
- Jul 25, 2026build(deps): bump ironrdp-displaycontrol from 0.7.0 to 0.8.0 in /rdp-kotlin/rust — SkyL9ne/Haven0 reactions
- Jul 25, 2026build(deps): bump ironrdp-egfx from 0.2.0 to 0.3.0 in /rdp-kotlin/rust — SkyL9ne/Haven0 reactions
- Jul 25, 2026build(deps): bump ironrdp-svc from 0.7.0 to 0.8.0 in /rdp-kotlin/rust — SkyL9ne/Haven0 reactions
- Jul 25, 2026build(deps): bump ironrdp-cliprdr from 0.6.0 to 0.7.0 in /rdp-kotlin/rust — SkyL9ne/Haven0 reactions
- Jul 21, 2026build(deps): bump ironrdp-tls from 0.2.1 to 0.2.2 in /rdp-kotlin/rust — GlassHaven/Haven0 reactions · 4 comments
- Jul 21, 2026build(deps): bump ironrdp-cliprdr from 0.6.0 to 0.7.0 in /rdp-kotlin/rust — GlassHaven/Haven0 reactions · 3 comments
- Jul 21, 2026build(deps): bump ironrdp-core from 0.2.0 to 0.2.1 in /rdp-kotlin/rust — GlassHaven/Haven0 reactions · 3 comments
- Jul 16, 2026bump ironrdp-graphics from 0.8.0 to 0.9.0 — kihyun1998/justrdp0 reactions · 2 comments
On Bluesky · 9
- Mar 23, 2025🚀 Skyrocketing! 🚀 (200+ new stars) 📦 Devolutions / IronRDP ⭐ 1,328 (+276) 🗒 Rust Rust implementation of the Microsoft Remote Desktop… — @github-trending.bsky.social19 likes and reposts
- Mar 21, 2025IronRDP: MicrosoftのRDPプロトコルのRust実装 IronRDP: a Rust implementation of Microsoft's RDP protocol 🔺 328 💬 45 🔗 HN Post | Article — @hacker-news-jp.bsky.social5 likes and reposts · 1 reply
- Mar 23, 2025Devolutions / IronRDP: Rust implementation of the Microsoft Remote Desktop Protocol (RDP) ★1304 https://github.com/Devolutions/IronRDP — @rusttrending.bsky.social3 likes and reposts
- Mar 22, 2025IronRDP: a Rust implementation of Microsoft's RDP protocol https://github.com/Devolutions/IronRDP [comments] [334 points] — @hnfeed.bsky.social2 likes and reposts
- Mar 21, 2025IronRDP: a Rust implementation of Microsoft's RDP protocol https://github.com/Devolutions/IronRDP… — @newsyc200.bsky.social2 likes and reposts
4 more on Bluesky
- Mar 21, 2025IronRDP: a Rust implementation of Microsoft's RDP protocol Discussion — @hackernewsbot.bsky.social2 likes and reposts
- Oct 9, 2026I want to reach feature parity with the first-party RDP client with IronRDP: github.com/Devolutions/... — @awakecoding.com1 likes and repost · 1 reply
- Mar 22, 2025🌐IronRDP: Microsoft の RDP プロトコルの Rust 実装 https://github.com/Devolutions/IronRDP via #HackerNews — @kdmsnr.com1 likes and repost
- Mar 22, 2025https://github.com/Devolutions/IronRDP Rustで実装されたMicrosoft Remote Desktop Protocol (RDP)の紹介です。 IronRDPという名称でGitHubで公開されています。… — @topickapp.bsky.social1 likes and repost
On Hacker News · 1
- Mar 21, 2025IronRDP: a Rust implementation of Microsoft's RDP protocol545 points · 214 comments
In this repository42 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agents-md-reviewSkill
- agents-mdSkill
- blind-testsuiteSkill
- code-compressorSkill
- commit-and-pr-conventionsSkill
- commit-scopeSkill
- contract-authoringSkill
- contract-reviewSkill
- contributeSkill
- crate-readme-writerSkill
- dependency-reviewerSkill
- docs-compressorSkill
- docs-writerSkill
- grill-intentSkill
- intent-drift-auditSkill
- intent-filesSkill
- intent-reviewSkill
- ironrdp-activex-mstsc-testingSkill
- leadSkill
- llm-comment-footerSkill
- markdown-writerSkill
- new-crateSkill
- orchestrate-effortSkill
- prose-verifierSkill
- prose-writerSkill
- protocol-reviewerSkill
- public-dependencySkill
- review-feedback-loopSkill
- rust-style-reviewerSkill
- rust-styleSkill
- skeptical-reviewerSkill
- skill-disciplineSkill
- tddSkill
- tessl-skill-lintingSkill
- test-oracle-reviewerSkill
- test-prunerSkill
- test-reviewerSkill
- test-writerSkill
- variantsSkill
- code-reviewSkill
- release-prepSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

