## TL;DR
The reviewdog action declares a required input named token - add it to the step's with block, pointing at the GitHub token available to the workflow. Workflows that pass a token under a different input name still fail, because the action validates the input literally named token before it runs.

## The error
```text
"reviewdog/github-pr-review: input token is required" error
```

## Steps to fix
1. Open the workflow file and find the reviewdog step that failed.
   - Expected: a step using the reviewdog action with a with block that's missing the token input.
2. In that step's with block, add the input named token and set it to the GitHub token available to the workflow (the default token secret works for same-repo PRs).
   - Expected: the step now declares the required input.
3. If the workflow already passes a token under another input name, keep the token input as well - the required one is the input named token specifically.
   - Expected: no duplicate-name conflict, just the correctly named input present.
4. Re-run the workflow.
   - Expected: the step starts instead of failing on the missing input.

## Use this when
- A reviewdog action step fails immediately with "input token is required".
- The workflow was copied from an example that used a different action version.
- The token is passed, but under a different input name.

## Not for this skill when
- reviewdog runs but fails to post results (that's a permissions or token-scope problem, not a missing input).
- The error comes from a different action that also wants a token (check that action's own input names).
- You're running reviewdog locally, not as a GitHub Action (inputs only exist in the Actions context).

## Variant phrasings
- reviewdog action input token is required
- reviewdog github action missing token input
- reviewdog step fails required input token
- github-pr-review token input missing

## Why it happens
GitHub Actions validates required inputs before a step runs, and fails fast with this message when one is absent. reviewdog needs a token to post results back to the pull request, so it marks the input required rather than failing halfway through with a confusing auth error. The trap is the input's literal name: examples for other tools use names like github_token, and reviewdog won't accept those in place of token.

## Edge cases
- The default token works for same-repo PRs but can't write to fork PRs from private repos - use a PAT-backed secret there.
- The input is set but empty because the secret it references doesn't exist: check the secret name spelling in the repo settings.
- Organization rules may restrict which secrets workflows can read; the input can be present and still resolve empty.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_YvsQonKzB1pf9rRkIIQm1g
