feat: project scaffold, unified Pydantic schema, scope gating

This commit is contained in:
2026-06-29 17:35:50 -04:00
commit 1f531e4948
9 changed files with 1239 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "recon-triage"
version = "0.1.0"
description = "Defensive bug-bounty recon & triage pipeline (authorized testing only)."
readme = "README.md"
requires-python = ">=3.12"
license = { text = "MIT" }
authors = [{ name = "recon-triage" }]
dependencies = [
"pydantic>=2.6,<3",
"typer>=0.12,<1",
"pyyaml>=6.0",
"xmltodict>=0.13",
"httpx>=0.27",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
"pytest-asyncio>=0.23",
"ruff>=0.4",
]
[project.scripts]
recon-triage = "recon_triage.cli:main"
[tool.setuptools.packages.find]
where = ["src"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "W", "UP", "B"]
ignore = ["E501", "UP042"] # UP042: `str, Enum` is intentional for broad compatibility
[tool.ruff.lint.per-file-ignores]
# typer.Option() in argument defaults is the canonical Typer idiom.
"src/recon_triage/cli.py" = ["B008"]