Skip to main content

scaffold-security

Scaffold a security tool project with CLI, logging, and target handling. Prefer uv-based setup and packaging; if uv is unavailable, warn the user, request approval, and use a fallback bootstrap path.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
SpecterOps/skills
آخر نشاط في المصدر
٢٩ مايو ٢٠٢٦ في ١٥:٥١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٦٥٧
التفرعات
٧٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
4 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
scaffold-security
description
Scaffold a security tool project with CLI, logging, and target handling. Prefer uv-based setup and packaging; if uv is unavailable, warn the user, request approval, and use a fallback bootstrap path.
metadata
{"author":"GhostWorks"}
# Scaffold Security Create a security/pentest tool scaffold with a consistent Python project layout. ## Input Parsing Accept input as: `TOOL_NAME [DESCRIPTION]` Examples: - `$scaffold-security recon-spider` - `$scaffold-security recon-spider "Async web crawler for subdomain content discovery"` If no tool name is provided, ask the user for one before proceeding. ## Preference Policy - Prefer `uv` for initialization and environment management. - If `uv` is missing: - warn the user that `uv` is preferred, - remind them to install `uv`, - ask for approval before using a fallback bootstrap path. - Fallback only after explicit user approval. Recommended install reminder: ```bash curl -LsSf https://astral.sh/uv/install.sh | sh ``` ## Steps (Preferred: uv) 1. Create the project directory in the current working directory. 2. Run: ```bash uv init --name <tool_name> --package ``` 3. Ensure structure exists: ```text <tool_name>/ src/ <package_name>/ __init__.py main.py cli.py core.py output.py tests/ __init__.py conftest.py .gitignore README.md pyproject.toml ``` 4. Ensure `pyproject.toml` includes: - Python `>=3.11` - runtime dependencies: `typer`, `rich`, `pydantic`, `httpx` - dev dependencies: `pytest`, `ruff`, `mypy` - script entry point mapping tool name to `<package>.cli:app` - Ruff config (line length 88, 4-space indent) 5. Implement `cli.py` with: - Typer app - options for target, ports, output, format, verbose, timeout - logging setup using `rich.logging` - delegation to `core.py` 6. Implement `core.py` with: - typed models for results - tool logic class/functions - async support where network I/O is expected 7. Implement `output.py` with: - formatters for text/json/csv output - helper for stdout vs file output 8. Implement `main.py` with `__main__` entry. 9. Write test stubs and basic README usage. 10. Run: ```bash uv sync ``` 11. Report created files and example usage. ## Fallback Steps (Only If Approved) Use only when `uv` is unavailable and user explicitly approves fallback. 1. Create the same project structure. 2. Write/adjust `pyproject.toml` with equivalent project and tool settings. 3. Initialize virtual environment: ```bash python3 -m venv .venv .venv/bin/python -m pip install --upgrade pip ``` 4. Install dependencies: ```bash .venv/bin/pip install typer rich pydantic httpx pytest ruff mypy ``` 5. Report fallback usage and remind user to install `uv` for future scaffolds. ## Output Requirements - Report final directory tree. - Report whether preferred (`uv`) or fallback path was used. - Include a runnable example command for the scaffolded tool. - If fallback was used, include the `uv` install reminder at the end.
عرض على GitHub