Metadata-Version: 2.4
Name: universal-skills
Version: 0.7.2
Summary: A collection of universal skills for AI agents
Author-email: Audel Rouhi <knucklessg1@gmail.com>
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: Public Domain
Classifier: Environment :: Console
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-asyncio; extra == "test"
Requires-Dist: PyYAML; extra == "test"
Requires-Dist: httpx; extra == "test"
Provides-Extra: agent-browser
Provides-Extra: agent-builder
Requires-Dist: PyYAML; extra == "agent-builder"
Provides-Extra: agent-package-builder
Provides-Extra: agent-spawner
Requires-Dist: python-dotenv; extra == "agent-spawner"
Provides-Extra: mcp-client
Requires-Dist: fastmcp; extra == "mcp-client"
Requires-Dist: python-dotenv; extra == "mcp-client"
Provides-Extra: agent-workflows
Requires-Dist: httpx; extra == "agent-workflows"
Requires-Dist: PyYAML; extra == "agent-workflows"
Provides-Extra: algorithmic-art
Provides-Extra: api-wrapper-builder
Requires-Dist: requests; extra == "api-wrapper-builder"
Requires-Dist: pydantic; extra == "api-wrapper-builder"
Provides-Extra: brainstorming
Provides-Extra: brand-guidelines
Provides-Extra: browser-tools
Requires-Dist: playwright; extra == "browser-tools"
Requires-Dist: Pillow; extra == "browser-tools"
Provides-Extra: c4-architecture
Provides-Extra: canvas-design
Provides-Extra: cloudflare-deploy
Requires-Dist: requests; extra == "cloudflare-deploy"
Requires-Dist: python-dotenv; extra == "cloudflare-deploy"
Provides-Extra: creative-media
Requires-Dist: Pillow; extra == "creative-media"
Provides-Extra: database-tools
Requires-Dist: mysql-connector-python; extra == "database-tools"
Requires-Dist: psycopg2-binary; extra == "database-tools"
Requires-Dist: pymssql; extra == "database-tools"
Provides-Extra: document-converter
Requires-Dist: mammoth; extra == "document-converter"
Requires-Dist: markdownify; extra == "document-converter"
Requires-Dist: pymupdf4llm; extra == "document-converter"
Provides-Extra: developer-utilities
Requires-Dist: bcrypt; extra == "developer-utilities"
Requires-Dist: cryptography; extra == "developer-utilities"
Requires-Dist: sqlparse; extra == "developer-utilities"
Requires-Dist: toml; extra == "developer-utilities"
Requires-Dist: user-agents; extra == "developer-utilities"
Requires-Dist: PyYAML; extra == "developer-utilities"
Provides-Extra: document-tools
Requires-Dist: Pillow; extra == "document-tools"
Requires-Dist: defusedxml; extra == "document-tools"
Requires-Dist: python-docx; extra == "document-tools"
Requires-Dist: EbookLib; extra == "document-tools"
Requires-Dist: lxml; extra == "document-tools"
Requires-Dist: openpyxl; extra == "document-tools"
Requires-Dist: pdf2image; extra == "document-tools"
Requires-Dist: pdfplumber; extra == "document-tools"
Requires-Dist: python-pptx; extra == "document-tools"
Requires-Dist: Pygments; extra == "document-tools"
Requires-Dist: pypdf; extra == "document-tools"
Requires-Dist: validators; extra == "document-tools"
Provides-Extra: github-tools
Requires-Dist: requests; extra == "github-tools"
Requires-Dist: python-dotenv; extra == "github-tools"
Provides-Extra: google-workspace
Requires-Dist: keyring; extra == "google-workspace"
Requires-Dist: requests; extra == "google-workspace"
Provides-Extra: internal-comms
Provides-Extra: jupyter-notebook
Requires-Dist: nbformat; extra == "jupyter-notebook"
Requires-Dist: nbconvert; extra == "jupyter-notebook"
Provides-Extra: marp-presentations
Provides-Extra: mcp-builder
Requires-Dist: fastmcp; extra == "mcp-builder"
Provides-Extra: mermaid-diagrams
Provides-Extra: product-strategy
Provides-Extra: react-development
Provides-Extra: react-native-skills
Provides-Extra: security-tools
Requires-Dist: networkx; extra == "security-tools"
Requires-Dist: requests; extra == "security-tools"
Provides-Extra: session-handoff
Provides-Extra: skill-builder
Requires-Dist: PyYAML; extra == "skill-builder"
Provides-Extra: skill-installer
Provides-Extra: skill-graph-builder
Requires-Dist: crawl4ai; extra == "skill-graph-builder"
Requires-Dist: playwright; extra == "skill-graph-builder"
Requires-Dist: psutil; extra == "skill-graph-builder"
Requires-Dist: requests; extra == "skill-graph-builder"
Requires-Dist: pymupdf4llm>=0.0.17; extra == "skill-graph-builder"
Requires-Dist: mdsplit; extra == "skill-graph-builder"
Requires-Dist: markitdown>=0.1.5; extra == "skill-graph-builder"
Requires-Dist: pyyaml>=6.0; extra == "skill-graph-builder"
Provides-Extra: system-tools
Requires-Dist: psutil; extra == "system-tools"
Provides-Extra: tdd-methodology
Provides-Extra: theme-factory
Provides-Extra: user-research
Provides-Extra: web-artifacts
Requires-Dist: requests; extra == "web-artifacts"
Provides-Extra: web-crawler
Requires-Dist: crawl4ai; extra == "web-crawler"
Requires-Dist: playwright; extra == "web-crawler"
Requires-Dist: psutil; extra == "web-crawler"
Requires-Dist: requests; extra == "web-crawler"
Provides-Extra: web-design-guidelines
Provides-Extra: web-search
Requires-Dist: ddgs; extra == "web-search"
Requires-Dist: requests; extra == "web-search"
Provides-Extra: web-fetch
Requires-Dist: crawl4ai; extra == "web-fetch"
Requires-Dist: playwright; extra == "web-fetch"
Requires-Dist: psutil; extra == "web-fetch"
Requires-Dist: requests; extra == "web-fetch"
Provides-Extra: website-builder
Provides-Extra: website-cloner
Provides-Extra: code-enhancer
Requires-Dist: requests; extra == "code-enhancer"
Requires-Dist: packaging; extra == "code-enhancer"
Requires-Dist: keepachangelog>=2.0.0; extra == "code-enhancer"
Provides-Extra: all
Requires-Dist: universal-skills[agent-browser]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[agent-builder]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[agent-package-builder]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[agent-spawner]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[mcp-client]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[agent-workflows]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[algorithmic-art]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[api-wrapper-builder]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[brainstorming]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[brand-guidelines]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[browser-tools]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[c4-architecture]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[canvas-design]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[cloudflare-deploy]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[creative-media]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[database-tools]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[developer-utilities]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[document-converter]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[document-tools]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[github-tools]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[google-workspace]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[internal-comms]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[product-strategy]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[react-development]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[react-native-skills]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[security-tools]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[session-handoff]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[skill-builder]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[skill-graph-builder]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[skill-installer]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[system-tools]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[tdd-methodology]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[theme-factory]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[user-research]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[web-artifacts]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[web-crawler]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[web-design-guidelines]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[web-search]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[web-fetch]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[website-builder]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[website-cloner]>=0.7.1; extra == "all"
Requires-Dist: universal-skills[code-enhancer]>=0.7.1; extra == "all"
Dynamic: license-file

# Universal Skills - Pydantic AI Skills

![PyPI - Version](https://img.shields.io/pypi/v/universal-skills)
![MCP Server](https://badge.mcpx.dev?type=server 'MCP Server')
![PyPI - Downloads](https://img.shields.io/pypi/dd/universal-skills)
![GitHub Repo stars](https://img.shields.io/github/stars/Knuckles-Team/universal-skills)
![GitHub forks](https://img.shields.io/github/forks/Knuckles-Team/universal-skills)
![GitHub contributors](https://img.shields.io/github/contributors/Knuckles-Team/universal-skills)
![PyPI - License](https://img.shields.io/pypi/l/universal-skills)
![GitHub](https://img.shields.io/github/license/Knuckles-Team/universal-skills)

![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/Knuckles-Team/universal-skills)
![GitHub pull requests](https://img.shields.io/github/issues-pr/Knuckles-Team/universal-skills)
![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/Knuckles-Team/universal-skills)
![GitHub issues](https://img.shields.io/github/issues/Knuckles-Team/universal-skills)

![GitHub top language](https://img.shields.io/github/languages/top/Knuckles-Team/universal-skills)
![GitHub language count](https://img.shields.io/github/languages/count/Knuckles-Team/universal-skills)
![GitHub repo size](https://img.shields.io/github/repo-size/Knuckles-Team/universal-skills)
![GitHub repo file count (file type)](https://img.shields.io/github/directory-file-count/Knuckles-Team/universal-skills)
![PyPI - Wheel](https://img.shields.io/pypi/wheel/universal-skills)
![PyPI - Implementation](https://img.shields.io/pypi/implementation/universal-skills)

*Version: 0.7.2*

## Overview

Universal Skills is a collection of shared, reusable skills designed for Pydantic AI Agents. It provides a standardized way to give agents advanced capabilities like codebase searching, file navigation, and inter-agent communication.

## Included Skills

The following universal skills are available. You can disable specific skills by setting their corresponding environment variables to `False` (default is `True`).

| Skill Directory       | Description                                                           | Disable Flag                          | Install Command                         |
|:----------------------|:----------------------------------------------------------------------|:--------------------------------------|:----------------------------------------|
| `agent-tools/agent-browser`| Browser automation CLI for agents using the agent-browser tool.      | `AGENT_BROWSER_ENABLE=False`          | `universal-skills[agent-browser]`       |
| `agent-tools/agent-builder`| Templates and guidelines for building Single and Multi-Agent systems. | `AGENT_BUILDER_ENABLE=False`          | `universal-skills[agent-builder]`       |
| `agent-tools/agent-spawner`| Spawns a Pydantic AI agent dynamically using an MCP configuration.    | `AGENT_SPAWNER_ENABLE=False`          | `universal-skills[agent-spawner]`       |
| `agent-tools/agent-workflows`| Agent-to-Agent communication, orchestration, and subagent dispatch.   | `AGENT_WORKFLOWS_ENABLE=False`        | `universal-skills[agent-workflows]`     |
| `creative/algorithmic-art`| Generative algorithmic art using p5.js and interactive artifacts.    | `ALGORITHMIC_ART_ENABLE=False`        | `universal-skills[algorithmic-art]`     |
| `api-wrapper-builder` | Guide for creating robust, standardized API wrappers.                 | `API_WRAPPER_BUILDER_ENABLE=False`    | `universal-skills[api-wrapper-builder]` |
| `research/brainstorming`| Structured ideation, problem-framing, and design research.            | `BRAINSTORMING_ENABLE=False`          | `universal-skills[brainstorming]`       |
| `creative/brand-guidelines`| Creating brand identity systems (logos, palettes, voice/tone).         | `BRAND_GUIDELINES_ENABLE=False`       | `universal-skills[brand-guidelines]`    |
| `web-dev/browser-tools`| Web browser interaction and E2E visual QA via Playwright.             | `BROWSER_TOOLS_ENABLE=False`          | `universal-skills[browser-tools]`       |
| `dev-workflows/c4-architecture`| Software architecture documentation using the C4 model in Mermaid.   | `C4_ARCHITECTURE_ENABLE=False`        | `universal-skills[c4-architecture]`     |
| `creative/canvas-design`| Programmatic graphic design using HTML Canvas or SVG APIs.            | `CANVAS_DESIGN_ENABLE=False`          | `universal-skills[canvas-design]`       |
| `infra/cloudflare-deploy`| Deploy applications and infrastructure to Cloudflare.                 | `CLOUDFLARE_DEPLOY_ENABLE=True` (D)   | `universal-skills[cloudflare-deploy]`           |
| `core/code-enhancer`| 12-domain code analysis with 0-100 grading, security/arch/dep audit. | `CODE_ENHANCER_ENABLE=False`          | `universal-skills[code-enhancer]`       |
| `creative/creative-media`| Creative media processing (animations, GIFs, image conversion).       | `CREATIVE_MEDIA_ENABLE=False`         | `universal-skills[creative-media]`     |
| `integration/database-tools`| Connect and query PostgreSQL, MySQL, and MSSQL databases.             | `DATABASE_TOOLS_ENABLE=False`         | `universal-skills[database-tools]`      |
| `system/developer-utilities`| Formatting, conversion, generation, cryptographic, and networking.    | `DEVELOPER_UTILITIES_ENABLE=False`    | `universal-skills[developer-utilities]` |
| `dev-workflows/diagnose`| Disciplined diagnosis loop for hard bugs and performance regressions. | `DIAGNOSE_ENABLE=False`               | `universal-skills[diagnose]`            |
| `docs/document-converter`| Bulk convert .docx and .pdf to Markdown with high fidelity.           | `DOCUMENT_CONVERTER_ENABLE=False`     | `universal-skills[document-converter]`  |
| `docs/document-tools`| Read, edit, analyze, or create document files (PDF, spreadsheet, etc) | `DOCUMENT_TOOLS_ENABLE=False`         | `universal-skills[document-tools]`      |
| `core/efficient-mode`| Ultra-compressed communication mode to reduce token usage.            | `EFFICIENT_MODE_ENABLE=False`         | `universal-skills[efficient-mode]`      |
| `integration/github-tools`| GitHub workflows, PR comments, CI fixes, and git practices.           | `GITHUB_TOOLS_ENABLE=False`           | `universal-skills[github-tools]`        |
| `integration/google-workspace`| Google Workspace ecosystem integration (Gmail, Drive, Docs, etc).     | `GOOGLE_WORKSPACE_ENABLE=True` (D)    | `universal-skills[google-workspace]`    |
| `product/internal-comms`| Creating internal announcements, memos, and executive briefings.      | `INTERNAL_COMMS_ENABLE=False`         | `universal-skills[internal-comms]`      |
| `integration/issue-triage`| Triage GitHub issues through a state machine of triage roles.         | `ISSUE_TRIAGE_ENABLE=False`           | `universal-skills[issue-triage]`        |
| `jira-tools`          | Interact with Jira via CLI or Atlassian MCP for ticket management.    | `JIRA_TOOLS_ENABLE=False`             | `universal-skills[jira-tools]`          |
| `system/jupyter-notebook`| Create, scaffold, or edit Jupyter notebooks.                          | `JUPYTER_NOTEBOOK_ENABLE=True` (D)    | `universal-skills[jupyter-notebook]`    |
| `docs/marp-presentations`| Create professional Marp Markdown presentation slides.                | `MARP_PRESENTATIONS_ENABLE=False`     | `universal-skills[marp-presentations]`  |
| `agent-tools/mcp-builder`| Guide for creating high-quality FastMCP servers.                      | `MCP_BUILDER_ENABLE=False`            | `universal-skills[mcp-builder]`         |
| `docs/mermaid-diagrams`| Create software diagrams (class, sequence, flowchart, ERD, C4, etc). | `MERMAID_DIAGRAMS_ENABLE=False`       | `universal-skills[mermaid-diagrams]`    |
| `product-management`  | PRD development, user stories, prioritization, and roadmapping.       | `PRODUCT_MANAGEMENT_ENABLE=False`     | `universal-skills[product-management]`  |
| `product/product-strategy`| Market analysis, TAM/SAM/SOM, positioning, and SaaS metrics.          | `PRODUCT_STRATEGY_ENABLE=False`       | `universal-skills[product-strategy]`    |
| `project-planning`    | High-level reasoning, brainstorming, debugging, and research.         | `PROJECT_PLANNING_ENABLE=False`       | `universal-skills[project-planning]`    |
| `qa-planning`         | QA test plans, manual test cases, regression suites, and bug reports. | `QA_PLANNING_ENABLE=False`            | `universal-skills[qa-planning]`         |
| `web-dev/react-development`| Type-safe React + TypeScript components, routing, and best practices. | `REACT_DEVELOPMENT_ENABLE=False`      | `universal-skills[react-development]`   |
| `web-dev/react-native-skills`| React Native and Expo best practices and performance optimization.    | `REACT_NATIVE_SKILLS_ENABLE=False`    | `universal-skills[react-native-skills]` |
| `infra/security-tools`| Threat modeling, Sentry error logs, and security code analysis.       | `SECURITY_TOOLS_ENABLE=False`         | `universal-skills[security-tools]`      |
| `core/skill-builder`| Tooling for creating and standardizing new universal skills.          | `SKILL_BUILDER_ENABLE=False`          | `universal-skills[skill-builder]`       |
| `agent-tools/skill-graph-builder`| Transform website documentation into indexed agent skills.            | `SKILL_GRAPH_BUILDER_ENABLE=True` (D) | `universal-skills[skill-graph-builder]` |
| `skill-installer`     | Install skills into Windsurf, Claude Code, Antigravity, etc.          | `SKILL_INSTALLER_ENABLE=False`        | `universal-skills[skill-installer]`     |
| `core/session-handoff`| Create and restore agent session handoff documents.                   | `SESSION_HANDOFF_ENABLE=False`        | `universal-skills[session-handoff]`     |
| `system/system-tools`| Hardware and OS operations (screenshots, bluetooth, tmux).            | `SYSTEM_TOOLS_ENABLE=False`           | `universal-skills[system-tools]`        |
| `systems-manager`     | Fast codebase search, file navigation, and structural code analysis.  | `SYSTEMS_MANAGER_ENABLE=False`        | `universal-skills[systems-manager]`     |
| `dev-workflows/tdd-methodology`| Test-Driven Development workflow (Red-Green-Refactor cycle).          | `TDD_METHODOLOGY_ENABLE=False`        | `universal-skills[tdd-methodology]`     |
| `web-dev/theme-factory`| Designing themes, design tokens, and CSS variable systems.            | `THEME_FACTORY_ENABLE=False`          | `universal-skills[theme-factory]`       |
| `research/user-research`| User discovery, JTBD, personas, and journey mapping.                  | `USER_RESEARCH_ENABLE=False`          | `universal-skills[user-research]`       |
| `web-dev/web-artifacts`| Frontend design, UI building, and artifact generation.                | `WEB_ARTIFACTS_ENABLE=False`          | `universal-skills[web-artifacts]`       |
| `web-dev/website-builder`| World-class frontend engineer for cinematic landing pages.            | `WEBSITE_BUILDER_ENABLE=False`        | `universal-skills[website-builder]`             |
| `web-dev/website-cloner`| Multi-phase pipeline for pixel-perfect website cloning.               | `WEBSITE_CLONER_ENABLE=False`         | `universal-skills[website-cloner]`      |
| `research/web-crawler`| High-speed recursive web crawling and sitemap processing.             | `WEB_CRAWLER_ENABLE=True` (D)         | `universal-skills[web-crawler]`         |
| `web-dev/web-design-guidelines`| Review UI code for Web Interface Guidelines compliance.              | `WEB_DESIGN_GUIDELINES_ENABLE=False`  | `universal-skills[web-design-guidelines]`|
| `research/web-search`| Search the web via DDG, Google, Bing, or Searxng.                     | `WEB_SEARCH_ENABLE=False`             | `universal-skills[web-search]`          |
| `system/zoom-out`| Meta-skill to tell the agent to step back and give broader context.   | `ZOOM_OUT_ENABLE=False`               | `universal-skills[zoom-out]`            |

## Security & SSL Verification

All relevant scripts in Universal Skills support a standardized approach to SSL verification:

- **CLI Override**: Use the `--insecure` flag to disable SSL verification.
- **Environment Variable**: Set `SSL_VERIFY=False` (or `0`, `off`) to disable verification globally.
- **Precedence**: Command-line flags always take precedence over environment variables.

## Building Your Own Skill-Graphs

Universal Skills includes a `skill-graph-builder` that allows you to transform any website's documentation into an indexed knowledge base for your agents. These are stored in your local cache directory (`~/.cache/universal-skills/skill-graphs`) and can be enabled via environment variables.

### Example: Creating a Skill-Graph

You can prompt your agent to build a skill-graph for any technical documentation:

> "Use the skill-graph-builder to crawl https://ai.pydantic.dev and create a skill-graph named 'pydantic-ai-docs'."

Once built, the graph will be available in your cache.

### Enabling Your Graphs

To use a manually built graph, set its corresponding enable flag to `True`:

```bash
export PYDANTIC_AI_DOCS_ENABLE=True
```

## Installation

```bash
# Install with all standard skills
pip install universal-skills[all]

# Or install specific skill categories
pip install universal-skills[systems-manager,web-crawler,web-search]
```

## Usage

Universal skills are typically loaded using the `get_universal_skills_path()` utility, which can be integrated into your agent's toolset. The utility will automatically respect the environment variables shown above to filter out disabled skills.

```python
from universal_skills.skill_utilities import get_universal_skills_path, get_skill_graph_path
from pydantic_ai_skills import SkillsToolset

# Load enabled universal skills
skills_directories = [get_universal_skills_path(), get_skill_graph_path()]
skills = SkillsToolset(directories=skills_directories)
```


## Attributions

- Claude
- Vercel
- Google
- Many more
