Skip to content

Commit 7474f44

Browse files
committed
Claude GitHub Actions
0 parents  commit 7474f44

File tree

2 files changed

+122
-0
lines changed

2 files changed

+122
-0
lines changed

.github/workflows/claude.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Claude Code
2+
3+
on:
4+
issue_comment:
5+
types: [created]
6+
pull_request_review_comment:
7+
types: [created]
8+
issues:
9+
types: [opened, assigned]
10+
pull_request_review:
11+
types: [submitted]
12+
13+
jobs:
14+
claude:
15+
if: |
16+
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17+
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18+
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19+
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
20+
runs-on: ubuntu-latest
21+
permissions:
22+
contents: write
23+
pull-requests: write
24+
issues: write
25+
id-token: write
26+
actions: read # Required for Claude to read CI results on PRs
27+
steps:
28+
- name: Checkout repository
29+
uses: actions/checkout@v5
30+
with:
31+
fetch-depth: 1
32+
33+
- name: Run Claude Code
34+
id: claude
35+
uses: anthropics/claude-code-action@v1
36+
with:
37+
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
38+
additional_permissions: |
39+
actions: read
40+
41+
# Optional: Customize the trigger phrase (default: @claude)
42+
# trigger_phrase: "/claude"
43+
44+
# Optional: Trigger when specific user is assigned to an issue
45+
# assignee_trigger: "claude-bot"
46+
47+
# Optional: Configure Claude's behavior with CLI arguments
48+
# claude_args: |
49+
# --model claude-opus-4-1-20250805
50+
# --max-turns 10
51+
# --allowedTools "Bash(npm install),Bash(npm run build),Bash(npm run test:*),Bash(npm run lint:*)"
52+
# --system-prompt "Follow our coding standards. Ensure all new code has tests. Use TypeScript for new files."
53+
54+
# Optional: Advanced settings configuration
55+
# settings: |
56+
# {
57+
# "env": {
58+
# "NODE_ENV": "test"
59+
# }
60+
# }

CLAUDE.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# CLAUDE.md
2+
3+
## Code Style
4+
5+
- C++11 unless otherwise specified
6+
- Boost C++ Libraries naming conventions (snake_case)
7+
- 4-space indentation, no tabs
8+
- Braces on their own line for classes/functions
9+
- Symbols in "detail" namespaces are never public
10+
- public headers in "include/"
11+
- library cpp files in "src/"
12+
13+
## Javadoc Documentation
14+
15+
Follow Boost C++ Libraries Javadoc style:
16+
17+
- Brief descriptions on first line after `/**`
18+
- Functions returning values: brief starts with "Return"
19+
- Use `@param` for function parameters
20+
- Use `@tparam` for template parameters, except:
21+
- Variadic args (`Args...`) — omit
22+
- Types deduced from function parameters — omit (self-evident from `@param`)
23+
- Use `@return` for return value details
24+
- Use `@pre` for preconditions
25+
- Use `@post` for postconditions
26+
- Use `@throws` for exceptions
27+
- Use `@note` for important notes
28+
- Use `@see` for cross-references
29+
- Use `@code` / `@endcode` for examples
30+
31+
## Examples
32+
33+
```cpp
34+
/** Return the size of the buffer sequence.
35+
36+
@param buffers The buffer sequence to measure.
37+
38+
@return The total byte count.
39+
*/
40+
template<class BufferSequence>
41+
std::size_t
42+
buffer_size(BufferSequence const& buffers);
43+
```
44+
45+
No `@tparam` needed—`BufferSequence` is evident from `@param buffers`.
46+
47+
```cpp
48+
/** Return the default value.
49+
50+
@tparam T The value type.
51+
*/
52+
template<class T>
53+
T default_value();
54+
```
55+
56+
`@tparam` needed—`T` has no corresponding function parameter.
57+
58+
## Preferences
59+
60+
- Concise, dry answers
61+
- Full files, not diffs
62+
- Accurate, compiling C++ code

0 commit comments

Comments
 (0)