
repository-metadata-generator
by zircote
Claude Code plugin for GitHub repository optimization. Auto-generates social preview images via DALL-E/Stable Diffusion, creates SEO-friendly descriptions, and suggests discoverable topics. Works with zero configuration.
SKILL.md
name: Repository Metadata Generator description: This skill should be used when the user asks to "update repo description", "improve repository description", "generate topics", "add labels to repo", "optimize github metadata", "make repo more discoverable", "improve repo SEO", "update project description", or needs to create engaging repository descriptions and topics that improve discoverability. Analyzes project files to generate optimized GitHub metadata.
Repository Metadata Generator
Generate engaging GitHub repository descriptions and topics by analyzing project intent, purpose, and features. Create metadata that improves discoverability and accurately represents what a project does.
Overview
This skill analyzes a project's codebase, documentation, and configuration to understand its purpose, then generates:
- An optimized repository description (default, no configuration needed)
- Relevant topics/labels for discoverability
- Optionally applies changes via
ghCLI (when user confirms)
GitHub Metadata Constraints
All generated metadata must meet GitHub's requirements:
Description:
- Maximum: 350 characters
- Should be concise, engaging, and searchable
- No markdown or special formatting
- Include key functionality and value proposition
Topics:
- Maximum: 20 topics per repository
- Each topic: lowercase, hyphenated, no spaces
- Maximum 50 characters per topic
- Should include: language, framework, domain, features
Workflow
Step 1: Check for Configuration
Look for optional settings file at .claude/github-social.local.md.
If file exists, check for metadata preferences:
description_style: concise | detailed | technicaltopic_count: Number of topics to suggest (default: 10)include_language: Whether to include primary language as topicinclude_framework: Whether to include frameworks as topics
If no config exists, proceed with defaults.
Step 2: Analyze Project
Gather project context by reading available files:
Primary sources (check in order):
README.md- Project description, features, purposepackage.json/Cargo.toml/pyproject.toml/go.mod- Name, description, keywordsCLAUDE.md- Project context and guidelines- Source code structure - Primary language, frameworks
Extract these elements:
- Project name: Official name
- Purpose: What problem does it solve? (1-2 sentences)
- Key features: Top 3-5 capabilities
- Technology: Primary language and frameworks
- Domain: What field/industry? (DevTools, AI, Web, etc.)
- Target audience: Who uses this?
- Unique value: What makes it different?
Step 3: Generate Description
Craft an engaging description that:
- Leads with value - What does it do for the user?
- Includes key features - Top 2-3 capabilities
- Uses active voice - Direct, engaging language
- Stays within 350 chars - Concise but complete
- Avoids jargon - Accessible to broader audience
Description patterns by project type:
Library/Package:
[Action verb] [what it does] for [language/platform]. Features [key capability 1], [key capability 2], and [key capability 3].
CLI Tool:
[Action verb] [what problem it solves] from the command line. [Key benefit or feature].
Framework:
[Adjective] [type] framework for building [what]. [Key differentiator].
Application:
[What it is] that [what it does]. [Key benefit for users].
Step 4: Generate Topics
Select relevant topics from these categories:
Language/Runtime (1-2 topics):
- Primary language:
python,typescript,rust,go - Runtime:
nodejs,deno,bun
Framework/Library (1-3 topics):
- Web:
react,vue,nextjs,fastapi - Data:
pandas,numpy,pytorch - CLI:
cli,command-line,terminal
Domain (2-4 topics):
devtools,developer-tools,automationmachine-learning,ai,data-scienceweb-development,frontend,backenddatabase,api,infrastructure
Features (2-4 topics):
open-source,cross-platformtesting,documentation,monitoring- Feature-specific:
image-generation,code-review
Quality/Style (1-2 topics):
lightweight,fast,minimalproduction-ready,enterprise
Topic formatting rules:
- All lowercase
- Hyphens for multi-word:
machine-learningnotmachine_learning - No special characters
- Max 50 chars per topic
Step 5: Output or Apply
Default (output only):
Display the generated metadata:
## Generated Repository Metadata
### Description (X characters)
[Generated description]
### Topics (X topics)
[topic-1] [topic-2] [topic-3] ...
### To Apply Manually
1. Go to repository Settings → General
2. Update "Description" field
3. Add topics under "Topics"
### To Apply via CLI
gh repo edit --description "[description]"
gh repo edit --add-topic topic-1 --add-topic topic-2 ...
Apply mode (when user confirms):
If user says "apply", "update", or "yes, update the repo":
# Update description
gh repo edit --description "[generated description]"
# Add topics (one at a time)
gh repo edit --add-topic topic-1
gh repo edit --add-topic topic-2
# ... for each topic
Verify changes:
gh repo view --json description,repositoryTopics
Report success or errors.
Description Writing Guidelines
Do:
- Start with a strong action verb
- Focus on user benefit
- Include searchable keywords naturally
- Be specific about what it does
- Keep it scannable
Don't:
- Start with "A" or "This is"
- Use passive voice
- Include version numbers
- Use excessive punctuation
- Make unsubstantiated claims ("best", "fastest")
Examples by quality:
Poor:
This is a tool for working with images. It can do many things.
Good:
Generate social preview images for GitHub repos by analyzing project intent. Supports DALL-E, Stable Diffusion, and manual prompts.
Poor:
A Python library.
Good:
Fast, type-safe HTTP client for Python with automatic retries, connection pooling, and OpenAPI integration.
Topic Selection Strategy
For maximum discoverability:
- Include the obvious - Language, primary framework
- Add the domain - What category of tool is this?
- Feature keywords - What can users search for?
- Ecosystem tags - Related tools/standards
- Audience tags - Who is this for?
Example topic sets:
Python CLI tool:
python cli command-line terminal devtools automation pip hacktoberfest
React component library:
react typescript components ui-library frontend web npm design-system
Machine learning project:
python machine-learning deep-learning pytorch neural-network ai data-science
DevOps tool:
devops kubernetes docker infrastructure automation ci-cd cloud-native golang
Error Handling
No README or project files found: Ask user to describe the project, then proceed with that information.
gh CLI not available: Output metadata only with manual instructions.
gh repo edit fails:
- Report the error
- Check if user has repo admin access
- Suggest manual update via GitHub UI
Repository not found: Verify user is in a git repo with GitHub remote.
Examples
Example 1: CLI Tool
Project analysis:
- Name: github-social
- Purpose: Generate social preview images
- Tech: Claude Code plugin
- Features: DALL-E support, multiple styles, zero-config
Generated description:
Generate social preview images for GitHub repositories by analyzing project intent. Supports DALL-E, Stable Diffusion, and manual prompt generation.
(148 characters)
Generated topics:
github claude-code plugin social-preview image-generation dalle openai devtools automation open-source
Example 2: Python Library
Project analysis:
- Name: fasthttp
- Purpose: HTTP client library
- Tech: Python, async
- Features: Fast, typed, retries
Generated description:
Async HTTP client for Python with automatic retries, connection pooling, and full type hints. Built for performance and developer experience.
(142 characters)
Generated topics:
python http-client async asyncio requests api web typed networking pip
Additional Resources
Reference Files
references/description-patterns.md- Detailed description templates by project typereferences/topic-taxonomy.md- Comprehensive topic categories and examples
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon

