GitHub Agentic Workflows defines 15 named design patterns — proven architectures for specific types of automation. Instead of inventing your workflow structure from scratch, you pick the pattern that matches your goal and fill in the details.
Think of these patterns like design patterns in software: you wouldn't invent your own Observer pattern each time you need event handling. Similarly, you don't need to invent a new workflow architecture each time you want to automate something in your repository.
Every pattern answers three questions:
By naming these shapes, patterns give you a shared vocabulary, predictable behavior, and clear safety boundaries. When someone says "that's an IssueOps workflow," you immediately know: it triggers on issue events, reads the issue context, and responds with labels or comments.
Of the 15 available patterns, these six cover the vast majority of what a solo developer or small team will build:
/slash-command in a PR or issue comment. The agent parses the command, performs an action, and replies with results. Essentially turns GitHub comments into a CLI.
.agent/ or .github/memory/) between runs. Each run reads previous state, does work, and writes updated state back. This gives agents persistence across invocations.
Given a goal, which pattern fits? Use this decision table:
| I want to... | Pattern | Why |
|---|---|---|
| Auto-label and triage new issues | IssueOps | Triggers on issue creation, responds with labels/comments |
| Run an agent when I type a command in a PR | ChatOps | Listens for /slash in comments, responds inline |
| Get a daily report on repo health | MonitorOps | Schedule-triggered, read-only, creates issue report |
| Auto-generate PRs to fix stale dependencies | SpecOps | Proposes concrete changes as a PR for review |
| Chain multiple workflows in sequence | OrchestratorOps | Dispatches sub-workflows, manages flow control |
| Build an agent that remembers past runs | MemoryOps | Persists state in repo files between invocations |
| Validate issue templates before accepting | IssueOps | Reads issue body on creation, comments if invalid |
| Let reviewers request specific checks on a PR | ChatOps | /check-security or /explain commands in PR comments |
| Track which TODOs get resolved over time | MemoryOps | Stores TODO inventory in a file, diffs between runs |
| Run a weekly refactoring pass and propose fixes | SpecOps | Schedule + PR creation for human review |
| First triage, then assign, then notify — in order | OrchestratorOps | Sequences dependent steps across workflows |
| Detect when a metric degrades week-over-week | MonitorOps + MemoryOps | Schedule + state file to compare current vs previous |
Real workflows often combine two patterns. Here are the most common combinations:
The workflows you've already built (or are planning) map directly to these patterns:
/comply commands in comments (ChatOps shape). The auto-triage is IssueOps; the on-demand invocation is ChatOps.
/comply dispatches sub-checks (security, style, coverage) as separate workflow runs, the parent is an orchestrator.
Recognizing the pattern means you can look at gh-aw's documentation for that pattern and immediately find configuration options, best practices, and examples that apply to your workflow.
Here's how IssueOps looks as a concrete workflow — the most common starting point for solo developers:
---
description: "Auto-triage new issues with labels and priority"
on:
issues:
types: [opened]
permissions:
issues: write
contents: read
engine:
id: copilot
model: gpt-4.1-mini
max-ai-credits: 300
safe-outputs:
add-labels:
allowed: [bug, feature, question, docs, good-first-issue, priority-high, priority-low]
add-comment:
max-length: 500
---
Triage this newly opened issue.
Read the issue title and body. Based on the content:
1. **Classify** — is this a bug report, feature request, question, or docs issue?
2. **Prioritize** — does it describe data loss, security, or production breakage (high)?
Or is it cosmetic, nice-to-have, or unclear (low)?
3. **Comment** — post a brief acknowledgment explaining your classification.
If the issue is missing reproduction steps (for bugs), ask for them.
Apply the appropriate labels from the allowed set.
If the issue is clearly spam or completely empty, apply no labels and
comment asking for clarification.
Notice how the pattern shapes every decision: the trigger (issues: opened), the permissions (write issues, read contents), and the safe-outputs (only specific labels allowed, comment length capped). The pattern constrains the agent so you don't have to think about safety boundaries from scratch.
For completeness, here are the remaining patterns you'll encounter in gh-aw documentation. You won't need most of these until your automation becomes more complex:
| Pattern | One-Liner |
|---|---|
| BatchOps | Process many items (issues, files) in a single run with rate limiting |
| GateOps | Block a merge/deploy until agent validates conditions |
| ReviewOps | Automated code review on PRs with inline comments |
| DeployOps | Agent-assisted deployment decisions and rollbacks |
| DocOps | Auto-generate or update documentation from code changes |
| TestOps | Generate or maintain tests based on code changes |
| SecurityOps | Security scanning with contextual triage (not just "vulnerability found") |
| MigrationOps | Large-scale codebase migration with progressive PRs |
| FeedbackOps | Collect and synthesize user feedback from issues/discussions |
These follow the same principles — named trigger, scoped permissions, constrained output — just applied to more specialized use cases.
/prioritize high to override the label. Which patterns are combined?/prioritize slash command is ChatOps (triggered by a comment). Two workflows, one for each pattern, working on the same issue./prioritize command triggers on a comment (ChatOps pattern). Each pattern handles one interaction mode.You now know how to identify which pattern fits your automation goal — and when to combine patterns for more complex scenarios. The next lesson covers testing and debugging workflows — how to develop workflows iteratively, test them locally, and diagnose failures when your agent doesn't behave as expected.
IssueOps Pattern Reference — the complete documentation for the IssueOps pattern, including configuration options, event filtering, and examples. Other patterns follow the same documentation structure at /patterns/<pattern-name>/.