diff --git a/dead.py b/dead.py
index 5b3fdbc..a9f48c0 100644
--- a/dead.py
+++ b/dead.py
@@ -131,6 +131,7 @@ class Visitor(ast.NodeVisitor):
         with self.scope():
             if not self._is_stub_function(node):
                 for arg in (
+                        *getattr(node.args, 'posonlyargs', ()),
                         *node.args.args,
                         node.args.vararg,
                         *node.args.kwonlyargs,

Support posonlyargs
they are notably missing in [this code](https://github.com/asottile/dead/blob/8817aa412121e319fc45dd5e269b0d009e7c2c06/dead.py#L133-L140)
diff --git a/tests/dead_test.py b/tests/dead_test.py
index 73aa8b2..9de3213 100644
--- a/tests/dead_test.py
+++ b/tests/dead_test.py
@@ -1,4 +1,5 @@
 import subprocess
+import sys
 
 import pytest
 
@@ -247,3 +248,16 @@ def test_ignored_arguments(git_dir):
     )
     subprocess.check_call(('git', 'add', '.'))
     assert not dead.main(())
+
+
+@pytest.mark.xfail(sys.version_info < (3, 8), reason='py38+')
+def test_unused_positional_only_argument(git_dir, capsys):  # pragma: no cover
+    git_dir.join('f.py').write(
+        'def f(unused, /):\n'
+        '    return 1\n'
+        'print(f)\n',
+    )
+    subprocess.check_call(('git', 'add', '.'))
+    assert dead.main(())
+    out, _ = capsys.readouterr()
+    assert out == 'unused is never read, defined in f.py:1\n'

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest
3.9
requirements-dev.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
cfgv==3.4.0
covdefaults==2.3.0
coverage==7.8.0
-e git+https://github.com/asottile/dead.git@8817aa412121e319fc45dd5e269b0d009e7c2c06#egg=dead
distlib==0.3.9
exceptiongroup==1.2.2
filelock==3.18.0
identify==2.6.9
iniconfig==2.1.0
nodeenv==1.9.1
packaging==24.2
platformdirs==4.3.7
pluggy==1.5.0
pre_commit==4.2.0
pytest==8.3.5
PyYAML==6.0.2
tomli==2.2.1
virtualenv==20.29.3

name: dead
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - cfgv==3.4.0
      - covdefaults==2.3.0
      - coverage==7.8.0
      - distlib==0.3.9
      - exceptiongroup==1.2.2
      - filelock==3.18.0
      - identify==2.6.9
      - iniconfig==2.1.0
      - nodeenv==1.9.1
      - packaging==24.2
      - platformdirs==4.3.7
      - pluggy==1.5.0
      - pre-commit==4.2.0
      - pytest==8.3.5
      - pyyaml==6.0.2
      - tomli==2.2.1
      - virtualenv==20.29.3
prefix: /opt/conda/envs/dead

tests/dead_test.py::test_unused_positional_only_argument
tests/dead_test.py::test_dead_disable_regex_matching[# tests/dead_test.py::test_dead_disable_regex_matching[#dead:disable] tests/dead_test.py::test_dead_disable_regex_not_matching[# tests/dead_test.py::test_is_marked_as_used[x tests/dead_test.py::test_is_marked_as_used[def tests/dead_test.py::test_is_marked_as_used[async tests/dead_test.py::test_is_marked_as_used[class tests/dead_test.py::test_is_marked_as_used[from tests/dead_test.py::test_is_marked_as_used[import tests/dead_test.py::test_is_marked_as_used[MyStr tests/dead_test.py::test_deleted_file_dont_raise_error tests/dead_test.py::test_setup_py_entrypoints_mark_as_used tests/dead_test.py::test_setup_cfg_entry_points_marked_as_used tests/dead_test.py::test_setup_cfg_without_entry_points tests/dead_test.py::test_setup_cfg_without_attribute_entry_point tests/dead_test.py::test_never_referenced tests/dead_test.py::test_assignment_not_counted_as_reference tests/dead_test.py::test_only_referenced_in_tests tests/dead_test.py::test_unused_dead_disable_comment tests/dead_test.py::test_partially_disabled tests/dead_test.py::test_unused_argument tests/dead_test.py::test_unused_argument_in_scope tests/dead_test.py::test_using_an_argument tests/dead_test.py::test_ignore_unused_arguments_stubs tests/dead_test.py::test_ignored_arguments
dead.py
dead.py