Skip to content
Back to skills

Gen Requirements

ASecurity

Auto-generates clean, categorized requirements.txt and PEP 621 pyproject.toml by scanning Python codebase imports via AST. Resolves PyPI package names and installed versions.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 9, 2026
ai-agentspythonrustgobashnodeazuretestinggit

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 9, 2026

npx -y skills add mdnaimul22/human-skills --skill gen-requirements --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gen Requirements?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gen Requirements
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mdnaimul22-gen-requirements/badge)](https://www.skillsdirectory.com/skills/mdnaimul22-gen-requirements)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: gen-requirements
description: Auto-generates clean, categorized requirements.txt and PEP 621 pyproject.toml by scanning Python codebase imports via AST. Resolves PyPI package names and installed versions.
version: 1.0.0
author: Human Skill Team
tags: ["python", "dependencies", "requirements", "pyproject", "ast", "scaffold"]
trigger_patterns:
  - "generate requirements"
  - "create requirements.txt"
  - "generate pyproject.toml"
  - "scan dependencies"
  - "auto requirements"
  - "pip requirements"
---

# Requirements & Dependency Generator

> *"One command. Zero manual dependency hunting."*

Auto-generates clean, categorized `requirements.txt` and PEP 621-compliant `pyproject.toml` files by analyzing Python codebase imports using Abstract Syntax Trees (AST).

---

## When to Use

Activate this skill when:
- Creating or updating `requirements.txt` for a Python project
- Generating PEP 621 `pyproject.toml` with dependencies and dev-dependencies
- Scanning a codebase to identify missing or used third-party packages
- Preparing a project for production deployment or distribution

---

## How to Use

### Via `human-skills` CLI

#### 1. Standard Generation (Minimum Constraints `>=X.Y.0`)
```bash
human-skills '{
    "tool_name": "gen_requirements",
    "tool_args": {
        "path": "/path/to/your/project"
    }
}'
```

#### 2. Exact Pinned Versions (`==X.Y.Z`)
```bash
human-skills '{
    "tool_name": "gen_requirements",
    "tool_args": {
        "path": "/path/to/your/project",
        "exact": "true"
    }
}'
```

#### 3. Custom Output Directory and Project Name
```bash
human-skills '{
    "tool_name": "gen_requirements",
    "tool_args": {
        "path": "/path/to/your/project",
        "name": "my-awesome-app",
        "output_dir": "/path/to/your/project"
    }
}'
```

#### 4. Specific Output Format
```bash
# Only requirements.txt
human-skills '{
    "tool_name": "gen_requirements",
    "tool_args": {
        "path": "/path/to/your/project",
        "format": "requirements"
    }
}'

# Only pyproject.toml
human-skills '{
    "tool_name": "gen_requirements",
    "tool_args": {
        "path": "/path/to/your/project",
        "format": "pyproject"
    }
}'
```

---

## Parameters

| Parameter | Type | Required | Default | Description |
|:---|:---|:---|:---|:---|
| `path` | string | No | `.` | Target Python project root directory to scan. |
| `exact` | string | No | `"false"` | Use exact pinned versions (`==X.Y.Z`) if `"true"`, otherwise `>=X.Y.0`. |
| `name` | string | No | Dir name | Project name written in `pyproject.toml`. |
| `output_dir` | string | No | `path` | Output directory where files will be created. |
| `format` | string | No | `"both"` | Output format: `"both"`, `"requirements"`, or `"pyproject"`. |
| `ignored_dirs` | string | No | `""` | Additional comma-separated directories to ignore during scan (e.g. `'tests,docs,demo'`). |
| `only_installed` | string | No | `"true"` | When `"true"`, filters out unverified/custom modules with no installed package version. When `"false"`, includes unversioned packages. |

---

## Key Features

1. **Target Virtualenv Resolution:** Automatically locates project-specific virtual environments (`.venv/`, `venv/`, `env/`) and queries installed package versions directly via subprocess `pip list`, eliminating host environment pollution.
2. **Double-Verification & Custom Module Defense:** Resolves exact installed versions from environment metadata (`importlib.metadata` and project venv). Any imported module that lacks installed distribution metadata is identified as a local/custom script or phantom import and excluded by default (`only_installed="true"`).
3. **AST-Powered Inspection:** Parses abstract syntax trees without executing untrusted code.
4. **Full `src/` & Local Module Discovery:** Recursively detects root packages, `src/`, `app/`, and `lib/` modules so local code is never misidentified as a third-party dependency.
5. **Namespace Package Support:** Accurately extracts and maps namespace packages like `google.generativeai` (`google-generativeai`), `azure.storage` (`azure-storage-blob`), etc.
6. **Universal & Clean Ignores:** Only ignores true build/VCS artifacts by default (`.git`, `.venv`, `__pycache__`, `node_modules`, etc.), while honoring `.gitignore` and allowing custom ignore overrides.
7. **Standard Library Filtering:** Automatically ignores all Python standard library modules (`os`, `sys`, `json`, `asyncio`, `pathlib`, etc.).
8. **Extended PyPI Distribution Mapping:** Maps non-trivial import names (`cv2` → `opencv-python`, `PIL` → `pillow`, `pydantic_settings` → `pydantic-settings`, `attr` → `attrs`, `markdown_it` → `markdown-it-py`).
9. **Functional Categorization:** Groups packages in `requirements.txt` by role (Core Math, Web/Networking, AI/Deep Learning, Configuration, Testing, etc.).
10. **PEP 621 Standard:** Outputs standard `pyproject.toml` with separate `dependencies` and `[project.optional-dependencies] dev`.
11. **Clear Failure Reporting:** Reports unparseable files, virtual environment status, and uninstalled packages without silent suppression.

Files in this skill

  • SKILL.md5 KB
  • scripts/gen_requirements.py28.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…