github Python re-analysis due

sandraschi/dark-app-factory

github

Generate a working web application from a plain-text description using local Ollama models

maintainer
sandraschi
licence
MIT
first seen
2026-07-29
last seen
2026-09-06
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 7 tools
transport stdio · http counts 7 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • factory_assess
  • factory_fleet
  • factory_launch
  • factory_outputs
  • factory_run
  • factory_status
  • factory_stop
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit cd4644e · analyzer v33 · 1w ago

skills & prompt files 7

code evidence vv0.2.2-beta · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 176

filesystem 33

  • fs sandraschi-dark-app-factory-cd4644e/blocks/email/backend/service.py :26 with open(path, encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/blocks/loader.py :8 import shutil
  • fs sandraschi-dark-app-factory-cd4644e/blocks/pdfgen/backend/service.py :9 from pathlib import Path
  • fs sandraschi-dark-app-factory-cd4644e/blocks/storage/backend/service.py :9 from pathlib import Path
  • fs (weak) sandraschi-dark-app-factory-cd4644e/blocks/storage/tests/test_storage.py :7 from pathlib import Path
  • fs sandraschi-dark-app-factory-cd4644e/blocks/webshop/backend/service.py :25 with open(_DATA_FILE, encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/factory.py :130 with open(specs_path, "r", encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/foreman.py :29 with open(path, "r", encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/judge.py :64 with open(path, encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/mcp-server/run_server.py :8 from pathlib import Path
  • fs sandraschi-dark-app-factory-cd4644e/mcp-server/src/dark_app_factory_mcp/server.py :26 from pathlib import Path
  • fs sandraschi-dark-app-factory-cd4644e/mcpb/run_server.py :8 from pathlib import Path
show 21 more
  • fs sandraschi-dark-app-factory-cd4644e/mcpb/src/ghost_extractor.py :73 with open(blueprint_path, "w") as f:
  • fs sandraschi-dark-app-factory-cd4644e/questionnaire.py :17 with open(critique_paths[0], encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/run_manifest.py :4 import shutil
  • fs sandraschi-dark-app-factory-cd4644e/run_server.py :7 from pathlib import Path
  • fs (weak) sandraschi-dark-app-factory-cd4644e/scripts/cua-smoke.py :47 with open(p) as f:
  • fs sandraschi-dark-app-factory-cd4644e/src/deployment/deploy_artifacts.py :173 with open(config_path, "w", encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/src/ghost_extractor.py :73 with open(blueprint_path, "w") as f:
  • fs sandraschi-dark-app-factory-cd4644e/src/pwa/pwa_artifacts.py :45 with open(path, "w", encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/src/specialists/council.py :524 with open(skill_path, encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/src/utils/frontend_scaffold.py :29 with open(path, "w", encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/src/utils/logger.py :81 with open(self.log_file, encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/src/utils/repair.py :116 os.remove(path)
  • fs sandraschi-dark-app-factory-cd4644e/src/utils/tsx_repair.py :60 with open(filepath, encoding="utf-8") as f:
  • fs sandraschi-dark-app-factory-cd4644e/src/verification/rodney_runner.py :29 import shutil
  • fs sandraschi-dark-app-factory-cd4644e/src/verification/ruffy_runner.py :67 pkg = json.loads(open(pkg_path, encoding="utf-8").read())
  • fs sandraschi-dark-app-factory-cd4644e/src/verification/scenario_parser.py :21 from pathlib import Path
  • fs sandraschi-dark-app-factory-cd4644e/src/verification/showboat_runner.py :20 import shutil
  • fs (weak) sandraschi-dark-app-factory-cd4644e/tests/test_boot_path.py :69 with open(os.path.join(tmp_output_dir, "package.json"), "w") as f:
  • fs (weak) sandraschi-dark-app-factory-cd4644e/tests/test_run_manifest.py :72 with open(manifest_path, "w") as f:
  • fs sandraschi-dark-app-factory-cd4644e/web/server.py :6 from pathlib import Path
  • fs sandraschi-dark-app-factory-cd4644e/worker.py :42 with open(path, "r", encoding="utf-8") as f:

shell / exec 13

  • shell sandraschi-dark-app-factory-cd4644e/factory.py :4 import subprocess
  • shell sandraschi-dark-app-factory-cd4644e/mcp-server/src/dark_app_factory_mcp/server.py :21 import subprocess
  • shell sandraschi-dark-app-factory-cd4644e/run_manifest.py :5 import subprocess
  • shell (weak) sandraschi-dark-app-factory-cd4644e/scripts/cua-smoke.py :31 import subprocess
  • shell sandraschi-dark-app-factory-cd4644e/src/utils/git_manager.py :2 import subprocess
  • shell sandraschi-dark-app-factory-cd4644e/src/utils/ports.py :24 import subprocess
  • shell sandraschi-dark-app-factory-cd4644e/src/utils/tsx_repair.py :8 import subprocess
  • shell sandraschi-dark-app-factory-cd4644e/src/verification/rodney_runner.py :30 import subprocess
  • shell sandraschi-dark-app-factory-cd4644e/src/verification/ruffy_runner.py :11 import subprocess
  • shell sandraschi-dark-app-factory-cd4644e/src/verification/showboat_runner.py :21 import subprocess
  • shell (weak) sandraschi-dark-app-factory-cd4644e/tests/test_rodney_runner.py :8 import subprocess
  • shell (weak) sandraschi-dark-app-factory-cd4644e/tests/test_showboat_runner.py :8 import subprocess
show 1 more
  • shell sandraschi-dark-app-factory-cd4644e/web/server.py :4 import subprocess

network 12

  • net sandraschi-dark-app-factory-cd4644e/blocks/mcp_client/backend/client.py :10 import httpx
  • net sandraschi-dark-app-factory-cd4644e/factory.py :9 import urllib.request
  • net sandraschi-dark-app-factory-cd4644e/judge.py :76 import urllib.request
  • net sandraschi-dark-app-factory-cd4644e/mcp-server/src/dark_app_factory_mcp/server.py :29 import httpx
  • net (weak) sandraschi-dark-app-factory-cd4644e/scripts/cua-smoke.py :34 import urllib.request
  • net sandraschi-dark-app-factory-cd4644e/src/llm_client.py :4 import urllib.request
  • net sandraschi-dark-app-factory-cd4644e/src/utils/ports.py :23 import socket
  • net sandraschi-dark-app-factory-cd4644e/src/verification/scenario_executor.py :245 import httpx
  • net (weak) sandraschi-dark-app-factory-cd4644e/tests/test_dtu.py :4 from httpx import AsyncClient, ASGITransport
  • net (weak) sandraschi-dark-app-factory-cd4644e/tests/utils/model_discovery.py :3 import urllib.request
  • net sandraschi-dark-app-factory-cd4644e/verify_docs_api.py :1 import requests
  • net sandraschi-dark-app-factory-cd4644e/web/server.py :491 import urllib.request

secrets 8

  • secrets sandraschi-dark-app-factory-cd4644e/blocks/email/backend/routes.py :46 has_sg = bool(os.environ.get("SENDGRID_API_KEY", ""))
  • secrets sandraschi-dark-app-factory-cd4644e/blocks/email/backend/service.py :71 api_key = os.environ.get("SENDGRID_API_KEY", "")
  • secrets sandraschi-dark-app-factory-cd4644e/blocks/membership/backend/auth.py :16 _SECRET = os.environ.get("JWT_SECRET", "change-me")
  • secrets sandraschi-dark-app-factory-cd4644e/blocks/stripe/backend/service.py :18 _SECRET_KEY = os.environ.get("STRIPE_SECRET_KEY", "")
  • secrets (weak) sandraschi-dark-app-factory-cd4644e/blocks/stripe/tests/test_stripe.py :28 os.environ["STRIPE_SECRET_KEY"] = "sk_test_mock"
  • secrets sandraschi-dark-app-factory-cd4644e/blocks/webhooks/backend/service.py :26 secret = os.environ.get("WEBHOOK_SECRET", "")
  • secrets sandraschi-dark-app-factory-cd4644e/mcpb/src/llm_client.py :23 "FOREMAN_API_KEY", os.getenv("OPENAI_API_KEY", "ollama")
  • secrets sandraschi-dark-app-factory-cd4644e/src/llm_client.py :50 api_key = os.getenv("FOREMAN_API_KEY", os.getenv("OPENAI_API_KEY", "ollama"))

tool registrations 7

  • factory_fleet sandraschi-dark-app-factory-cd4644e/mcp-server/src/dark_app_factory_mcp/server.py :155
  • factory_run sandraschi-dark-app-factory-cd4644e/mcp-server/src/dark_app_factory_mcp/server.py :204
  • factory_status sandraschi-dark-app-factory-cd4644e/mcp-server/src/dark_app_factory_mcp/server.py :256
  • factory_stop sandraschi-dark-app-factory-cd4644e/mcp-server/src/dark_app_factory_mcp/server.py :302
  • factory_launch sandraschi-dark-app-factory-cd4644e/mcp-server/src/dark_app_factory_mcp/server.py :329
  • factory_assess sandraschi-dark-app-factory-cd4644e/mcp-server/src/dark_app_factory_mcp/server.py :392
  • factory_outputs sandraschi-dark-app-factory-cd4644e/mcp-server/src/dark_app_factory_mcp/server.py :702

declared dependencies 21

  • openai@>=1.52.0
  • pydantic@>=2.9.0
  • rich@>=13.9.0
  • tenacity@>=9.0.0
  • python-dotenv@>=1.0.0
  • fastapi@>=0.115.0
  • uvicorn@>=0.30.0
  • ruff@>=0.16.0,<0.17
  • pytest@>=8.0.0
  • pytest-asyncio@>=0.24.0
  • httpx@>=0.27.0
  • playwright@>=1.40.0
show 9 more
  • showboat@*
  • rodney@*
  • tauri-build@2
  • tauri@2
  • tauri-plugin-shell@2
  • tauri-plugin-fs@2
  • tauri-plugin-process@2
  • serde@1
  • serde_json@1

transport_posture 2

  • binds all interfaces (0.0.0.0) sandraschi-dark-app-factory-cd4644e/dtu/main.py :589 uvicorn.run(app, host="0.0.0.0", port=DTU_PORT)
  • binds all interfaces (0.0.0.0) sandraschi-dark-app-factory-cd4644e/web/server.py :742 uvicorn.run(app, host="0.0.0.0", port=port)