init
This commit is contained in:
251
.opencode/skills/repomix/SKILL.md
Normal file
251
.opencode/skills/repomix/SKILL.md
Normal file
@@ -0,0 +1,251 @@
|
||||
---
|
||||
name: ck:repomix
|
||||
description: Pack repositories into AI-friendly files with Repomix (XML, Markdown, plain text). Use for codebase snapshots, LLM context preparation, security audits, third-party library analysis.
|
||||
argument-hint: "[path] [--style xml|markdown|plain|json]"
|
||||
metadata:
|
||||
author: claudekit
|
||||
version: "1.0.0"
|
||||
---
|
||||
|
||||
# Repomix Skill
|
||||
|
||||
Repomix packs entire repositories into single, AI-friendly files. Perfect for feeding codebases to LLMs like Claude, ChatGPT, and Gemini.
|
||||
|
||||
## When to Use
|
||||
|
||||
Use when:
|
||||
- Packaging codebases for AI analysis
|
||||
- Creating repository snapshots for LLM context
|
||||
- Analyzing third-party libraries
|
||||
- Preparing for security audits
|
||||
- Generating documentation context
|
||||
- Investigating bugs across large codebases
|
||||
- Creating AI-friendly code representations
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Check Installation
|
||||
```bash
|
||||
repomix --version
|
||||
```
|
||||
|
||||
### Install
|
||||
```bash
|
||||
# npm
|
||||
npm install -g repomix
|
||||
|
||||
# Homebrew (macOS/Linux)
|
||||
brew install repomix
|
||||
```
|
||||
|
||||
### Basic Usage
|
||||
```bash
|
||||
# Package current directory (generates repomix-output.xml)
|
||||
repomix
|
||||
|
||||
# Specify output format
|
||||
repomix --style markdown
|
||||
repomix --style json
|
||||
|
||||
# Package remote repository
|
||||
npx repomix --remote owner/repo
|
||||
|
||||
# Custom output with filters
|
||||
repomix --include "src/**/*.ts" --remove-comments -o output.md
|
||||
```
|
||||
|
||||
## Core Capabilities
|
||||
|
||||
### Repository Packaging
|
||||
- AI-optimized formatting with clear separators
|
||||
- Multiple output formats: XML, Markdown, JSON, Plain text
|
||||
- Git-aware processing (respects .gitignore)
|
||||
- Token counting for LLM context management
|
||||
- Security checks for sensitive information
|
||||
|
||||
### Remote Repository Support
|
||||
Process remote repositories without cloning:
|
||||
```bash
|
||||
# Shorthand
|
||||
npx repomix --remote yamadashy/repomix
|
||||
|
||||
# Full URL
|
||||
npx repomix --remote https://github.com/owner/repo
|
||||
|
||||
# Specific commit
|
||||
npx repomix --remote https://github.com/owner/repo/commit/hash
|
||||
```
|
||||
|
||||
### Comment Removal
|
||||
Strip comments from supported languages (HTML, CSS, JavaScript, TypeScript, Vue, Svelte, Python, PHP, Ruby, C, C#, Java, Go, Rust, Swift, Kotlin, Dart, Shell, YAML):
|
||||
```bash
|
||||
repomix --remove-comments
|
||||
```
|
||||
|
||||
## Common Use Cases
|
||||
|
||||
### Code Review Preparation
|
||||
```bash
|
||||
# Package feature branch for AI review
|
||||
repomix --include "src/**/*.ts" --remove-comments -o review.md --style markdown
|
||||
```
|
||||
|
||||
### Security Audit
|
||||
```bash
|
||||
# Package third-party library
|
||||
npx repomix --remote vendor/library --style xml -o audit.xml
|
||||
```
|
||||
|
||||
### Documentation Generation
|
||||
```bash
|
||||
# Package with docs and code
|
||||
repomix --include "src/**,docs/**,*.md" --style markdown -o context.md
|
||||
```
|
||||
|
||||
### Bug Investigation
|
||||
```bash
|
||||
# Package specific modules
|
||||
repomix --include "src/auth/**,src/api/**" -o debug-context.xml
|
||||
```
|
||||
|
||||
### Implementation Planning
|
||||
```bash
|
||||
# Full codebase context
|
||||
repomix --remove-comments --copy
|
||||
```
|
||||
|
||||
## Command Line Reference
|
||||
|
||||
### File Selection
|
||||
```bash
|
||||
# Include specific patterns
|
||||
repomix --include "src/**/*.ts,*.md"
|
||||
|
||||
# Ignore additional patterns
|
||||
repomix -i "tests/**,*.test.js"
|
||||
|
||||
# Disable .gitignore rules
|
||||
repomix --no-gitignore
|
||||
```
|
||||
|
||||
### Output Options
|
||||
```bash
|
||||
# Output format
|
||||
repomix --style markdown # or xml, json, plain
|
||||
|
||||
# Output file path
|
||||
repomix -o output.md
|
||||
|
||||
# Remove comments
|
||||
repomix --remove-comments
|
||||
|
||||
# Copy to clipboard
|
||||
repomix --copy
|
||||
```
|
||||
|
||||
### Configuration
|
||||
```bash
|
||||
# Use custom config file
|
||||
repomix -c custom-config.json
|
||||
|
||||
# Initialize new config
|
||||
repomix --init # creates repomix.config.json
|
||||
```
|
||||
|
||||
## Token Management
|
||||
|
||||
Repomix automatically counts tokens for individual files, total repository, and per-format output.
|
||||
|
||||
Typical LLM context limits:
|
||||
- Claude Sonnet 4.5: ~200K tokens
|
||||
- GPT-4: ~128K tokens
|
||||
- GPT-3.5: ~16K tokens
|
||||
|
||||
### Token Count Optimization
|
||||
Understanding your codebase's token distribution is crucial for optimizing AI interactions. Use the --token-count-tree option to visualize token usage across your project:
|
||||
|
||||
```bash
|
||||
repomix --token-count-tree
|
||||
```
|
||||
This displays a hierarchical view of your codebase with token counts:
|
||||
|
||||
```
|
||||
🔢 Token Count Tree:
|
||||
────────────────────
|
||||
└── src/ (70,925 tokens)
|
||||
├── cli/ (12,714 tokens)
|
||||
│ ├── actions/ (7,546 tokens)
|
||||
│ └── reporters/ (990 tokens)
|
||||
└── core/ (41,600 tokens)
|
||||
├── file/ (10,098 tokens)
|
||||
└── output/ (5,808 tokens)
|
||||
```
|
||||
You can also set a minimum token threshold to focus on larger files:
|
||||
|
||||
```bash
|
||||
repomix --token-count-tree 1000 # Only show files/directories with 1000+ tokens
|
||||
```
|
||||
|
||||
This helps you:
|
||||
|
||||
- Identify token-heavy files that might exceed AI context limits
|
||||
- Optimize file selection using --include and --ignore patterns
|
||||
- Plan compression strategies by targeting the largest contributors
|
||||
- Balance content vs. context when preparing code for AI analysis
|
||||
|
||||
## Security Considerations
|
||||
|
||||
Repomix uses Secretlint to detect sensitive data (API keys, passwords, credentials, private keys, AWS secrets).
|
||||
|
||||
Best practices:
|
||||
1. Always review output before sharing
|
||||
2. Use `.repomixignore` for sensitive files
|
||||
3. Enable security checks for unknown codebases
|
||||
4. Avoid packaging `.env` files
|
||||
5. Check for hardcoded credentials
|
||||
|
||||
Disable security checks if needed:
|
||||
```bash
|
||||
repomix --no-security-check
|
||||
```
|
||||
|
||||
## Implementation Workflow
|
||||
|
||||
When user requests repository packaging:
|
||||
|
||||
1. **Assess Requirements**
|
||||
- Identify target repository (local/remote)
|
||||
- Determine output format needed
|
||||
- Check for sensitive data concerns
|
||||
|
||||
2. **Configure Filters**
|
||||
- Set include patterns for relevant files
|
||||
- Add ignore patterns for unnecessary files
|
||||
- Enable/disable comment removal
|
||||
|
||||
3. **Execute Packaging**
|
||||
- Run repomix with appropriate options
|
||||
- Monitor token counts
|
||||
- Verify security checks
|
||||
|
||||
4. **Validate Output**
|
||||
- Review generated file
|
||||
- Confirm no sensitive data
|
||||
- Check token limits for target LLM
|
||||
|
||||
5. **Deliver Context**
|
||||
- Provide packaged file to user
|
||||
- Include token count summary
|
||||
- Note any warnings or issues
|
||||
|
||||
## Reference Documentation
|
||||
|
||||
For detailed information, see:
|
||||
- [Configuration Reference](./references/configuration.md) - Config files, include/exclude patterns, output formats, advanced options
|
||||
- [Usage Patterns](./references/usage-patterns.md) - AI analysis workflows, security audit preparation, documentation generation, library evaluation
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- GitHub: https://github.com/yamadashy/repomix
|
||||
- Documentation: https://repomix.com/guide/
|
||||
- MCP Server: Available for AI assistant integration
|
||||
Reference in New Issue
Block a user