A Skills Foundry for individuals and teams: An intelligent agent that automatically transforms natural language requirements into distributable Skill packages, with a complete Generate β Validate β Test β Package β Publish workflow, ultimately building your Personal Skills Repository.
π― Goal: Turn "writing requirements" into "deliverable Skills", turn "scripts" into "publishable assets".
- From 0 to 1: Write a single requirement, automatically generate structured Skill packages (code, docs, dependencies, config, assets)
- From 1 to N: Manage Skills like a codebase (versioning, testing, CI/CD, publishing)
- Controllable & Reviewable: Generated results include requirement analysis artifacts, traceable logs, and auto-validation for easy review and iteration
- Multi-Model Strategy: Support cloud/local LLMs with "latest-preferred strategy" by default, avoiding lock-in to outdated models
- π€ Requirement Understanding & Structured Analysis - Parse natural language requirements into executable Skill specs (
.requirement.json) using LLM-powered analysis - π§© Auto-Generate Runnable Code - Produce compliant Python scripts with complete implementations (no TODO placeholders), including argparse, logging, and error handling
- π TODO Detection & Auto-Completion - Automatically detect and complete TODO placeholders in generated code using LLM
- π Auto-Generate Standard Documentation - Generate structured
SKILL.mdwith YAML frontmatter, usage guides, examples, and API documentation - π¦ Dependencies & Reproducibility - Generate
requirements.txt, support uv/pip installation - β
Post-Generation Validation - Static checks + compliance verification using
quick_validate.pyto ensure Skills are distributable - π¦ One-Click Packaging - Output standard
.skilldistribution packages (ZIP format) usingpackage_skill.py - π Fallback Strategy - Use rule/template mode when LLM unavailable to ensure availability
- π§Ύ Full-Chain Logging - Record generation process, prompts, model info (for traceability and auditing)
- π Generation Record Tracking - Automatically record detailed generation info to CSV (requirements, model, duration, file structure, etc.)
- π§ͺ Test & Publish Friendly - Auto-generate test scripts, CI-ready (GitHub Actions), extensible for auto-publishing to Releases/Registry
- Personal: Build your own Skills Repository (data processing, automation, scaffolding, data cleaning, report generation, etc.)
- Team: Accumulate organization-level skill assets (tooling, standardization, reusability)
- Teaching/Research: Rapidly produce runnable engineering samples for validating and iterating ideas
- Python 3.10+ (3.12 recommended)
- uv (recommended) or pip
# Clone the repository
git clone https://github.com/your-org/skill-generator-agent.git
cd skill-generator-agent
# Run setup script (recommended - automatically installs uv if needed)
bash scripts/setup.sh
# Activate virtual environment
source .venv/bin/activate # Linux/Mac
# .venv\Scripts\activate # WindowsCopy the environment template and fill in your API keys:
cp .env.example .envEdit .env file with your configuration:
# ========== OpenAI ==========
OPENAI_API_KEY=sk-...
OPENAI_API_BASE=https://api.openai.com/v1 # Optional: custom endpoint
OPENAI_MODEL=gpt-5-mini # Recommended: Latest cost-effective model
# ========== Anthropic ==========
ANTHROPIC_API_KEY=sk-...
ANTHROPIC_MODEL=claude-3-5-sonnet-20241022 # Recommended: Latest high-quality model
# ========== Ollama (Local, Free) ==========
OLLAMA_HOST=http://localhost:11434
OLLAMA_MODEL=llama3.2 # Recommended: llama3.2, qwen2.5
# ========== Proxy Configuration (Optional) ==========
HTTP_PROXY=http://proxy.example.com:8118
HTTPS_PROXY=http://proxy.example.com:8118
# ========== Generation Parameters (Optional) ==========
LLM_TEMPERATURE=0.7
LLM_MAX_TOKENS=4000π‘ Model Selection Strategy:
- The tool automatically detects available API keys and selects the best provider
- Priority order: OpenAI β Anthropic β Ollama
- You can override with
--llmand--modelcommand-line arguments- Supports proxy configuration for network-restricted environments
Click to expand full model support list
| Model | Context | Features | Best For |
|---|---|---|---|
gpt-5-mini |
128K | β Recommended | Cost-effective, fast |
gpt-5 |
256K | Latest flagship | Complex tasks |
| Model | Context | Features | Best For |
|---|---|---|---|
claude-4.5-sonnet |
200K | β Recommended | High quality output |
claude-4-opus |
200K | Most capable | Complex tasks |
| Model | Context | Features | Best For |
|---|---|---|---|
qwen2.5 |
128K | β Recommended | Best local model |
deepseek-coder |
64K | Code-focused | Code generation |
- DeepSeek:
deepseek-chat,deepseek-coder,deepseek-reasoner,deepseek-v3 - Qwen Cloud:
qwen-turbo,qwen-plus,qwen-max
python skill_generator_agent.py -r "Create a data processing tool"python skill_generator_agent.py \
-n "csv-processor" \
-r "Create a CSV processing tool with read, filter, JSON conversion, and statistics" \
-o ./skills \
--yes# Run pre-configured demo examples
bash scripts/demo.sh# Test the complete generation β validation β packaging workflow
python tests/test_skill_workflow.py \
-r "Create a file counter tool" \
-n "test-counter" \
--keep-outputpython skill_generator_agent.py --interactive# Use OpenAI with specific model
python skill_generator_agent.py --llm openai --model gpt-5-mini -r "Create a file converter"
# Use Anthropic Claude
python skill_generator_agent.py --llm anthropic --model claude-3-5-sonnet-20241022 -r "..."
# Use local Ollama
python skill_generator_agent.py --llm ollama --model llama3.2 -r "..."| Option | Short | Description |
|---|---|---|
--requirement |
-r |
Requirement description (natural language) |
--name |
-n |
Skill name (optional) |
--output |
-o |
Output directory (default: ./skills) |
--interactive |
-i |
Interactive mode |
--yes |
-y |
Auto-confirm, no prompts |
--llm |
- | LLM provider: openai, anthropic, ollama |
--model |
- | Model name (e.g., gpt-5-mini, claude-3-5-sonnet-20241022) |
--api-key |
- | API Key (overrides env var) |
--api-base |
- | API Base URL (for custom endpoints) |
--skip-validate |
- | Skip validation |
--skip-package |
- | Skip packaging |
--debug |
- | Debug mode |
my-skill/
βββ SKILL.md # Standardized documentation with YAML frontmatter
βββ README.md # User-friendly README (auto-generated)
βββ requirements.txt # Python dependencies
βββ .requirement.json # Requirement analysis artifact (traceable)
βββ .gitignore # Git ignore file (auto-generated)
βββ scripts/
β βββ main.py # Main script (runnable, complete implementation)
β βββ utils.py # Utility functions (if needed)
β βββ test_main.py # Unit tests (auto-generated)
β βββ ...
βββ references/ # Reference materials (optional, auto-generated)
β βββ api_reference.md # API documentation (if needed)
βββ assets/ # Asset files (optional)
βββ templates/ # Template files (if needed)
Requirement Input
β
βΌ
[1] Requirement Analysis (LLM)
β ββ Output: Structured requirement spec
βΌ
[2] User Confirmation (optional)
βΌ
[3] Initialize Skill Directory
β ββ Uses init_skill.py or manual creation
βΌ
[4] Code Generation (LLM)
β ββ Generate scripts with argparse, logging, error handling
β ββ Complete implementations (no TODO placeholders)
β ββ Auto-detect and complete any remaining TODOs
β ββ Output: scripts/*.py
βΌ
[5] Generate Tests
β ββ Output: scripts/test_*.py (auto-generated unit tests)
βΌ
[6] Documentation Generation
β ββ SKILL.md (with YAML frontmatter)
β ββ README.md (user-friendly guide)
β ββ requirements.txt
β ββ .gitignore
βΌ
[7] Generate References & Assets
β ββ API reference documentation (if needed)
β ββ Template files (if needed)
βΌ
[8] Validation (quick_validate.py)
β ββ Check SKILL.md format
β ββ Validate naming conventions
β ββ Verify required fields
βΌ
[9] Packaging (package_skill.py)
β ββ Output: .skill file (ZIP format)
βΌ
[10] Save Generation Record
β ββ CSV with timestamp, model, duration, structure
βΌ
Done β
(Ready for CI/CD publishing)
The complete test workflow includes:
- Generate Skill - Create skill from requirement
- Validate Structure - Check required files exist
- Test Script Execution - Verify scripts can run
- Validate Skill - Use
quick_validate.pyfor format validation - Package Skill - Create
.skilldistribution file
Run tests with:
python tests/test_skill_workflow.py \
-r "Your requirement" \
-n "skill-name" \
--keep-outputpython skill_generator_agent.py \
-n "file-counter" \
-r "Create a file counter tool that counts files and total size in a directory" \
-o ./examples \
--yespython skill_generator_agent.py \
-n "csv-processor" \
-r "Create a CSV processing tool that supports:
1. Read CSV files
2. Filter and select data
3. Format conversion (CSV to JSON)
4. Data statistics analysis" \
-o ./examples \
--yes# Test the complete generation β validation β packaging workflow
python tests/test_skill_workflow.py \
-r "Create a file counter tool" \
-n "test-counter" \
--keep-output# Make sure Ollama is running: ollama serve
python skill_generator_agent.py \
--llm ollama --model llama3.2 \
-r "Create a file format conversion tool" \
-o ./examples \
--yespython skill_generator_agent.py \
--llm anthropic --model claude-3-5-sonnet-20241022 \
-r "Create a web scraper with error handling and retry logic" \
-o ./examples \
--yespython skill_generator_agent.py \
-n "project-env-installer" \
-r "Create a project environment installer that:
1. Clones from GitHub or reads local project
2. Analyzes README and dependency files
3. Auto-installs uv if needed, creates Python 3.12 venv
4. Installs dependencies and tests startup
5. Auto-fixes common issues" \
-o ./examples \
--yesSee EXAMPLES.md for more examples.
If you're creating a new GitHub project to build your personal Skills repository, we recommend an engineering-oriented layout:
your-skills-repo/
βββ skill_generator_agent.py # Generator script
βββ skills/ # Generated skills (version control as needed)
β βββ csv-processor/
β βββ api-client/
β βββ ...
βββ templates/ # Specification templates (optional)
βββ tests/ # Regression tests / golden examples
βββ .github/
β βββ workflows/
β βββ validate.yml # Validate skills on PR
β βββ package.yml # Package and release
β βββ test.yml # Run tests
βββ scripts/
β βββ setup.sh # Environment setup
β βββ run.sh # Quick run script
βββ .env.example # Environment template
βββ pyproject.toml # Python project config
βββ README.md
βββ CHANGELOG.md
- PR Validation: Auto-run validate/test on PRs to prevent "bad skills" from entering main branch
- Auto-Release: Auto-package
.skillfiles and upload to GitHub Releases after merging to main - Registry (Optional): Maintain version numbers, signatures, and manifests for each Skill to form a "private registry"
- Write requirements as "acceptance criteria": The more testable your input, the more stable your output
- Generate first, review later: Treat generated results as PRs and do Code Review before merging
- Accumulate golden examples: Turn frequently-used skills into regression test cases for long-term quality improvement
- Layered model strategy: Use cost-effective models for exploration, stronger models for final review before publishing
- Write requirements as "acceptance criteria": The more testable your input, the more stable your output
- Generate first, review later: Treat generated results as PRs and do Code Review before merging
- Accumulate golden examples: Turn frequently-used skills into regression test cases for long-term quality improvement
- Layered model strategy: Use cost-effective models for exploration, stronger models for final review before publishing
- Version control: Keep generated skills in Git to track changes and iterations
- CI/CD integration: Automate validation, testing, and packaging in your workflow
# Test generation β validation β packaging workflow
python tests/test_skill_workflow.py \
-r "Create a file counter tool" \
-n "test-counter" \
--keep-output# Basic generation test
python tests/test_generator.py
# Full workflow test (detailed)
python tests/test_full_workflow.py# After generating a skill
cd examples/your-skill/scripts
python main.py --help
pytest test_*.py -vSee TEST_RUN_GUIDE.md and HOW_TO_RUN_TESTS.md for detailed testing documentation.
# Install dev dependencies
bash scripts/setup.sh
# Run tests
pytest
# Run tests with coverage
pytest --cov=skill_generator_agent --cov-report=html
# Run workflow test
python tests/test_skill_workflow.py -r "Test requirement" -n "test" --keep-output
# Format code
black .
ruff check .
# Type checking (if mypy is installed)
mypy skill_generator_agent.pyscripts/setup.sh- Environment setup (auto-installs uv if needed)scripts/demo.sh- Run demo examplesscripts/run.sh- Quick run scripttests/test_skill_workflow.py- Complete workflow testtests/test_generator.py- Basic generation test
Q: Can generated code be used directly in production?
A: We recommend treating generated results as "high-quality drafts" and using them only after review, testing, and security auditing.
Q: Can I use this without an LLM?
A: Yes. It will fall back to template/rule-based generation mode, ensuring structure and compliance but with lower intelligence.
Q: Which model should I use?
A: For best results: gpt-5-mini (cost-effective) or claude-3-5-sonnet-20241022 (high quality). For local/free: llama3.2 via Ollama.
Q: How do I add a custom LLM provider?
A: The code uses OpenAI-compatible API format. You can set OPENAI_API_BASE to point to your custom endpoint.
Q: Can I customize the generation templates?
A: Yes. Check the code for prompt templates and modify them according to your needs.
Q: How does validation work?
A: Uses quick_validate.py from skill-creator to validate SKILL.md format, naming conventions, and required fields.
Q: How does packaging work?
A: Uses package_skill.py to create .skill files (ZIP format) with all required files, excluding temporary files like __pycache__.
Q: Where are generation records saved?
A: In generation_records.csv in the output directory, containing timestamp, requirement, model, duration, file structure, etc.
MIT
- USAGE_GUIDE.md - Complete usage guide
- EXAMPLES.md - Example collection
- README_EXAMPLES.md - More examples
- SCRIPTS_AND_USAGE.md - Scripts overview
- TEST_RUN_GUIDE.md - Testing guide
- HOW_TO_RUN_TESTS.md - Quick test guide
- TEST_FLOW_DIAGRAM.md - Test flow diagram
- WORKFLOW_TEST_REPORT.md - Test report
- GENERATION_RECORDS.md - Generation records documentation
- examples/README.md - Generated examples showcase
- references/skill_patterns.md - Skill design patterns
- references/output_templates.md - Output templates reference
This project is inspired by the following excellent projects, and we extend our gratitude:
- OpenAI Skills - Official Skills Catalog for Codex by OpenAI
- LangGraph - Framework for building multi-agent applications
- openskills - Universal skills loader for AI coding agents
Thank you to these projects for their contributions to the AI Agent and Skills ecosystem!