> Audits and optimizes GitHub profile pages — profile README, metadata fields, pinned repositories, stats widgets, and contribution visibility. Use this skill whenever the user asks to improve, create, review, or optimize their GitHub profile, or mentions "profile README", "GitHub bio", "pinned repos", "GitHub stats", "contribution graph", or "GitHub presence". Also trigger when someone says things like "make my GitHub look good", "I want a better GitHub profile", "help me stand out on GitHub", "set up my GitHub page", or "optimize my developer profile". Works for both personal profiles and organization profile pages.
npx skills add https://github.com/jdevalk/skills --skill github-profile
This skill audits a GitHub profile and generates an optimized profile README along with recommendations for metadata, pinned repositories, and stats widgets. A strong GitHub profile is a developer's storefront — it shapes perception before anyone reads a line of code.
Code recipes live in AGENTS.md — read it when you need to implement a specific fix. This file has the workflow and audit checklist.
Ask the user (if not obvious): is this a personal profile or an organization profile? The mechanics differ significantly:
| Feature | Personal profile | Organization profile |
| --- | --- | --- |
| README location | username/username/README.md | .github/profile/README.md |
| Visibility options | Public only | Public + member-only (via .github-private repo) |
| Pinned repos | Up to 6 | Up to 6 public + 6 member-only |
| Contribution graph | Yes | No |
| Achievements | Yes | No |
Gather before writing: username, current role/company, primary technologies, what they want to showcase, tone (professional/casual/creative/minimal), and target audience (recruiters/collaborators/investors/OSS community).
If gh is available (gh auth status), pull automatically:
gh api user — name, bio, company, location, blog, twittergh api users/{username}/repos?sort=stars&per_page=10 — top repos for pin recommendationsgh repo view {username}/{username} --json name 2>/dev/null — check if magic repo existsIf the user has an existing profile, audit it. If they're starting fresh, skip to Phase 2. Score four categories (each x/10, total x/40):
username/username repo with README.md is the biggest miss.<details> for collapsible sections.Every empty field is a missed opportunity:
@ prefix? Location, Website — filled in?Up to 6 repos (including contributed-to repos):
Based on the audit (or from scratch), produce the profile README. Read AGENTS.md for detailed recipes.
The profile README should be scannable, personal, and purposeful — every section should serve the person's goals. Adapt tone and structure to the audience.
AGENTS.md sections: Personal profile README template, Stats widgets, Badges for tech stack and social links, Dynamic auto-updating content, Organization profile README, Profile generators.
metadata-check skill — run on the GitHub bio (160 chars) and any pinned repo descriptions you rewrote. Front-loading, concreteness, active voice, truncation fit (GitHub shows ~100 chars in profile cards).readability-check skill — run on the profile README body. Profile READMEs are skimmed; one passive or long sentence stands out.Apply fixes directly. Focus on: (1) bio / opening README line (disproportionate weight); (2) first sentence of each section (skimming entry point); (3) passive voice (flat in first-person content).
Be specific: "Set your bio to: [text, under 160 chars]", "Add these topics to your top repos: [list]", "Set your status to: [suggestion]".
Recommend which 6 repos to pin and why — variety across technologies, star count (social proof), README quality, alignment with goals. If pinned repos have weak READMEs, suggest improving those first (github-repo skill).
username/username) if it doesn't exist, and push the README thereScore table (4 categories, each x/10, total x/40) → Findings grouped by category → Files generated or changed → Next steps (settings changes, repos to pin, manual GitHub config).
lowlighter/metrics) and an optional auto-updating blog feed keep a profile fresh — one of each is usually plenty. Avoid third-party-hosted widgets that 502 unpredictably; see AGENTS.md.Take jdevalk/github-profile from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.