docs: realign CI review loop to actual fork integrations#12
docs: realign CI review loop to actual fork integrations#12JasonWildMe merged 2 commits intowildlife-reidfrom
Conversation
Drop Codecov / SonarCloud from the CLAUDE.md review loop — neither is installed on the WildMeOrg fork (the original CI Review Loop section inherited them aspirationally from upstream). Document what's actually in place now: - GitHub Actions CI (typecheck / test / lint / android-build) as the merge-blocking gate - Gemini Code Assist (installed today) as the auto-review bot, with /gemini review for re-triggering - Codex 5.5 as an on-demand second-opinion review tool, not part of the routine PR loop - Human review as the final gate Also update the push workflow to wait on GitHub Actions first before pulling Gemini comments, since Gemini posts independently of CI. Note that Codecov/SonarCloud can be reinstated later if needed; CodeQL is the lighter-weight free SAST alternative. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request updates the development workflow in CLAUDE.md, shifting the focus to verifying GitHub Actions CI status before addressing automated review comments. It introduces detailed sections for CI jobs, Gemini Code Assist, and Codex 5.5, while clarifying that Codecov and SonarCloud are currently inactive. Feedback was provided to ensure consistency in command-line placeholders and to more accurately align local testing commands with the actual CI pipeline.
| 5. Address every review comment — fix the code, re-run the quality gates (tests, lint, tsc). Resolve the comment appropriately and post that on the PR directly. | ||
| 6. Push the fixes | ||
| 7. Report what was changed in response to the review | ||
| 3. Wait for GitHub Actions CI to start. Poll with `gh pr checks <pr>` until all four jobs (`typecheck`, `test`, `lint`, `android-build`) report a status. If any fail, fix and re-push before reading reviewer comments. |
There was a problem hiding this comment.
The placeholder <pr> is inconsistent with the {number} placeholder used in subsequent steps (lines 27 and 56). For consistency and to ensure automated tools like Claude Code can correctly identify the variable, it is better to use {number} throughout. Additionally, gh pr checks typically works without arguments for the current branch's PR, which might be simpler for the user.
| 3. Wait for GitHub Actions CI to start. Poll with `gh pr checks <pr>` until all four jobs (`typecheck`, `test`, `lint`, `android-build`) report a status. If any fail, fix and re-push before reading reviewer comments. | |
| 3. Wait for GitHub Actions CI to start. Poll with gh pr checks {number} until all four jobs (typecheck, test, lint, android-build) report a status. If any fail, fix and re-push before reading reviewer comments. |
There was a problem hiding this comment.
Fixed in 5819fc1 — replaced <pr> with {number} and added the no-arg variant for clarity. Thanks.
| | `lint` | ESLint + `gradlew :app:lintDebug` + SwiftLint | | ||
| | `android-build` | Full debug Gradle build | | ||
|
|
||
| If any job fails, fix locally (re-run `npx tsc --noEmit && npm test && npm run lint` to mirror CI), push, and wait for the next run. |
There was a problem hiding this comment.
There is a discrepancy between the CI jobs described in the table and the suggested local "mirror" command.
- The CI
testjob (line 44) is described as running only Jest, butnpm test(as defined inpackage.json) also executes Android and iOS native tests, which significantly increases local execution time. - The
android-buildjob (line 46) is not covered by the suggested local commands.
To accurately mirror the CI process and save time locally, consider suggesting npx jest for the test portion.
| If any job fails, fix locally (re-run `npx tsc --noEmit && npm test && npm run lint` to mirror CI), push, and wait for the next run. | |
| If any job fails, fix locally (re-run npx tsc --noEmit && npx jest --coverage --forceExit && npm run lint to mirror CI), push, and wait for the next run. |
There was a problem hiding this comment.
Fixed in 5819fc1 — replaced the single mirror-command line with a per-job table. test now uses npx jest --coverage --forceExit (the JS-only path) since the npm test script chains Android + iOS via the package.json, which is platform-locked. Also added the android-build local equivalent.
Two medium-priority comments from Gemini:
- Use {number} placeholder consistently in step 3 (was <pr>); also note
that gh pr checks works without args from the PR branch.
- Replace the single 'mirror CI' command with a per-job table — `npm
test` actually chains Android + iOS via package.json, which is slower
than just `npx jest` and platform-locked. Also added android-build's
local equivalent.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request updates the CLAUDE.md documentation to accurately reflect the current CI/CD workflow, detailing specific GitHub Actions jobs, Gemini advisory reviews, and the use of Codex 5.5. It also clarifies the status of third-party tools like Codecov and SonarCloud. A review comment correctly identified an outdated project path in the documentation that needs to be updated to match the current repository name.
| codex exec -s read-only --skip-git-repo-check "<scoped review prompt>" | ||
| ``` | ||
|
|
||
| File substantive findings to `kb/wildlife-reid-mobile/outputs/reports/`. |
There was a problem hiding this comment.
The path kb/wildlife-reid-mobile/outputs/reports/ appears to reference the upstream project name (wildlife-reid-mobile). Since this PR aims to realign the documentation with the current fork (named offgrid-mobile in package.json), this path should be updated to reflect the current project structure to ensure the AI agent can correctly locate the reports directory.
| File substantive findings to `kb/wildlife-reid-mobile/outputs/reports/`. | |
| File substantive findings to kb/offgrid-mobile/outputs/reports/. |
There was a problem hiding this comment.
Rejecting this suggestion. The kb directory kb/wildlife-reid-mobile/ is named for the product domain (wildlife re-identification on mobile), not the fork name. The fork is off-grid-mobile per package.json because we're reusing the upstream's app shell, but the work scoped under kb/wildlife-reid-mobile/ is specifically about the on-device re-ID pivot — its detector models, MiewID v4.1 export, pack format, integration plan, etc.
Also, the directory already exists with substantive content (~20 wiki/raw/output files); renaming would break internal cross-references and stored memory. The pattern-match Gemini did here (fork name in package.json → KB path) doesn't apply to this project's intentional domain-vs-app naming.
Summary
Drop Codecov / SonarCloud from the CLAUDE.md review loop — neither is installed on this fork (the original section inherited them aspirationally from upstream). Document what's actually wired up:
typecheck/test/lint/android-build) — merge-blockingAlso re-orders the push workflow so CI is awaited before reading Gemini comments, since Gemini posts independently of CI.
Type of Change
Why this matters
The previous CLAUDE.md described a 3-reviewer loop (Gemini + Codecov + SonarCloud) that does not actually exist on the fork. Following those instructions verbatim would lead Claude into infinite polling for reviewers that never post. This brings the file in line with reality.
Test plan