@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.
Files changed (43) hide show
  1. package/package.json +1 -1
  2. package/teams/OOF/skills/jira-ticket-creator/README.md +22 -0
  3. package/teams/OOF/skills/jira-ticket-creator/SKILL.md +266 -0
  4. package/teams/fhr-ai-team/github/PULL_REQUEST_TEMPLATE/full.md +31 -0
  5. package/teams/fhr-ai-team/github/PULL_REQUEST_TEMPLATE/light.md +7 -0
  6. package/teams/fhr-ai-team/github/copilot-instructions.md +24 -0
  7. package/teams/fhr-ai-team/github/instructions/python.instructions.md +23 -0
  8. package/teams/fhr-ai-team/github/pull_request_template.md +21 -0
  9. package/teams/fhr-ai-team/prompts/brainstorm.md +7 -0
  10. package/teams/fhr-ai-team/prompts/plan-algo-tests.md +7 -0
  11. package/teams/fhr-ai-team/prompts/plan.md +7 -0
  12. package/teams/fhr-ai-team/prompts/pr-description.md +7 -0
  13. package/teams/fhr-ai-team/prompts/test.md +7 -0
  14. package/teams/fhr-ai-team/resources/AGENTS.md +55 -0
  15. package/teams/fhr-ai-team/resources/CLAUDE.md +52 -0
  16. package/teams/fhr-ai-team/resources/README.md +51 -0
  17. package/teams/fhr-ai-team/resources/claude-code-setup.md +60 -0
  18. package/teams/fhr-ai-team/resources/copilot-setup.md +64 -0
  19. package/teams/fhr-ai-team/resources/onboarding.md +179 -0
  20. package/teams/fhr-ai-team/resources/opencode-install.md +29 -0
  21. package/teams/fhr-ai-team/resources/opencode-setup.md +43 -0
  22. package/teams/fhr-ai-team/skills/algo-test-planning/SKILL.md +192 -0
  23. package/teams/fhr-ai-team/skills/algo-test-planning/references/pipeline-registry.md +280 -0
  24. package/teams/fhr-ai-team/skills/brainstorming/SKILL.md +111 -0
  25. package/teams/fhr-ai-team/skills/e2e-testing/SKILL.md +163 -0
  26. package/teams/fhr-ai-team/skills/grill-me/SKILL.md +10 -0
  27. package/teams/fhr-ai-team/skills/ml-tooling-dev/SKILL.md +313 -0
  28. package/teams/fhr-ai-team/skills/ml-tooling-dev/references/kubectl-debug.md +165 -0
  29. package/teams/fhr-ai-team/skills/ml-tooling-dev/references/mongodb-config.md +218 -0
  30. package/teams/fhr-ai-team/skills/ml-tooling-dev/references/pipeline-configs.md +190 -0
  31. package/teams/fhr-ai-team/skills/ml-tooling-dev/references/pipeline-steps.md +182 -0
  32. package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_logs.py +203 -0
  33. package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_query.py +233 -0
  34. package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/kf_wait.py +195 -0
  35. package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/mlflow_query.py +252 -0
  36. package/teams/fhr-ai-team/skills/ml-tooling-dev/scripts/mongo_predictor.py +352 -0
  37. package/teams/fhr-ai-team/skills/naming-conventions-reviewer/SKILL.md +230 -0
  38. package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/dataset-naming.md +190 -0
  39. package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/domain-vocabulary.md +447 -0
  40. package/teams/fhr-ai-team/skills/naming-conventions-reviewer/references/repo-dependency-graph.md +264 -0
  41. package/teams/fhr-ai-team/skills/planning/SKILL.md +138 -0
  42. package/teams/fhr-ai-team/skills/pr-description/SKILL.md +94 -0
  43. 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.