@groupby/ai-dev 0.5.5 → 0.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/teams/OOF/skills/jira-ticket-creator/README.md +22 -0
- package/teams/OOF/skills/jira-ticket-creator/SKILL.md +266 -0
- package/teams/fhr-ai-team/github/PULL_REQUEST_TEMPLATE/full.md +31 -0
- package/teams/fhr-ai-team/github/PULL_REQUEST_TEMPLATE/light.md +7 -0
- package/teams/fhr-ai-team/github/copilot-instructions.md +24 -0
- package/teams/fhr-ai-team/github/instructions/python.instructions.md +23 -0
- package/teams/fhr-ai-team/github/pull_request_template.md +21 -0
- package/teams/fhr-ai-team/prompts/brainstorm.md +7 -0
- package/teams/fhr-ai-team/prompts/plan-algo-tests.md +7 -0
- package/teams/fhr-ai-team/prompts/plan.md +7 -0
- package/teams/fhr-ai-team/prompts/pr-description.md +7 -0
- package/teams/fhr-ai-team/prompts/test.md +7 -0
- package/teams/fhr-ai-team/resources/AGENTS.md +55 -0
- package/teams/fhr-ai-team/resources/CLAUDE.md +52 -0
- package/teams/fhr-ai-team/resources/README.md +51 -0
- package/teams/fhr-ai-team/resources/claude-code-setup.md +60 -0
- package/teams/fhr-ai-team/resources/copilot-setup.md +64 -0
- package/teams/fhr-ai-team/resources/onboarding.md +179 -0
- package/teams/fhr-ai-team/resources/opencode-install.md +29 -0
- package/teams/fhr-ai-team/resources/opencode-setup.md +43 -0
- package/teams/fhr-ai-team/skills/algo-test-planning/SKILL.md +192 -0
- package/teams/fhr-ai-team/skills/algo-test-planning/references/pipeline-registry.md +280 -0
- package/teams/fhr-ai-team/skills/brainstorming/SKILL.md +111 -0
- package/teams/fhr-ai-team/skills/e2e-testing/SKILL.md +163 -0
- package/teams/fhr-ai-team/skills/grill-me/SKILL.md +10 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/SKILL.md +313 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/references/kubectl-debug.md +165 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/references/mongodb-config.md +218 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/references/pipeline-configs.md +190 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/references/pipeline-steps.md +182 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_logs.py +203 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_query.py +233 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_wait.py +195 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/mlflow_query.py +252 -0
- package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/mongo_predictor.py +352 -0
- package/teams/fhr-ai-team/skills/naming-conventions-reviewer/SKILL.md +230 -0
- package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/dataset-naming.md +190 -0
- package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/domain-vocabulary.md +447 -0
- package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/repo-dependency-graph.md +264 -0
- package/teams/fhr-ai-team/skills/planning/SKILL.md +138 -0
- package/teams/fhr-ai-team/skills/pr-description/SKILL.md +94 -0
- package/teams/snpd/skills/code-review-github/SKILL.md +475 -0
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-review-github
|
|
3
|
+
description: Use when the user wants to add Claude Code Agent + GitHub Copilot AI tooling to a repository — automatic PR code review, on-demand `@claude` assistance, a Copilot setup workflow, a structured PR template, and AI context files (`CLAUDE.md`, `.github/copilot-instructions.md`, `docs/*`). Triggered by `/code-review-github` or requests like "set up Claude PR review", "add the AI agent setup", "configure the copilot workflows", "bootstrap AI agents in this repo". Originally built for GroupBy Java/Micronaut repos but adapts to any stack.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# code-review-github
|
|
7
|
+
|
|
8
|
+
Bootstrap a repository with the standard Claude Code Agent + GitHub Copilot
|
|
9
|
+
setup: GitHub Actions for automatic PR review and `@claude` assistance, a
|
|
10
|
+
Copilot environment-setup workflow, a PR template with an AI checklist, and the
|
|
11
|
+
AI context files agents read on every session.
|
|
12
|
+
|
|
13
|
+
This skill is **self-contained** — every file template lives below, verified
|
|
14
|
+
against a working reference implementation. Do not fetch anything external.
|
|
15
|
+
|
|
16
|
+
## What this setup provides
|
|
17
|
+
|
|
18
|
+
| Capability | Tool | Trigger |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| Automatic PR code review | Claude Code | PR opened |
|
|
21
|
+
| On-demand AI assistance | Claude Code | `@claude` in PR comment |
|
|
22
|
+
| Copilot workspace environment | GitHub Copilot | workflow_dispatch / file change |
|
|
23
|
+
| Structured PR descriptions | PR template | PR creation |
|
|
24
|
+
| AI context for IDE Copilot | `copilot-instructions.md` | IDE session |
|
|
25
|
+
| AI context for Claude | `CLAUDE.md` | Claude session |
|
|
26
|
+
|
|
27
|
+
## Files this skill creates or updates
|
|
28
|
+
|
|
29
|
+
| # | File | Action | Project-specific? |
|
|
30
|
+
|---|---|---|---|
|
|
31
|
+
| 1 | `.github/workflows/claude.yml` | Create | No — copy verbatim |
|
|
32
|
+
| 2 | `.github/workflows/claude-pr-review.yml` | Create | Yes — tune review prompt |
|
|
33
|
+
| 3 | `.github/workflows/copilot-setup-steps.yml` | Create | Yes — match build/runtime |
|
|
34
|
+
| 4 | `.github/PULL_REQUEST_TEMPLATE.md` | Create | Yes — Jira/issue prefix |
|
|
35
|
+
| 5 | `.github/copilot-instructions.md` | Create | Yes — full rewrite |
|
|
36
|
+
| 6 | `CLAUDE.md` | Create | Yes — full rewrite |
|
|
37
|
+
| 7 | `.gitignore` | Update | No — append AI section |
|
|
38
|
+
| 8 | `docs/source-control.md` | Create | No — universal |
|
|
39
|
+
| 9 | `docs/project-rule.md` | Create | Yes — tune tech rules |
|
|
40
|
+
| 10 | `docs/project-structure.md` | Create | Yes — full rewrite |
|
|
41
|
+
| 11 | `docs/<service-name>.md` | Create | Yes — main service doc |
|
|
42
|
+
|
|
43
|
+
## Procedure
|
|
44
|
+
|
|
45
|
+
### 1. Scan the repo first — never guess
|
|
46
|
+
|
|
47
|
+
Before writing anything, gather the facts that drive the project-specific files:
|
|
48
|
+
|
|
49
|
+
- **Build & runtime:** `build.gradle`/`pom.xml`/`package.json`/`go.mod`/etc. —
|
|
50
|
+
language + version, framework, build commands, test commands.
|
|
51
|
+
- **Submodules:** check for `.gitmodules`. Drives whether the Copilot workflow
|
|
52
|
+
needs `submodules: recursive` and a `GIT_TOKEN`.
|
|
53
|
+
- **Issue tracker prefix:** infer from existing branch names / commit history
|
|
54
|
+
(e.g. `S4R-`, `PROJ-`). Drives the PR template link.
|
|
55
|
+
- **Existing files:** if any target file already exists, read it and propose a
|
|
56
|
+
merge rather than overwriting. Never clobber a hand-maintained `CLAUDE.md`.
|
|
57
|
+
- **CI:** existing `.github/workflows/` — note the runner, JDK/Node version,
|
|
58
|
+
and cache strategy already in use so the Copilot workflow matches.
|
|
59
|
+
|
|
60
|
+
Announce what you found and what you intend to create before writing.
|
|
61
|
+
|
|
62
|
+
### 2. Confirm prerequisites with the user
|
|
63
|
+
|
|
64
|
+
These are configured outside the repo and the skill cannot do them. List them
|
|
65
|
+
and ask the user to confirm they are (or will be) set:
|
|
66
|
+
|
|
67
|
+
- **GitHub secret `ANTHROPIC_API_KEY`** — from console.anthropic.com.
|
|
68
|
+
- **GitHub secret `GIT_TOKEN`** — a PAT with `contents:read`, only if the repo
|
|
69
|
+
uses submodules.
|
|
70
|
+
- **Claude GitHub App** installed for the repo
|
|
71
|
+
(https://github.com/apps/claude) with `contents:read` and
|
|
72
|
+
`pull_requests:write`.
|
|
73
|
+
- **Branch protection** on the default branch: require PR before merge, require
|
|
74
|
+
status checks, allow GitHub Actions to create/approve PRs.
|
|
75
|
+
|
|
76
|
+
### 3. Create the workflow files (verbatim templates below)
|
|
77
|
+
|
|
78
|
+
Write files 1–3 from the templates in the **Templates** section. Apply the
|
|
79
|
+
✏️ edits noted there: review focus areas, JDK/Node version, submodule handling,
|
|
80
|
+
and the build/dependency command.
|
|
81
|
+
|
|
82
|
+
### 4. Create the PR template
|
|
83
|
+
|
|
84
|
+
Write `.github/PULL_REQUEST_TEMPLATE.md` from the template, replacing the
|
|
85
|
+
issue-tracker prefix with the one detected in step 1.
|
|
86
|
+
|
|
87
|
+
### 5. Update `.gitignore`
|
|
88
|
+
|
|
89
|
+
Append the AI section from the template. Skip any line already present (e.g.
|
|
90
|
+
don't add `/.cursor/` if `.cursor` already appears).
|
|
91
|
+
|
|
92
|
+
### 6. Create the documentation files
|
|
93
|
+
|
|
94
|
+
- `docs/source-control.md` — copy verbatim (universal).
|
|
95
|
+
- `docs/project-rule.md` — copy, then tune the tech-specific lines (language
|
|
96
|
+
version, framework name).
|
|
97
|
+
- `docs/project-structure.md` — write from the repo scan: top-level layout,
|
|
98
|
+
main source packages and their purpose, test layout, key config files.
|
|
99
|
+
- `docs/<service-name>.md` — write for the main service/entry point: main
|
|
100
|
+
endpoint, request flow, key methods, dependencies, feature flags, error
|
|
101
|
+
handling.
|
|
102
|
+
|
|
103
|
+
### 7. Write the AI context files (`CLAUDE.md` + `copilot-instructions.md`)
|
|
104
|
+
|
|
105
|
+
These are fully project-specific and mirror each other. **Verify every claim**
|
|
106
|
+
against source before including it: confirm each build/test command exists,
|
|
107
|
+
quote exact config keys, list directories before describing them, and never
|
|
108
|
+
instruct placing credentials in a repo-tracked file (use `~/.gradle/...`,
|
|
109
|
+
`~/.m2/...`, `~/.npmrc`, or env vars). Keep `CLAUDE.md` a thin index that points
|
|
110
|
+
into `docs/`. Use the skeletons in the Templates section.
|
|
111
|
+
|
|
112
|
+
If the repo already follows the `docs-init` canonical structure (architecture /
|
|
113
|
+
local-setup / conventions / operations / decisions), point `CLAUDE.md` at those
|
|
114
|
+
files instead of inventing new ones — don't duplicate.
|
|
115
|
+
|
|
116
|
+
### 8. Verify
|
|
117
|
+
|
|
118
|
+
Run through the checklist and report status to the user:
|
|
119
|
+
|
|
120
|
+
- [ ] `ANTHROPIC_API_KEY` secret set (and `GIT_TOKEN` if submodules used).
|
|
121
|
+
- [ ] Claude GitHub App installed for the repo.
|
|
122
|
+
- [ ] `copilot-setup-steps.yml` job is named exactly `copilot-setup-steps`.
|
|
123
|
+
- [ ] Review prompt tuned to the project's real concerns.
|
|
124
|
+
- [ ] JDK/Node version in the Copilot workflow matches the build file.
|
|
125
|
+
- [ ] All `docs/*.md` exist and the links in `CLAUDE.md` resolve.
|
|
126
|
+
- [ ] Suggest a test PR to confirm `claude-pr-review.yml` triggers and posts,
|
|
127
|
+
and an `@claude` comment to confirm `claude.yml` triggers.
|
|
128
|
+
- [ ] Suggest a commit message (e.g. `chore: add Claude Code + Copilot AI setup`).
|
|
129
|
+
|
|
130
|
+
## Hard rules
|
|
131
|
+
|
|
132
|
+
- **Never overwrite an existing hand-maintained file silently.** Read it,
|
|
133
|
+
propose a merge, confirm.
|
|
134
|
+
- **The Copilot job MUST be named `copilot-setup-steps`** or Copilot won't pick
|
|
135
|
+
it up.
|
|
136
|
+
- **Verify every command and config key** in `CLAUDE.md` /
|
|
137
|
+
`copilot-instructions.md` against source. Don't fabricate tasks.
|
|
138
|
+
- **Never put credentials in repo-tracked files.** Secrets live in GitHub
|
|
139
|
+
Actions secrets; local creds live in user-home config.
|
|
140
|
+
- **Pin the action and model versions** as written; only bump when the user
|
|
141
|
+
asks. Update the `--model` value if the user wants a specific model.
|
|
142
|
+
- **`submodules: recursive` + `GIT_TOKEN`** only if the repo actually has
|
|
143
|
+
submodules — remove both otherwise.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Templates
|
|
148
|
+
|
|
149
|
+
### 1. `.github/workflows/claude.yml` — copy verbatim
|
|
150
|
+
|
|
151
|
+
```yaml
|
|
152
|
+
name: Claude Code
|
|
153
|
+
|
|
154
|
+
# Triggers: new PR opened or @claude mentioned in a PR comment
|
|
155
|
+
on:
|
|
156
|
+
pull_request:
|
|
157
|
+
types: [ opened ]
|
|
158
|
+
issue_comment:
|
|
159
|
+
types: [ created ]
|
|
160
|
+
|
|
161
|
+
# Cancel redundant runs on the same PR
|
|
162
|
+
concurrency:
|
|
163
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.event.issue.number }}
|
|
164
|
+
cancel-in-progress: true
|
|
165
|
+
|
|
166
|
+
jobs:
|
|
167
|
+
claude:
|
|
168
|
+
name: Run Claude Code Agent
|
|
169
|
+
# Run on new PRs or when @claude is mentioned in a PR comment
|
|
170
|
+
if: |
|
|
171
|
+
(github.event_name == 'pull_request' && github.event.action == 'opened') ||
|
|
172
|
+
(github.event_name == 'issue_comment' && github.event.issue.pull_request && contains(github.event.comment.body, '@claude'))
|
|
173
|
+
runs-on: ubuntu-latest
|
|
174
|
+
timeout-minutes: 30
|
|
175
|
+
permissions:
|
|
176
|
+
contents: write
|
|
177
|
+
pull-requests: write
|
|
178
|
+
issues: write
|
|
179
|
+
id-token: write
|
|
180
|
+
actions: read # Required for Claude to read CI results on PRs
|
|
181
|
+
|
|
182
|
+
steps:
|
|
183
|
+
- name: Checkout repository
|
|
184
|
+
uses: actions/checkout@v4
|
|
185
|
+
with:
|
|
186
|
+
fetch-depth: 0
|
|
187
|
+
|
|
188
|
+
- name: Run Claude Code
|
|
189
|
+
id: claude
|
|
190
|
+
uses: anthropics/claude-code-action@v1
|
|
191
|
+
with:
|
|
192
|
+
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
193
|
+
github_token: ${{ github.token }}
|
|
194
|
+
claude_args: |
|
|
195
|
+
--model claude-opus-4-5
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### 2. `.github/workflows/claude-pr-review.yml` — ✏️ tune the `prompt` focus areas
|
|
199
|
+
|
|
200
|
+
```yaml
|
|
201
|
+
name: Claude Code PR Review
|
|
202
|
+
|
|
203
|
+
# Triggers: new PR opened or @claude mentioned in a PR comment
|
|
204
|
+
on:
|
|
205
|
+
pull_request:
|
|
206
|
+
types: [ opened ]
|
|
207
|
+
issue_comment:
|
|
208
|
+
types: [ created ]
|
|
209
|
+
|
|
210
|
+
# Cancel redundant runs on the same PR
|
|
211
|
+
concurrency:
|
|
212
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.event.issue.number }}
|
|
213
|
+
cancel-in-progress: true
|
|
214
|
+
|
|
215
|
+
jobs:
|
|
216
|
+
claude-pr-review:
|
|
217
|
+
name: Run Claude PR Review
|
|
218
|
+
# Run on new PRs or when @claude is mentioned in a PR comment
|
|
219
|
+
if: |
|
|
220
|
+
(github.event_name == 'pull_request' && github.event.action == 'opened') ||
|
|
221
|
+
(github.event_name == 'issue_comment' && github.event.issue.pull_request && contains(github.event.comment.body, '@claude'))
|
|
222
|
+
runs-on: ubuntu-latest
|
|
223
|
+
timeout-minutes: 30
|
|
224
|
+
permissions:
|
|
225
|
+
contents: read
|
|
226
|
+
pull-requests: write
|
|
227
|
+
id-token: write
|
|
228
|
+
|
|
229
|
+
steps:
|
|
230
|
+
- name: Checkout repository
|
|
231
|
+
uses: actions/checkout@v4
|
|
232
|
+
with:
|
|
233
|
+
fetch-depth: 0
|
|
234
|
+
|
|
235
|
+
- name: PR Review with Progress Tracking
|
|
236
|
+
uses: anthropics/claude-code-action@v1
|
|
237
|
+
with:
|
|
238
|
+
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
239
|
+
github_token: ${{ github.token }}
|
|
240
|
+
|
|
241
|
+
# Enable progress tracking
|
|
242
|
+
track_progress: true
|
|
243
|
+
|
|
244
|
+
# ✏️ UPDATE these focus areas for your project
|
|
245
|
+
prompt: |
|
|
246
|
+
REPO: ${{ github.repository }}
|
|
247
|
+
PR NUMBER: ${{ github.event.pull_request.number }}
|
|
248
|
+
|
|
249
|
+
Perform a comprehensive code review with the following focus areas:
|
|
250
|
+
|
|
251
|
+
1. **Code Quality**
|
|
252
|
+
- Clean code principles and best practices (Single responsibility principle)
|
|
253
|
+
- Code clarity, readability and maintainability
|
|
254
|
+
- Proper error handling and edge cases
|
|
255
|
+
- Check for unnecessary complexity and nesting
|
|
256
|
+
- Check for redundant code and abstractions
|
|
257
|
+
- Ensure consistency with project standards
|
|
258
|
+
- Check for overly compact or clever code
|
|
259
|
+
|
|
260
|
+
2. **Security**
|
|
261
|
+
- Check for potential security vulnerabilities
|
|
262
|
+
- Validate input sanitization
|
|
263
|
+
- Review authentication/authorization logic
|
|
264
|
+
|
|
265
|
+
3. **Performance**
|
|
266
|
+
- Identify potential performance bottlenecks
|
|
267
|
+
- Review database queries for efficiency
|
|
268
|
+
- Check for memory leaks or resource issues
|
|
269
|
+
|
|
270
|
+
4. **Testing**
|
|
271
|
+
- Verify adequate test coverage
|
|
272
|
+
- Review test quality and edge cases
|
|
273
|
+
- Check for missing test scenarios
|
|
274
|
+
- Check for superfluous tests
|
|
275
|
+
|
|
276
|
+
5. **Documentation**
|
|
277
|
+
- Ensure code is properly documented
|
|
278
|
+
- Verify README updates for new features
|
|
279
|
+
- Check API documentation accuracy
|
|
280
|
+
|
|
281
|
+
Provide detailed feedback using inline comments for specific issues.
|
|
282
|
+
Do not include your todo list in the final review.
|
|
283
|
+
Use top-level comments for general observations or praise.
|
|
284
|
+
At the end of the review, add a wit quatrain describing the PR. (Do it only once per PR)
|
|
285
|
+
|
|
286
|
+
# Tools for comprehensive PR review
|
|
287
|
+
claude_args: |
|
|
288
|
+
--allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Read,Glob,Grep,TodoWrite,Task,Skill"
|
|
289
|
+
--model claude-opus-4-5
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### 3. `.github/workflows/copilot-setup-steps.yml` — ✏️ match build/runtime
|
|
293
|
+
|
|
294
|
+
Java/Gradle reference below. For Node/Python/Go, swap the setup step, cache key,
|
|
295
|
+
and the final "Download dependencies" command (`npm ci`, `pip install -r ...`,
|
|
296
|
+
`go mod download`). **Keep the job name `copilot-setup-steps`.**
|
|
297
|
+
|
|
298
|
+
```yaml
|
|
299
|
+
name: "Copilot Setup Steps"
|
|
300
|
+
|
|
301
|
+
# Automatically run the setup steps when they are changed to allow for easy validation, and
|
|
302
|
+
# allow manual testing through the repository's "Actions" tab
|
|
303
|
+
on:
|
|
304
|
+
workflow_dispatch:
|
|
305
|
+
push:
|
|
306
|
+
paths:
|
|
307
|
+
- .github/workflows/copilot-setup-steps.yml
|
|
308
|
+
pull_request:
|
|
309
|
+
paths:
|
|
310
|
+
- .github/workflows/copilot-setup-steps.yml
|
|
311
|
+
|
|
312
|
+
jobs:
|
|
313
|
+
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
|
|
314
|
+
copilot-setup-steps:
|
|
315
|
+
runs-on: ubuntu-latest
|
|
316
|
+
|
|
317
|
+
# Set the permissions to the lowest permissions possible needed for your steps.
|
|
318
|
+
# Copilot will be given its own token for its operations.
|
|
319
|
+
permissions:
|
|
320
|
+
contents: read
|
|
321
|
+
|
|
322
|
+
steps:
|
|
323
|
+
- name: Set up JDK 21 # ✏️ UPDATE: language/version (or use setup-node / setup-python / setup-go)
|
|
324
|
+
uses: actions/setup-java@v4
|
|
325
|
+
with:
|
|
326
|
+
java-version: '21'
|
|
327
|
+
distribution: 'temurin'
|
|
328
|
+
|
|
329
|
+
- name: Checkout
|
|
330
|
+
uses: actions/checkout@v4
|
|
331
|
+
with:
|
|
332
|
+
submodules: recursive # ✏️ REMOVE this + token line if no submodules
|
|
333
|
+
fetch-depth: 0
|
|
334
|
+
token: ${{ secrets.GIT_TOKEN }}
|
|
335
|
+
|
|
336
|
+
- name: Grant execute permission for gradlew
|
|
337
|
+
run: chmod +x gradlew
|
|
338
|
+
|
|
339
|
+
- name: Cache Gradle packages
|
|
340
|
+
uses: actions/cache@v4
|
|
341
|
+
with:
|
|
342
|
+
key: v1-dependencies-${{ hashFiles('build.gradle') }}
|
|
343
|
+
path: |
|
|
344
|
+
~/.gradle/caches
|
|
345
|
+
~/.gradle/wrapper
|
|
346
|
+
|
|
347
|
+
- name: Download dependencies
|
|
348
|
+
run: ./gradlew dependencies # ✏️ UPDATE: npm ci / pip install / go mod download
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### 4. `.github/PULL_REQUEST_TEMPLATE.md` — ✏️ replace the issue-tracker prefix
|
|
352
|
+
|
|
353
|
+
```markdown
|
|
354
|
+
[S4R-1234](https://rezolvetech.atlassian.net/browse/S4R-1234)
|
|
355
|
+
<!-- ✏️ UPDATE: replace S4R with your Jira/issue project prefix and the base URL -->
|
|
356
|
+
|
|
357
|
+
## Description
|
|
358
|
+
|
|
359
|
+
A high-level description of what is changed by this PR.
|
|
360
|
+
|
|
361
|
+
## Checks
|
|
362
|
+
|
|
363
|
+
- [ ] Unit Tests
|
|
364
|
+
- [ ] Update 'vault' variables
|
|
365
|
+
- [ ] Feature flag added / updated / removed
|
|
366
|
+
- [ ] Update documentation (diagram, confluence pages, content inside "/docs" directory, swagger)
|
|
367
|
+
|
|
368
|
+
## AI Development Checklist
|
|
369
|
+
|
|
370
|
+
- [ ] Spec/requirement linked: <!-- link here -->
|
|
371
|
+
- [ ] AI tool used: <!-- Copilot / @claude / Agent / Other -->
|
|
372
|
+
- [ ] Tests generated/refined with AI
|
|
373
|
+
- [ ] AI review pass completed
|
|
374
|
+
- [ ] Repo context files are still accurate (update if not)
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### 5. `.gitignore` — append (skip any line already present)
|
|
378
|
+
|
|
379
|
+
```gitignore
|
|
380
|
+
# AI docs
|
|
381
|
+
/.claude/
|
|
382
|
+
/.serena/
|
|
383
|
+
/docs/archive/
|
|
384
|
+
/docs/prompts/
|
|
385
|
+
/docs/review/
|
|
386
|
+
/docs/templates/
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### 6. `docs/source-control.md` — copy verbatim (universal)
|
|
390
|
+
|
|
391
|
+
```markdown
|
|
392
|
+
# Source Control
|
|
393
|
+
|
|
394
|
+
## Branches
|
|
395
|
+
- Branch names must start with the Jira ticket number followed by a short description in kebab-case.
|
|
396
|
+
- Prefixes: `feature/`, `bugfix/`, `hotfix/`, `chore/`
|
|
397
|
+
- Example: `feature/S4R-1234-add-search-caching`
|
|
398
|
+
- `main` is the protected default branch; direct pushes are not allowed.
|
|
399
|
+
|
|
400
|
+
## Commits
|
|
401
|
+
- Messages must start with the Jira ticket number: `S4R-1234: add search result caching`
|
|
402
|
+
- Write in **imperative mood** and **lowercase** after the ticket prefix.
|
|
403
|
+
- Explain *what* and *why*, not *how*.
|
|
404
|
+
|
|
405
|
+
## Pull Requests
|
|
406
|
+
- PR title: `S4R-1234: Add result caching for autocomplete`
|
|
407
|
+
- Fill in PR description using the PR template — all checklist items must be reviewed.
|
|
408
|
+
- PRs must be reviewed and approved before merging.
|
|
409
|
+
- Use **Squash and Merge** to keep `main` history clean.
|
|
410
|
+
- Delete the source branch after merging.
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### 7. `docs/project-rule.md` — ✏️ tune the tech-specific lines
|
|
414
|
+
|
|
415
|
+
```markdown
|
|
416
|
+
- Do not look at Linter errors until the user explicitly asks.
|
|
417
|
+
- Do not reformat existing code or imports unrelated to implementation changes.
|
|
418
|
+
- Use `var` for new variables' declaration with new operator. <!-- ✏️ language-specific -->
|
|
419
|
+
- Use the same naming and style patterns as in the existing code.
|
|
420
|
+
- Use Java 21 with preview features for all new code. <!-- ✏️ UPDATE language/version -->
|
|
421
|
+
- <Framework> is used as the framework. Check official docs for actual APIs. <!-- ✏️ UPDATE -->
|
|
422
|
+
- Ensure app build and tests pass before committing any changes.
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
### 8. `CLAUDE.md` — thin index, fully project-specific
|
|
426
|
+
|
|
427
|
+
```markdown
|
|
428
|
+
# CLAUDE.md
|
|
429
|
+
|
|
430
|
+
## Project Overview
|
|
431
|
+
<2-3 sentences: what the service does, framework, main purpose>
|
|
432
|
+
|
|
433
|
+
## Project Guidelines
|
|
434
|
+
- Coding standards: @docs/project-rule.md
|
|
435
|
+
- Project structure: @docs/project-structure.md
|
|
436
|
+
- Source control: @docs/source-control.md
|
|
437
|
+
- <service name> specifics: @docs/<service-name>.md
|
|
438
|
+
- Configuration reference: @docs/configuration-reference.md
|
|
439
|
+
- API reference: @docs/api-reference.md
|
|
440
|
+
|
|
441
|
+
## Tech Stack
|
|
442
|
+
<table: Framework, Language, Build, Databases, Cache, Messaging, Testing, Monitoring>
|
|
443
|
+
|
|
444
|
+
## Essential Commands
|
|
445
|
+
<Local Development, Build & Test, Docker — real, verified commands only>
|
|
446
|
+
|
|
447
|
+
## Architecture
|
|
448
|
+
<Package structure table, request flow, key patterns>
|
|
449
|
+
|
|
450
|
+
## Critical Logic
|
|
451
|
+
<the most important business logic / algorithm>
|
|
452
|
+
|
|
453
|
+
## Development Guidelines
|
|
454
|
+
<code style, how to add a feature step-by-step, testing approach>
|
|
455
|
+
|
|
456
|
+
## Important Files
|
|
457
|
+
<table: file → purpose>
|
|
458
|
+
|
|
459
|
+
## Local Development Notes
|
|
460
|
+
<prerequisites, credentials (user-home only), environment variables>
|
|
461
|
+
|
|
462
|
+
## Common Issues
|
|
463
|
+
<table: issue → solution>
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
### 9. `.github/copilot-instructions.md` — mirrors `CLAUDE.md` for Copilot
|
|
467
|
+
|
|
468
|
+
Required sections:
|
|
469
|
+
|
|
470
|
+
1. **Title** — `# AI Coding Agent Instructions for <Project Name>`
|
|
471
|
+
2. **Build, Test, and Development Commands** — all real build-tool commands.
|
|
472
|
+
3. **High-Level Architecture** — core components, integration points, design decisions.
|
|
473
|
+
4. **Development Guidelines** — code style, framework patterns, testing, how to add a service.
|
|
474
|
+
5. **Project Guidelines** — links to `/docs/*.md`.
|
|
475
|
+
6. **Claude Code PR Reviewer Setup** — GitHub config, what Claude reviews, how to disable.
|