Patterns and conventions for the claude-workflows/ composite actions in this codebase. GitHub Agent Workflows follow gh-aw conventions.
Shared scripts live in a parent scripts/ directory. RO and RWX variants reference them via:
Bash(${{ github.action_path }}/../scripts/script-name.sh:*)Workflow-specific scripts go in claude-workflows/<workflow>/scripts/.
extra-allowed-tools is appended to allowed-tools without replacing defaults:
claude_args: |
${{ format('--allowedTools {0}{1}', inputs.allowed-tools, inputs.extra-allowed-tools != '' && format(',{0}', inputs.extra-allowed-tools) || '') }}Scripts receive configuration via environment variables set in the composite action's env: block (e.g. PR_REVIEW_REPO, PR_REVIEW_PR_NUMBER). Each script documents its required variables in its header comment.
Prompts use XML-like sections: <context>, <task>, <constraints>, <allowed_tools>, <additional_instructions>, plus workflow-specific sections.
All comments and reviews include this footer:
---
[Why is Claude responding?](https://ela.st/github-ai-tools) | Type `@claude` to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
Every workflow action has three files: action.yml, example.yml, README.md.
Avoid code reviewing lock files directly. These are compiled by gh-aw and we do not control their contents, except for the parts that come from the corresponding .md workflow source.