Add a fork-safe GitHub Actions workflow that classifies each PR when it is opened, updated, reopened, or marked ready for review. Neither stage should check out or execute pull request code.
Size
Apply exactly one deterministic size label based on changed lines and file count:
- size:small: no more than 30 changed lines and 2 files.
- size:medium: no more than 100 changed lines and 5 files.
- size:large: no more than 300 changed lines and 10 files.
- size:xlarge: anything larger.
Kind
Apply every substantive kind that describes the PR:
- kind:code
- kind:docs
- kind:tests
- kind:examples
- kind:dependencies
- kind:ci
Mixed PRs may have multiple kind labels, such as kind:code and kind:tests. If the semantic classifier cannot read the PR or classify it confidently, preserve existing kind labels and apply failed-auto-classify; remove that marker after a later successful classification.
Area
Apply zero or more deterministic area labels based on changed paths:
- area:agent
- area:workflow
- area:message
- area:tool
- area:provider
- area:provider/a2a
- area:provider/agui
- area:provider/anthropic
- area:provider/copilot
- area:provider/foundry
- area:provider/gemini
- area:provider/openai
- area:provider/otel
- area:internal
- area:tooling
- area:examples
- area:github
Risk classification is tracked separately in #824.
Add a fork-safe GitHub Actions workflow that classifies each PR when it is opened, updated, reopened, or marked ready for review. Neither stage should check out or execute pull request code.
Size
Apply exactly one deterministic size label based on changed lines and file count:
Kind
Apply every substantive kind that describes the PR:
Mixed PRs may have multiple kind labels, such as kind:code and kind:tests. If the semantic classifier cannot read the PR or classify it confidently, preserve existing kind labels and apply failed-auto-classify; remove that marker after a later successful classification.
Area
Apply zero or more deterministic area labels based on changed paths:
Risk classification is tracked separately in #824.