refactor: Update CLI commands to use new unified entry points

Updated all command examples in CLI scripts from old pattern:
  python3 cli/<script>.py → skill-seekers <command>

Changes:
- doc_scraper.py → skill-seekers scrape
- github_scraper.py → skill-seekers github
- pdf_scraper.py → skill-seekers pdf
- unified_scraper.py → skill-seekers unified
- enhance_skill.py → skill-seekers enhance
- enhance_skill_local.py → skill-seekers enhance
- package_skill.py → skill-seekers package
- estimate_pages.py → skill-seekers estimate

This reflects the new modern Python packaging with proper entry
points. Users can now use clean commands instead of file paths.

Files updated: 10 CLI scripts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
yusyus
2025-11-07 01:23:17 +03:00
parent 9931066741
commit 13ca374295
10 changed files with 49 additions and 49 deletions

View File

@@ -4,9 +4,9 @@ Documentation to Claude Skill Converter
Single tool to scrape any documentation and create high-quality Claude skills. Single tool to scrape any documentation and create high-quality Claude skills.
Usage: Usage:
python3 cli/doc_scraper.py --interactive skill-seekers scrape --interactive
python3 cli/doc_scraper.py --config configs/godot.json skill-seekers scrape --config configs/godot.json
python3 cli/doc_scraper.py --url https://react.dev/ --name react skill-seekers scrape --url https://react.dev/ --name react
""" """
import os import os
@@ -1735,7 +1735,7 @@ def execute_enhancement(config: Dict[str, Any], args: argparse.Namespace) -> Non
logger.warning("\n⚠ Enhancement failed, but skill was still built") logger.warning("\n⚠ Enhancement failed, but skill was still built")
except FileNotFoundError: except FileNotFoundError:
logger.warning("\n⚠ enhance_skill.py not found. Run manually:") logger.warning("\n⚠ enhance_skill.py not found. Run manually:")
logger.info(" python3 cli/enhance_skill.py output/%s/", config['name']) logger.info(" skill-seekers-enhance output/%s/", config['name'])
# Optional enhancement with Claude Code (local, no API key) # Optional enhancement with Claude Code (local, no API key)
if args.enhance_local: if args.enhance_local:
@@ -1750,18 +1750,18 @@ def execute_enhancement(config: Dict[str, Any], args: argparse.Namespace) -> Non
logger.warning("\n⚠ Enhancement failed, but skill was still built") logger.warning("\n⚠ Enhancement failed, but skill was still built")
except FileNotFoundError: except FileNotFoundError:
logger.warning("\n⚠ enhance_skill_local.py not found. Run manually:") logger.warning("\n⚠ enhance_skill_local.py not found. Run manually:")
logger.info(" python3 cli/enhance_skill_local.py output/%s/", config['name']) logger.info(" skill-seekers-enhance output/%s/", config['name'])
# Print packaging instructions # Print packaging instructions
logger.info("\n📦 Package your skill:") logger.info("\n📦 Package your skill:")
logger.info(" python3 cli/package_skill.py output/%s/", config['name']) logger.info(" skill-seekers-package output/%s/", config['name'])
# Suggest enhancement if not done # Suggest enhancement if not done
if not args.enhance and not args.enhance_local: if not args.enhance and not args.enhance_local:
logger.info("\n💡 Optional: Enhance SKILL.md with Claude:") logger.info("\n💡 Optional: Enhance SKILL.md with Claude:")
logger.info(" API-based: python3 cli/enhance_skill.py output/%s/", config['name']) logger.info(" API-based: skill-seekers-enhance output/%s/", config['name'])
logger.info(" or re-run with: --enhance") logger.info(" or re-run with: --enhance")
logger.info(" Local (no API key): python3 cli/enhance_skill_local.py output/%s/", config['name']) logger.info(" Local (no API key): skill-seekers-enhance output/%s/", config['name'])
logger.info(" or re-run with: --enhance-local") logger.info(" or re-run with: --enhance-local")

View File

@@ -4,9 +4,9 @@ SKILL.md Enhancement Script
Uses Claude API to improve SKILL.md by analyzing reference documentation. Uses Claude API to improve SKILL.md by analyzing reference documentation.
Usage: Usage:
python3 cli/enhance_skill.py output/steam-inventory/ skill-seekers enhance output/steam-inventory/
python3 cli/enhance_skill.py output/react/ skill-seekers enhance output/react/
python3 cli/enhance_skill.py output/godot/ --api-key YOUR_API_KEY skill-seekers enhance output/godot/ --api-key YOUR_API_KEY
""" """
import os import os
@@ -188,7 +188,7 @@ Return ONLY the complete SKILL.md content, starting with the frontmatter (---).
print(f" 1. Review: {self.skill_md_path}") print(f" 1. Review: {self.skill_md_path}")
print(f" 2. If you don't like it, restore backup: {self.skill_md_path.with_suffix('.md.backup')}") print(f" 2. If you don't like it, restore backup: {self.skill_md_path.with_suffix('.md.backup')}")
print(f" 3. Package your skill:") print(f" 3. Package your skill:")
print(f" python3 cli/package_skill.py {self.skill_dir}/") print(f" skill-seekers package {self.skill_dir}/")
return True return True
@@ -201,13 +201,13 @@ def main():
Examples: Examples:
# Using ANTHROPIC_API_KEY environment variable # Using ANTHROPIC_API_KEY environment variable
export ANTHROPIC_API_KEY=sk-ant-... export ANTHROPIC_API_KEY=sk-ant-...
python3 cli/enhance_skill.py output/steam-inventory/ skill-seekers enhance output/steam-inventory/
# Providing API key directly # Providing API key directly
python3 cli/enhance_skill.py output/react/ --api-key sk-ant-... skill-seekers enhance output/react/ --api-key sk-ant-...
# Show what would be done (dry run) # Show what would be done (dry run)
python3 cli/enhance_skill.py output/godot/ --dry-run skill-seekers enhance output/godot/ --dry-run
""" """
) )
@@ -246,7 +246,7 @@ Examples:
print(f" - {rf.name} ({size:,} bytes)") print(f" - {rf.name} ({size:,} bytes)")
print("\nTo actually run enhancement:") print("\nTo actually run enhancement:")
print(f" python3 cli/enhance_skill.py {skill_dir}") print(f" skill-seekers enhance {skill_dir}")
return return
# Create enhancer and run # Create enhancer and run
@@ -260,7 +260,7 @@ Examples:
print("\nSet your API key:") print("\nSet your API key:")
print(" export ANTHROPIC_API_KEY=sk-ant-...") print(" export ANTHROPIC_API_KEY=sk-ant-...")
print("Or provide it directly:") print("Or provide it directly:")
print(f" python3 cli/enhance_skill.py {skill_dir} --api-key sk-ant-...") print(f" skill-seekers enhance {skill_dir} --api-key sk-ant-...")
sys.exit(1) sys.exit(1)
except Exception as e: except Exception as e:
print(f"❌ Unexpected error: {e}") print(f"❌ Unexpected error: {e}")

View File

@@ -5,8 +5,8 @@ Opens a new terminal with Claude Code to enhance SKILL.md, then reports back.
No API key needed - uses your existing Claude Code Max plan! No API key needed - uses your existing Claude Code Max plan!
Usage: Usage:
python3 cli/enhance_skill_local.py output/steam-inventory/ skill-seekers enhance output/steam-inventory/
python3 cli/enhance_skill_local.py output/react/ skill-seekers enhance output/react/
Terminal Selection: Terminal Selection:
The script automatically detects which terminal app to use: The script automatically detects which terminal app to use:
@@ -277,18 +277,18 @@ rm {prompt_file}
print("💡 When done:") print("💡 When done:")
print(f" 1. Check the enhanced SKILL.md: {self.skill_md_path}") print(f" 1. Check the enhanced SKILL.md: {self.skill_md_path}")
print(f" 2. If you don't like it, restore: mv {self.skill_md_path.with_suffix('.md.backup')} {self.skill_md_path}") print(f" 2. If you don't like it, restore: mv {self.skill_md_path.with_suffix('.md.backup')} {self.skill_md_path}")
print(f" 3. Package: python3 cli/package_skill.py {self.skill_dir}/") print(f" 3. Package: skill-seekers package {self.skill_dir}/")
return True return True
def main(): def main():
if len(sys.argv) < 2: if len(sys.argv) < 2:
print("Usage: python3 cli/enhance_skill_local.py <skill_directory>") print("Usage: skill-seekers enhance <skill_directory>")
print() print()
print("Examples:") print("Examples:")
print(" python3 cli/enhance_skill_local.py output/steam-inventory/") print(" skill-seekers enhance output/steam-inventory/")
print(" python3 cli/enhance_skill_local.py output/react/") print(" skill-seekers enhance output/react/")
sys.exit(1) sys.exit(1)
skill_dir = sys.argv[1] skill_dir = sys.argv[1]

View File

@@ -240,13 +240,13 @@ def main():
epilog=""" epilog="""
Examples: Examples:
# Estimate pages for a config # Estimate pages for a config
python3 cli/estimate_pages.py configs/react.json skill-seekers estimate configs/react.json
# Estimate with higher discovery limit # Estimate with higher discovery limit
python3 cli/estimate_pages.py configs/godot.json --max-discovery 2000 skill-seekers estimate configs/godot.json --max-discovery 2000
# Quick estimate (stop at 100 pages) # Quick estimate (stop at 100 pages)
python3 cli/estimate_pages.py configs/vue.json --max-discovery 100 skill-seekers estimate configs/vue.json --max-discovery 100
""" """
) )

View File

@@ -263,9 +263,9 @@ Examples:
print(f"{'='*60}") print(f"{'='*60}")
print(f"1. Review router SKILL.md: {skill_path}") print(f"1. Review router SKILL.md: {skill_path}")
print(f"2. Optionally scrape router (for overview pages):") print(f"2. Optionally scrape router (for overview pages):")
print(f" python3 cli/doc_scraper.py --config {config_path}") print(f" skill-seekers scrape --config {config_path}")
print("3. Package router skill:") print("3. Package router skill:")
print(f" python3 cli/package_skill.py output/{generator.router_name}/") print(f" skill-seekers package output/{generator.router_name}/")
print("4. Upload router + all sub-skills to Claude") print("4. Upload router + all sub-skills to Claude")
print("") print("")

View File

@@ -9,9 +9,9 @@ Converts GitHub repositories into Claude AI skills by extracting:
- Usage examples from tests - Usage examples from tests
Usage: Usage:
python3 cli/github_scraper.py --repo facebook/react skill-seekers github --repo facebook/react
python3 cli/github_scraper.py --config configs/react_github.json skill-seekers github --config configs/react_github.json
python3 cli/github_scraper.py --repo owner/repo --token $GITHUB_TOKEN skill-seekers github --repo owner/repo --token $GITHUB_TOKEN
""" """
import os import os
@@ -735,9 +735,9 @@ def main():
formatter_class=argparse.RawDescriptionHelpFormatter, formatter_class=argparse.RawDescriptionHelpFormatter,
epilog=""" epilog="""
Examples: Examples:
python3 cli/github_scraper.py --repo facebook/react skill-seekers github --repo facebook/react
python3 cli/github_scraper.py --config configs/react_github.json skill-seekers github --config configs/react_github.json
python3 cli/github_scraper.py --repo owner/repo --token $GITHUB_TOKEN skill-seekers github --repo owner/repo --token $GITHUB_TOKEN
""" """
) )
@@ -786,7 +786,7 @@ Examples:
converter.build_skill() converter.build_skill()
logger.info(f"\n✅ Success! Skill created at: output/{config.get('name', config['repo'].split('/')[-1])}/") logger.info(f"\n✅ Success! Skill created at: output/{config.get('name', config['repo'].split('/')[-1])}/")
logger.info(f"Next step: python3 cli/package_skill.py output/{config.get('name', config['repo'].split('/')[-1])}/") logger.info(f"Next step: skill-seekers-package output/{config.get('name', config['repo'].split('/')[-1])}/")
except Exception as e: except Exception as e:
logger.error(f"Error: {e}") logger.error(f"Error: {e}")

View File

@@ -4,9 +4,9 @@ Simple Skill Packager
Packages a skill directory into a .zip file for Claude. Packages a skill directory into a .zip file for Claude.
Usage: Usage:
python3 cli/package_skill.py output/steam-inventory/ skill-seekers package output/steam-inventory/
python3 cli/package_skill.py output/react/ skill-seekers package output/react/
python3 cli/package_skill.py output/react/ --no-open # Don't open folder skill-seekers package output/react/ --no-open # Don't open folder
""" """
import os import os
@@ -96,13 +96,13 @@ def main():
epilog=""" epilog="""
Examples: Examples:
# Package skill and open folder # Package skill and open folder
python3 cli/package_skill.py output/react/ skill-seekers package output/react/
# Package skill without opening folder # Package skill without opening folder
python3 cli/package_skill.py output/react/ --no-open skill-seekers package output/react/ --no-open
# Get help # Get help
python3 cli/package_skill.py --help skill-seekers package --help
""" """
) )

View File

@@ -195,7 +195,7 @@ class PDFToSkillConverter:
self._generate_skill_md(categorized) self._generate_skill_md(categorized)
print(f"\n✅ Skill built successfully: {self.skill_dir}/") print(f"\n✅ Skill built successfully: {self.skill_dir}/")
print(f"\n📦 Next step: Package with: python3 cli/package_skill.py {self.skill_dir}/") print(f"\n📦 Next step: Package with: skill-seekers package {self.skill_dir}/")
def _generate_reference_file(self, cat_key, cat_data): def _generate_reference_file(self, cat_key, cat_data):
"""Generate a reference markdown file for a category""" """Generate a reference markdown file for a category"""

View File

@@ -310,9 +310,9 @@ Split Strategies:
print("1. Review generated configs") print("1. Review generated configs")
print("2. Scrape each config:") print("2. Scrape each config:")
for filepath in saved_files: for filepath in saved_files:
print(f" python3 cli/doc_scraper.py --config {filepath}") print(f" skill-seekers scrape --config {filepath}")
print("3. Package skills:") print("3. Package skills:")
print(" python3 cli/package_multi.py configs/<name>-*.json") print(" skill-seekers-package-multi configs/<name>-*.json")
print("") print("")

View File

@@ -8,8 +8,8 @@ detects conflicts, merges intelligently, and builds unified skills.
This is the main entry point for unified config workflow. This is the main entry point for unified config workflow.
Usage: Usage:
python3 cli/unified_scraper.py --config configs/godot_unified.json skill-seekers unified --config configs/godot_unified.json
python3 cli/unified_scraper.py --config configs/react_unified.json --merge-mode claude-enhanced skill-seekers unified --config configs/react_unified.json --merge-mode claude-enhanced
""" """
import os import os
@@ -422,13 +422,13 @@ def main():
epilog=""" epilog="""
Examples: Examples:
# Basic usage with unified config # Basic usage with unified config
python3 cli/unified_scraper.py --config configs/godot_unified.json skill-seekers unified --config configs/godot_unified.json
# Override merge mode # Override merge mode
python3 cli/unified_scraper.py --config configs/react_unified.json --merge-mode claude-enhanced skill-seekers unified --config configs/react_unified.json --merge-mode claude-enhanced
# Backward compatible with legacy configs # Backward compatible with legacy configs
python3 cli/unified_scraper.py --config configs/react.json skill-seekers unified --config configs/react.json
""" """
) )