Update .NET OS Packages
dotnet/core
Audits and updates os-packages.json files listing the Linux packages each .NET release needs per distro, then regenerates the Markdown from the JSON.
Brutally honest developer-experience audit for a GitHub repo.
$ npx skills add Varnan-Tech/opendirectory --skill dx-roaster -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Varnan-Tech/opendirectory dx-roaster --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/Varnan-Tech/opendirectory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dx-roaster .claude/skills/dx-roaster && 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 "dx-roaster" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/dx-roaster into .claude/skills/dx-roaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-roaster", 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/Varnan-Tech/opendirectory/tree/main/skills/dx-roasterType 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 Varnan-Tech/opendirectory --skill dx-roaster -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Varnan-Tech/opendirectory dx-roaster --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dx-roaster .agents/skills/dx-roaster && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dx-roaster" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/dx-roaster into .agents/skills/dx-roaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-roaster", 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 Varnan-Tech/opendirectory --skill dx-roaster -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Varnan-Tech/opendirectory dx-roaster --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dx-roaster .cursor/skills/dx-roaster && 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 "dx-roaster" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/dx-roaster into .cursor/skills/dx-roaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-roaster", 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/Varnan-Tech/opendirectory.git --path skills/dx-roaster--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 Varnan-Tech/opendirectory --skill dx-roaster -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Varnan-Tech/opendirectory dx-roaster --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dx-roaster .gemini/skills/dx-roaster && 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 "dx-roaster" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/dx-roaster into .gemini/skills/dx-roaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-roaster", 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 Varnan-Tech/opendirectory dx-roasterInstalls 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 Varnan-Tech/opendirectory --skill dx-roaster -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dx-roaster .github/skills/dx-roaster && 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 "dx-roaster" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/dx-roaster into .github/skills/dx-roaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-roaster", 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 Varnan-Tech/opendirectory --skill dx-roaster -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Varnan-Tech/opendirectory dx-roaster --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dx-roaster .opencode/skills/dx-roaster && 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 "dx-roaster" agent skill from https://github.com/Varnan-Tech/opendirectory/tree/main/skills/dx-roaster into .opencode/skills/dx-roaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-roaster", 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.
dx-roasterBrutally honest developer-experience audit for a GitHub repo.
Dx Roaster is an agent skill from Varnan-Tech/opendirectory. Brutally honest developer-experience audit for a GitHub repo. Scores 10 DX dimensions (time-to-first-success, README clarity, visual proof, install, quick-start, docs, examples, community, trust, marketing), writes a shareable roast in the requested tone (brutal/honest/kind), produces a prioritized action plan ranked by impact × effort, and sketches an ideal README. Trigger when user says "roast my repo", "audit my README", "dx audit", "developer experience review", "score my GitHub project", "before launch…
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `README.md`, `references/readme-template.md` and `references/roast-voice-guide.md`). Compatibility notes: ["claude-code","gemini-cli","github-copilot"]
It sits in Development, covering Technical documentation, Product launch strategy and Prioritization frameworks. It works with GitHub. The repository describes itself as: AI Agent Skills built for Founders who hate Marketing. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 62e437a. 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.
Shell commands in SKILL.md call:
ghgitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GITHUB_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
["claude-code","gemini-cli","github-copilot"]
From compatibility in the SKILL.md frontmatter.
Dx Roaster loads about 2.5k tokens when it runs, and up to ~5.1k if it reads all its reference files. Until then it costs about 141 tokens; SKILL.md has 885 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); files beside SKILL.md are not scanned.
The full file from Varnan-Tech/opendirectory at commit 62e437a, republished under its MIT licence (© Varnan-Tech). 885 words, ~2,530 tokens.
.claude/skills/dx-roaster/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Roasts a GitHub repo's developer experience. Produces four files: roast.md, action-plan.md, ideal-readme.md, score.json. Built for OSS maintainers and dev-tool founders preparing for Show HN, Product Hunt, or any launch where the first five minutes matter.
Read all three reference files BEFORE scoring. references/scoring-rubric.md, references/roast-voice-guide.md, references/readme-template.md. The rubric is non-negotiable — use the exact 10 dimensions.
Score every dimension on the 0–10 scale. Never skip. Missing data = score 0, not "N/A".
Roast must cite specific findings. Quote bad lines verbatim. Reference file paths. Cite line numbers when possible. Never write generic platitudes like "documentation could be better".
Tone matters. Default honest. Switch voice per references/roast-voice-guide.md. Brutal is funny but never personal. Kind is encouraging but still specific.
Action plan is impact-ranked, not severity-ranked. Use impact × (1 / effort). A 5-minute fix that adds 10 points ranks above a 2-hour fix that adds 12 points.
Never invent URLs. When writing ideal-readme.md, use <placeholder> syntax for missing links. Roast will tell maintainer to fill in.
Never name maintainers or contributors. Roast the work, not the people.
Output exactly four files in dx-roast/. Do not write to other locations. Do not skip files.
Required:
repo — local path (default .) OR https://github.com/owner/repo URLOptional:
| Parameter | Default | Description |
|---|---|---|
tone | honest | brutal / honest / kind |
output_dir | dx-roast/ | Where to write the 4 output files |
compare_to | none | Optional second repo URL for benchmark comparison |
If repo is a URL: clone to a temp dir using git clone <url> /tmp/dx-roast-<short-hash>. Scan from there. Delete temp dir after run.
If repo is . or local path: scan in place, do not modify anything.
Read these files (each may be absent — note absence):
README.md — full contents, structure (headings), code blocks, image refs, badge URLsCONTRIBUTING.md, CODE_OF_CONDUCT.md.github/ISSUE_TEMPLATE/, .github/PULL_REQUEST_TEMPLATE.md, .github/CODEOWNERSpackage.json (description, homepage, repository, license, scripts), pyproject.toml, Cargo.toml, go.modLICENSE (existence + type)docs/ folder contents (just file names + sizes)examples/ or samples/ or cookbook/ folder.github/workflows/*.yml (just names + brief CI presence check)If repo is a URL, also fetch via gh:
gh api repos/<owner>/<repo> --jq '{stars: .stargazers_count, forks: .forks_count, watchers: .subscribers_count, pushed_at, description, homepage, topics, default_branch}'
gh api repos/<owner>/<repo>/commits --jq '.[0].commit.author.date' | head -1
gh api repos/<owner>/<repo>/contributors --paginate --jq '[.[] | .login] | length'Catch and continue if any GitHub call fails.
For each of the 10 dimensions in references/scoring-rubric.md, output {score: 0–10, evidence: [...]} where evidence is a list of 1–3 short strings citing what you found.
Example:
"visual_proof": {
"score": 4,
"evidence": [
"Found 1 screenshot at line 89 (below the fold)",
"No animated demo / gif",
"No video"
]
}Sum scores → total (0–100) → grade (A/B/C/D/F per rubric).
Save to dx-roast/score.json with this exact shape:
{
"repo": "<owner/repo or local path>",
"scanned_at": "<ISO 8601 timestamp>",
"dimensions": {
"time_to_first_success": { "score": 7, "evidence": ["..."] },
"what_is_this_clarity": { "score": 5, "evidence": ["..."] },
"visual_proof": { "score": 4, "evidence": ["..."] },
"install_simplicity": { "score": 9, "evidence": ["..."] },
"runnable_quick_start": { "score": 8, "evidence": ["..."] },
"documentation_depth": { "score": 6, "evidence": ["..."] },
"examples": { "score": 5, "evidence": ["..."] },
"community_signals": { "score": 3, "evidence": ["..."] },
"trust_signals": { "score": 7, "evidence": ["..."] },
"marketing_signals": { "score": 4, "evidence": ["..."] }
},
"total": 58,
"grade": "D",
"tone": "honest"
}Read references/roast-voice-guide.md. Apply the requested tone. Write 250–500 words to dx-roast/roast.md.
Required structure:
# DX Roast: <repo name>
**Grade: <letter> (<total>/100)** · Tone: <tone>
<Paragraph 1: the verdict. What works + the big gap.>
<Paragraph 2: cite 2 specific findings with file references.>
<Paragraph 3: cite 2 more findings, tie to dimension scores.>
<Paragraph 4 (optional): a final twist or comparison to a known good repo.>
<Closing paragraph: point to `action-plan.md` for the path forward.>Every roast must reference at least 3 specific findings from score.json evidence arrays.
Compute priority = impact / effort_minutes for each candidate fix. Take top 5–10. Sort desc by priority.
For each fix, write to dx-roast/action-plan.md:
### N. <Fix in imperative voice, one line>
**Why:** <One-sentence justification. Reference which dimension it improves.>
**Impact:** +<X> points · **Effort:** <5min / 30min / 2h / half-day>
**How:**
1. <Concrete step 1>
2. <Concrete step 2>
3. <Concrete step 3>
<Optional code/markdown snippet showing exact change>Open action-plan.md with:
# Action Plan — <repo name>
Current grade: <letter> (<total>/100)
Top fixes ranked by impact × effort. Do these in order.
---Read references/readme-template.md. Fill the template per "Filling rules" section. Write to dx-roast/ideal-readme.md.
Use placeholders <homepage_url> etc. for missing values. Length cap: 100 lines.
Print this exact format to the user:
DX Roast complete — Grade: <letter> (<total>/100)
Top 3 fixes (impact-ranked):
1. <fix 1> +<X> pts · <effort>
2. <fix 2> +<X> pts · <effort>
3. <fix 3> +<X> pts · <effort>
Files:
→ dx-roast/roast.md (shareable verdict)
→ dx-roast/action-plan.md (prioritized fixes)
→ dx-roast/ideal-readme.md (target state)
→ dx-roast/score.json (raw scores)If compare_to was provided, add a comparison line:
Benchmark: <other repo> scores <X>/100 (grade <Y>) — gap of <delta> points.score.json have score + evidence<placeholder> for any URL not found in scan<TBD> / <TODO> placeholders in roast.md or action-plan.mdIf any check fails, fix and re-run that step.
These four failure modes get explicit handling — never let the skill silently produce a partial output without surfacing the cause.
| Case | Behavior |
|---|---|
repo doesn't exist OR can't be cloned OR can't be read | Exit immediately with the message Repo not found or inaccessible: <repo>. Do not write any output files. |
README.md is missing | Run anyway. Score what_is_this_clarity, visual_proof, runnable_quick_start, and marketing_signals near 0. Use the absence as the opening of the roast ("No README is its own statement"). |
| Repo is private + no GitHub auth available | Try a local clone (git clone <url>); if it fails, exit with Repo is private and no authentication is available. Suggest the user set GITHUB_TOKEN or pass a local path. |
compare_to URL fails (network, 404, private, etc.) | Continue without the benchmark. Add a single line to the roast: Note: requested benchmark against <compare_to> could not be fetched. Omit the Benchmark: line from the terminal summary. |
Any GitHub API error (rate limit, transient 5xx) during Step 2 metadata fetch is caught and logged in score.json under trust_signals.evidence as "github metadata unavailable". The rest of the run proceeds.
Good invocation:
"Roast my repo at https://github.com/myorg/mytool — tone: brutal."
→ Skill clones, scans, scores, writes 4 files to dx-roast/, prints summary. Total runtime <60s for a typical repo.
Good comparison:
"DX audit on the current dir. Benchmark against https://github.com/vercel/next.js."
→ Scans both, scores current, includes benchmark line in roast and summary.
© Varnan-Tech, MIT. 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 4 other files (references) in skills/dx-roaster of Varnan-Tech/opendirectory.
Open the folder on GitHubat commit 62e437a
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in Varnan-Tech/opendirectory, which our catalogue first saw on October 7, 2026.
Dx Roaster 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 |
|---|---|---|---|---|---|---|
| Dx Roaster this skillVarnan-Tech/opendirectory | 674 | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Update .NET OS Packagesdotnet/core | 22k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Beautify GitHub Readmeoil-oil/beautify-github-readme | 1.8k | — | ~4.1k | Automated safety check: Pass | MIT | |
| Library Documentation Seekerwithkynam/vibecode-pro-max-kit | 1.1k | 2 repos | ~1k | Automated safety check: Notes | MIT | |
| Update .NET Supported OS Matrixdotnet/core | 22k | — | ~4.1k | Automated safety check: Pass | MIT | |
| Debate ReviewamElnagdy/review-skills | 132 | 2 repos | ~986 | Automated safety check: Pass | MIT |
dotnet/core
Audits and updates os-packages.json files listing the Linux packages each .NET release needs per distro, then regenerates the Markdown from the JSON.
oil-oil/beautify-github-readme
Redesign GitHub README homepages or create project-native pure SVG, hybrid SVG-composed PNG/WebP, and opt-in animated GIF assets.
withkynam/vibecode-pro-max-kit
Looks up library and framework documentation through Context7 first, with bundled Node scripts as a fallback that fetch and analyze llms.txt files.
dotnet/core
Audits and updates the supported-os.json files for .NET releases, checking them against upstream lifecycle data and regenerating the markdown with the release-notes tool.
amElnagdy/review-skills
Two-model debate review of a GitHub PR, GitLab MR, Azure DevOps PR, or local working tree, posted as inline comments or printed.
agent-substrate/substrate
Posts pull request review findings as GitHub draft (pending) inline comments for a human to edit and submit, instead of publishing them straight to the PR author.
Varnan-Tech/opendirectory
A skill your agent uses when fetching, searching, or analyzing transcripts from Lenny's Podcast, Dwarkesh Podcast, Cheeky Pint, 20VC, or A16z Podcast.
Varnan-Tech/opendirectory
Creates professionally designed B2B SaaS e-books in HTML + CSS, exported as print-ready PDF.
Varnan-Tech/opendirectory
Given a product utility and ICP, researches the internet to find the specific channels.
Varnan-Tech/opendirectory
Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture.
Varnan-Tech/opendirectory
Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6.
Varnan-Tech/opendirectory
Creates animated looping GIFs from CSS animations (default) or AI image-to-video.
Works with
Categories
Brutally honest developer-experience audit for a GitHub repo. Dx Roaster is an agent skill from Varnan-Tech/opendirectory. Brutally honest developer-experience audit for a GitHub repo.
Dx Roaster fits situations like: user says roast my repo; audit my README; developer experience review; score my GitHub project.
Run `npx skills add Varnan-Tech/opendirectory --skill dx-roaster -a claude-code`. Or copy the skill folder (skills/dx-roaster in Varnan-Tech/opendirectory) into .claude/skills/dx-roaster in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Varnan-Tech/opendirectory --skill dx-roaster -a codex`. Or copy the skill folder (skills/dx-roaster in Varnan-Tech/opendirectory) into .agents/skills/dx-roaster 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 Varnan-Tech/opendirectory --skill dx-roaster -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dx-roaster, .gemini/skills/dx-roaster, .github/skills/dx-roaster and .opencode/skills/dx-roaster in your project.
Going by SKILL.md and its folder, Dx Roaster needs the command-line tools its instructions call (gh and git) and credentials named GITHUB_TOKEN. Our summary lists: A credential in GITHUB_TOKEN. Compatibility (from SKILL.md): ["claude-code","gemini-cli","github-copilot"].
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. 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. Review the folder before installing.
Dx Roaster is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k 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 2.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Dx Roaster: Update .NET OS Packages (dotnet/core, 22k stars), Beautify GitHub Readme (oil-oil/beautify-github-readme, 1.8k stars), Library Documentation Seeker (withkynam/vibecode-pro-max-kit, 1.1k stars) and Update .NET Supported OS Matrix (dotnet/core, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Varnan-Tech (a GitHub organization) maintains it in Varnan-Tech/opendirectory, which has 674 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on August 16, 2026.
Source: Varnan-Tech/opendirectory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.