Local, cross-provider preflight checks for LLM integration changes
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit d63e3f6 · analyzer v33 · 2d ago
skills & prompt files 2
danger signals2
- dynamic code execution __import__() feronovak-llm-preflight-d63e3f6/scripts/project_standard/routes.py :55
module = __import__(module_name, fromlist=["*"]) - dynamic code execution __import__ sink feronovak-llm-preflight-d63e3f6/tests/test_cli.py :2870
assert "GEMINI_API_KEY" not in __import__("os").environ
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 66
filesystem 36
- fs feronovak-llm-preflight-d63e3f6/llm_preflight/approval.py :10
from pathlib import Path - fs feronovak-llm-preflight-d63e3f6/llm_preflight/capability_ledger.py :7
from pathlib import Path - fs feronovak-llm-preflight-d63e3f6/llm_preflight/catalog_probe.py :3
from pathlib import Path - fs feronovak-llm-preflight-d63e3f6/llm_preflight/catalog_watch.py :6
from pathlib import Path - fs feronovak-llm-preflight-d63e3f6/llm_preflight/change_plan.py :6
import shutil - fs feronovak-llm-preflight-d63e3f6/llm_preflight/cli.py :13
from pathlib import Path - fs feronovak-llm-preflight-d63e3f6/llm_preflight/env.py :5
from pathlib import Path - fs feronovak-llm-preflight-d63e3f6/llm_preflight/features.py :6
from pathlib import Path - fs feronovak-llm-preflight-d63e3f6/llm_preflight/images.py :8
from pathlib import Path - fs feronovak-llm-preflight-d63e3f6/llm_preflight/mcp.py :10
from pathlib import Path - fs feronovak-llm-preflight-d63e3f6/llm_preflight/runner.py :13
from pathlib import Path - fs feronovak-llm-preflight-d63e3f6/llm_preflight/security.py :56
return opener.open(request, timeout=timeout)
show 24 more
- fs feronovak-llm-preflight-d63e3f6/llm_preflight/source_audit.py :4
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/api.py :20
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/artifacts.py :10
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/claims.py :26
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/cli.py :11
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/contract.py :20
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/defaults.py :16
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/detect.py :12
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/docmap.py :13
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/docs.py :11
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/gitio.py :10
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/hygiene.py :14
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/release.py :15
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/routes.py :15
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/runner.py :10
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/vendored.py :21
from pathlib import Path - fs feronovak-llm-preflight-d63e3f6/setup.py :4
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/tests/test_cli.py :5
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/tests/test_distribution.py :2
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/tests/test_documentation.py :2
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/tests/test_eligibility.py :2
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/tests/test_features.py :2
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/tests/test_package.py :3
from pathlib import Path - fs (weak) feronovak-llm-preflight-d63e3f6/tests/test_pricing.py :3
from pathlib import Path
shell / exec 6
- shell feronovak-llm-preflight-d63e3f6/llm_preflight/change_plan.py :9
import subprocess # nosec B404 - shell (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/cli.py :150
import subprocess - shell (weak) feronovak-llm-preflight-d63e3f6/scripts/project_standard/gitio.py :9
import subprocess - shell (weak) feronovak-llm-preflight-d63e3f6/tests/test_change_plan.py :2
import subprocess - shell (weak) feronovak-llm-preflight-d63e3f6/tests/test_cli.py :3
import subprocess - shell (weak) feronovak-llm-preflight-d63e3f6/tests/test_mcp.py :3
import subprocess
network 7
- net feronovak-llm-preflight-d63e3f6/llm_preflight/catalog.py :6
import urllib.parse - net feronovak-llm-preflight-d63e3f6/llm_preflight/client.py :7
import urllib.error - net feronovak-llm-preflight-d63e3f6/llm_preflight/contracts.py :8
from urllib.parse import urlsplit, urlunsplit - net feronovak-llm-preflight-d63e3f6/llm_preflight/security.py :3
import socket - net (weak) feronovak-llm-preflight-d63e3f6/tests/test_catalog.py :355
monkeypatch.setattr("urllib.request.urlopen", should_not_open) - net (weak) feronovak-llm-preflight-d63e3f6/tests/test_clients.py :3
import urllib.error - net (weak) feronovak-llm-preflight-d63e3f6/tests/test_env.py :2
import socket
secrets 1
- secrets (weak) feronovak-llm-preflight-d63e3f6/tests/test_env.py :24
assert os.environ["OPENAI_API_KEY"] == "already-set"
declared dependencies 8
- coverage@==7.15.2
- pytest@==9.0.3
- ruff@==0.16.1
- bandit@==1.9.4
- detect-secrets@==1.5.0
- mypy@==2.2.0
- build@==1.5.0
- twine@==6.2.0