Pull request triage workflow that collects PR metadata, classifies risk and ownership, assesses readiness, routes work, and pauses at a human disposition gate.
npx skills add Reactive-Skills/skills --skill pr-triagenpx -y @reactive-skills/axi invoke pr-triage9
Hierarchical nodes
INTAKE
Bootstrap entrypoint
4
Whitelisted for safety
2
Automated projections
Visual state machine topology parsed directly from the official STATECHART.md in Reactive-Skills/skills:
Each state is an isolated operational slice. Transitions occur only when typed signals satisfy programmatic guard conditions.
Collect repository, pull request batch, and triage policy
Outgoing Transitions
event.payload.repository != null && Array.isArray(event.payload.pull_requests) && event.payload.pull_requests.length > 0 && event.payload.triage_policy != nullevent.payload.repository == null || !Array.isArray(event.payload.pull_requests) || event.payload.pull_requests.length === 0 || event.payload.triage_policy == nullCollect PR metadata, checks, reviews, diffs, and ownership signals
Outgoing Transitions
Array.isArray(event.payload.collected_items) && event.payload.collected_items.length > 0!Array.isArray(event.payload.collected_items) || event.payload.collected_items.length === 0Classify each PR by risk, size, ownership, and required reviewer
Outgoing Transitions
Array.isArray(event.payload.classifications) && event.payload.classifications.length > 0!Array.isArray(event.payload.classifications) || event.payload.classifications.length === 0Assess readiness, risk signals, test status, and policy compliance
Outgoing Transitions
Array.isArray(event.payload.assessments) && event.payload.assessments.length > 0!Array.isArray(event.payload.assessments) || event.payload.assessments.length === 0Build deterministic routing and disposition recommendations
Outgoing Transitions
Array.isArray(event.payload.routing_plan) && event.payload.routing_plan.length > 0!Array.isArray(event.payload.routing_plan) || event.payload.routing_plan.length === 0Human gate to approve, rework, or block the triage result
Outgoing Transitions
event.payload.approved === trueevent.payload.rework_requested === trueevent.payload.rejected === trueTerminal state: PR triage approved
Terminal state: PR triage blocked
Terminal state: PR triage workflow failed
Inspect or drive this state machine directly via the token-efficient AXI CLI:
Check state:
Inspect hierarchy:
Tail events:
Runtime variables persisted across state transitions:
repositorypull_requeststriage_policycollected_itemsclassificationsassessmentsrouting_planreview_decisiondeliverable_pathRead models automatically rendered upon transition:
Add to your Claude Desktop, Cursor, or VS Code settings:
{
"mcpServers": {
"reactive-skills": {
"command": "npx",
"args": [
"-y",
"@reactive-skills/axi",
"mcp"
]
}
}
}