Add ai-workflows reusable workflows to your repository using thin caller files.
- GitHub CLI installed and authenticated
- One secret configured in your repository:
OPENROUTER_API_KEY— OpenRouter API key (required by all workflows; see README — Authentication)
Each reusable workflow in this repo exposes on: workflow_call. You create a small "thin caller" file in your repo that calls it with uses:. The reusable workflow handles all the logic; you just provide triggers, secrets, and permissions.
# .github/workflows/<name>.yml in your consumer repo
name: <Workflow Name>
on:
<trigger>:
types: [<event>]
permissions:
contents: read # minimum needed by this workflow
id-token: write # required for OIDC auth
issues: write # add what this workflow needs
jobs:
run:
uses: JacobPEvans/ai-workflows/.github/workflows/<name>[email protected]
secrets: inheritImportant: Consumer callers must declare permissions: explicitly. CodeQL and branch protection rules may block merges if permissions are missing.
Triggered by issues: [opened]. Categorizes, deduplicates, and labels new issues.
on:
issues:
types: [opened]
permissions:
contents: read
id-token: write
issues: writeTriggered by issues: [opened]. Creates draft PRs for simple, well-scoped issues.
on:
issues:
types: [opened]
permissions:
contents: write
id-token: write
issues: write
pull-requests: writeInputs: repo_context (required), file_patterns (optional)
Triggered by pull_request. Reviews PRs for quality and best practices.
on:
pull_request:
types: [opened, synchronize, ready_for_review]
permissions:
actions: read
contents: read
id-token: write
issues: write
pull-requests: writeTriggered by pull_request_review. Final review gate before merge.
on:
pull_request_review:
types: [submitted]
permissions:
checks: read
contents: read
id-token: write
issues: write
pull-requests: writeTriggered by workflow_run with conclusion: failure. Analyzes CI failure logs and pushes fixes.
on:
workflow_run:
workflows: ["CI"] # name of your CI workflow
types: [completed]
permissions:
actions: read
contents: write
id-token: write
issues: write
pull-requests: writeInputs: repo_context (required), ci_structure (required), extra_tools (optional)
Triggered via the dispatch pattern — consumer caller listens on push: branches: [main] and re-dispatches as workflow_dispatch. push events are not directly supported by claude-code-action@v1.
# Required permissions for the dispatch pattern
permissions:
actions: write # required for gh workflow run
contents: write
id-token: write
pull-requests: writeSee docs/PATTERNS.md — Post-Merge Dispatch Pattern for the full two-job consumer caller template.
Triggered via the dispatch pattern — consumer caller listens on push: branches: [main] and re-dispatches as workflow_dispatch. push events are not directly supported by claude-code-action@v1.
# Required permissions for the dispatch pattern
permissions:
actions: write # required for gh workflow run
contents: write
id-token: write
pull-requests: writeSee docs/PATTERNS.md — Post-Merge Dispatch Pattern for the full two-job consumer caller template.
Triggered by issue/PR events. Routes items to GitHub Projects.
on:
issues:
types: [opened, labeled]
pull_request:
types: [opened, ready_for_review]
permissions:
contents: read
id-token: write
issues: write
pull-requests: readThese are typically called with schedule: and workflow_dispatch:.
Weekly audit creating actionable recommendations. Gate: skips if no recent human activity.
on:
schedule:
- cron: "0 3 * * 3" # Wed 3am UTC
workflow_dispatch:
permissions:
contents: read
id-token: write
issues: write
pull-requests: readNightly DRY enforcement, creates draft PRs.
on:
schedule:
- cron: "0 4 * * *" # Daily 4am UTC
workflow_dispatch:
permissions:
contents: write
id-token: write
pull-requests: writeWeekly duplicate detection, links merged PRs.
on:
schedule:
- cron: "0 7 * * 1" # Mon 7am UTC
workflow_dispatch:
permissions:
contents: read
id-token: write
issues: write
pull-requests: readWeekly scan of open issues, closes resolved ones.
on:
schedule:
- cron: "0 6 * * 1" # Mon 6am UTC
workflow_dispatch:
permissions:
contents: read
id-token: write
issues: write
pull-requests: readSyncs canonical labels from .github repo.
on:
schedule:
- cron: "0 5 * * 0" # Sun 5am UTC
workflow_dispatch:
permissions:
contents: read
id-token: write
issues: writeDaily momentum analyzer, creates issues or PRs with suggested next actions.
on:
schedule:
- cron: "0 5 * * *" # Daily 5am UTC
workflow_dispatch:
permissions:
contents: write
id-token: write
issues: write
pull-requests: writeOn-demand multi-repo workflow dispatcher.
on:
workflow_dispatch:
permissions:
actions: write
contents: read
id-token: writeAfter adding callers to your repo, use the verification runbook at VERIFICATION.md or run the e2e test script:
bash .github/scripts/verification/e2e-test.sh check-scheduled
bash .github/scripts/verification/e2e-test.sh issue-lifecycle JacobPEvans/my-repo