github Python re-analysis due

Digital-Process-Tools/claude-supertool

github

Batched file operations for autonomous Claude Code runs. Collapses N reads/greps/globs into one Bash round-trip — fewer output tokens, less cache growth, less wall time.

maintainer
Digital-Process-Tools
licence
NOASSERTION
first seen
2026-06-07
last seen
2026-09-17
releases · 30d
13
short id

Drift inferred · capture-to-capture

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

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

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 083ca21 · analyzer v33 · 6h ago

skills & prompt files 1

danger signals12

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

code files: 1481

filesystem 399

  • fs (weak) Digital-Process-Tools-claude-supertool-083ca21/.github/scripts/check_encoding_seam.py :32 from pathlib import Path
  • fs (weak) Digital-Process-Tools-claude-supertool-083ca21/.github/scripts/check_meta_guards.py :39 from pathlib import Path
  • fs (weak) Digital-Process-Tools-claude-supertool-083ca21/.github/scripts/coverage_gate.py :154 from pathlib import Path
  • fs (weak) Digital-Process-Tools-claude-supertool-083ca21/.github/scripts/duration_report.py :115 from pathlib import Path
  • fs (weak) Digital-Process-Tools-claude-supertool-083ca21/.github/scripts/generate_shipped_reference.py :79 with open(os.path.join(REPO_ROOT, ".supertool.json"), encoding="utf-8") as fh:
  • fs (weak) Digital-Process-Tools-claude-supertool-083ca21/.github/scripts/junit_summary.py :48 from pathlib import Path
  • fs (weak) Digital-Process-Tools-claude-supertool-083ca21/.github/scripts/lint_new_files.py :111 import shutil
  • fs Digital-Process-Tools-claude-supertool-083ca21/.oss/assemble_changelog.py :79 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/.oss/statusline.py :37 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/_supertool.py :135 import shutil
  • fs Digital-Process-Tools-claude-supertool-083ca21/formatters/php-cs-fixer/php-cs-fixer.py :17 import pathlib
  • fs Digital-Process-Tools-claude-supertool-083ca21/formatters/phpcbf/phpcbf.py :17 import pathlib
show 28 more
  • fs Digital-Process-Tools-claude-supertool-083ca21/formatters/prettier-write/prettier-write.py :18 import pathlib
  • fs Digital-Process-Tools-claude-supertool-083ca21/formatters/ruff-format/ruff-format.py :24 import pathlib
  • fs Digital-Process-Tools-claude-supertool-083ca21/hooks/guard-selftest.py :58 import shutil
  • fs Digital-Process-Tools-claude-supertool-083ca21/hooks/pre_bash_guard.py :150 with open(os.path.join(directory, name), encoding="utf-8") as fh:
  • fs Digital-Process-Tools-claude-supertool-083ca21/hooks/shipped_rules.py :168 with open(index, encoding="utf-8") as handle:
  • fs Digital-Process-Tools-claude-supertool-083ca21/notifiers/cursor-witness/listen.py :37 try: os.unlink(sock_path)
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_board.py :23 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_checks.py :26 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_classify_render.py :134 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_git_run.py :44 import shutil
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_http.py :594 with open(tmp, "wb") as fh:
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_image_root.py :224 fd = os.open(root, os.O_RDONLY | os.O_DIRECTORY | os.O_NOFOLLOW)
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_mirror.py :66 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_publish_safety.py :26 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_remote_default.py :22 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_st_hint.py :76 with open(path, "rb") as fh:
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_statusline_fragments.py :129 os.unlink(tmp)
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/_untrusted.py :385 file directly with `open(target, "rb")` and `.decode("utf-8",
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/_atproto.py :19 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/_auth.py :24 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/follow.py :15 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/like.py :15 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/list.py :10 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/publish.py :25 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/read.py :10 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/repost.py :7 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/search.py :10 from pathlib import Path
  • fs Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/status_since.py :13 from pathlib import Path

359 more not shown — this panel samples each group; the count above is the real total.

shell / exec 307

  • shell (weak) Digital-Process-Tools-claude-supertool-083ca21/.github/scripts/check_encoding_seam.py :30 import subprocess
  • shell (weak) Digital-Process-Tools-claude-supertool-083ca21/.github/scripts/coverage_gate.py :22 drive a preset by spawning it (`subprocess.run([sys.executable, DIFF, ...])`),
  • shell (weak) Digital-Process-Tools-claude-supertool-083ca21/.github/scripts/lint_new_files.py :112 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/.oss/statusline.py :34 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/_supertool.py :138 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/formatters/php-cs-fixer/php-cs-fixer.py :19 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/formatters/phpcbf/phpcbf.py :19 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/formatters/prettier-write/prettier-write.py :20 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/formatters/ruff-format/ruff-format.py :26 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/hooks/guard-selftest.py :59 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/_branch_locale.py :30 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/_declared_legs.py :47 import subprocess
show 28 more
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/_declared_workflows.py :56 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/_git_run.py :45 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/_pr_board.py :52 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/_remote_default.py :21 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/_repo_target.py :24 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/_untrusted.py :371 `subprocess.run(text=True)`, and Python's universal-newline translation
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/claims/check.py :57 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/classify/model.py :97 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/dashboard/dashboard.py :64 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/git/_git_common.py :22 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/git/conflicts.py :12 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/git/push.py :75 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/git/resolve.py :16 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/git/status.py :19 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/git/worktrees.py :54 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/_release_gate.py :89 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/batch_follow.py :23 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/batch_star.py :20 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/branch.py :79 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/check.py :44 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/find_followable.py :18 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/find_starable.py :18 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/follow.py :8 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/following.py :7 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/issue.py :10 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/issue_comment.py :36 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/issue_create.py :61 import subprocess
  • shell Digital-Process-Tools-claude-supertool-083ca21/presets/github/issues.py :83 import subprocess

267 more not shown — this panel samples each group; the count above is the real total.

network 95

  • net Digital-Process-Tools-claude-supertool-083ca21/_supertool.py :137 import socket
  • net Digital-Process-Tools-claude-supertool-083ca21/notifiers/cursor-witness/listen.py :20 import socket
  • net Digital-Process-Tools-claude-supertool-083ca21/notifiers/cursor-witness/notify.py :27 import socket
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/_http.py :5 `urllib.request.urlopen` uses the default global opener, which installs
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/_repo_target.py :26 import urllib.parse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/_atproto.py :16 import urllib.error
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/like.py :16 from urllib.parse import urlparse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/read.py :11 from urllib.parse import urlparse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/bluesky/repost.py :8 from urllib.parse import urlparse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/devto/_resolve.py :21 from urllib.parse import urlparse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/devto/_rest.py :7 import urllib.error
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/devto/_session.py :25 import urllib.error
show 28 more
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/devto/comment.py :43 import urllib.error
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/devto/read.py :13 from urllib.parse import urlparse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/github/find_starable.py :20 import urllib.parse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/github/issue.py :12 import urllib.parse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/gitlab/api.py :63 import urllib.parse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/gitlab/issue.py :14 import urllib.parse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/gitlab/issue_create.py :9 import urllib.parse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/gitlab/job.py :24 import urllib.parse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/hashnode/_graphql.py :7 import urllib.error
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/hashnode/_resolve.py :20 from urllib.parse import urlparse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/hashnode/comments.py :8 from urllib.parse import urlparse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/hashnode/read.py :12 from urllib.parse import urlparse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/mcp/daemon.py :25 import socket
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/slack/_api.py :9 bare `urllib.request.urlopen` -- see that module's docstring for why: a
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/watch/channel.py :106 import socket
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/watch/sources/bluesky-engagement/poller.py :57 import urllib.error
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/watch/sources/devto-engagement/poller.py :64 import urllib.error
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/watch/sources/github-issue-feed/poller.py :52 import urllib.parse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/watch/transport.py :24 import socket
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/youtube/_oauth.py :56 import socket
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/youtube/_yt.py :16 import urllib.error
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/youtube/list.py :18 from urllib.parse import urlparse
  • net Digital-Process-Tools-claude-supertool-083ca21/presets/youtube/read.py :15 from urllib.parse import parse_qs, urlparse
  • net (weak) Digital-Process-Tools-claude-supertool-083ca21/tests/_mcp_mock.py :12 import socket
  • net (weak) Digital-Process-Tools-claude-supertool-083ca21/tests/_netblock.py :31 `socket.socket` type expose**, `tests/test_netblock_egress_register_1584.py`
  • net (weak) Digital-Process-Tools-claude-supertool-083ca21/tests/conftest.py :159 # calls through that name, so a test stubbing `MODULE.urllib.request.urlopen`
  • net (weak) Digital-Process-Tools-claude-supertool-083ca21/tests/fixtures/mock_mcp_server.py :16 import socket
  • net (weak) Digital-Process-Tools-claude-supertool-083ca21/tests/test_encoding_seam.py :264 "import urllib.request\n"

55 more not shown — this panel samples each group; the count above is the real total.

secrets 4

  • secrets Digital-Process-Tools-claude-supertool-083ca21/presets/watch/sources/bluesky-engagement/poller.py :138 password = os.environ.get("BLUESKY_APP_PASSWORD", "").strip()
  • secrets Digital-Process-Tools-claude-supertool-083ca21/presets/watch/sources/devto-engagement/poller.py :129 val = os.environ.get("DEVTO_API_KEY", "").strip()
  • secrets (weak) Digital-Process-Tools-claude-supertool-083ca21/tests/test_preset_auth_env_isolation_2096.py :108 assert os.environ.get("SLACK_BOT_TOKEN") is None
  • secrets (weak) Digital-Process-Tools-claude-supertool-083ca21/tests/test_security_tree_sitter.py :293 import getpass

declared dependencies 7

  • pytest@*
  • pytest-cov@*
  • pytest-xdist@*
  • pytest-timeout@*
  • ruff@*
  • markdown-it-py@*
  • pyyaml@*