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
최근 소스 활동
2026년 5월 29일 15:51
감지된 SKILL.md 언어
영어
스타
657
포크
72

설치 방법

기본적으로 소스를 먼저 확인하는 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에서 보기