Skip to content

docs: realign CI review loop to actual fork integrations#12

Merged
JasonWildMe merged 2 commits intowildlife-reidfrom
docs/ci-review-loop-realign
Apr 25, 2026
Merged

docs: realign CI review loop to actual fork integrations#12
JasonWildMe merged 2 commits intowildlife-reidfrom
docs/ci-review-loop-realign

Conversation

@JasonWildMe
Copy link
Copy Markdown

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:

  • GitHub Actions CI (typecheck/test/lint/android-build) — merge-blocking
  • Gemini Code Assist — installed today as the auto-review bot
  • Codex 5.5 — on-demand second-opinion review tool, not part of the routine loop
  • Human review — final gate

Also re-orders the push workflow so CI is awaited before reading Gemini comments, since Gemini posts independently of CI.

Type of Change

  • Chore (build process, CI, dependency updates, etc.) — docs only

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

  • Renders correctly in the GitHub UI
  • Pre-commit hook is a no-op for docs-only changes (no JS/Swift/Kotlin staged)
  • Gemini auto-review fires on this PR (verifies installation end-to-end)

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>
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread CLAUDE.md Outdated
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.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

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.

Suggested change
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.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 5819fc1 — replaced <pr> with {number} and added the no-arg variant for clarity. Thanks.

Comment thread CLAUDE.md Outdated
| `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.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There is a discrepancy between the CI jobs described in the table and the suggested local "mirror" command.

  1. The CI test job (line 44) is described as running only Jest, but npm test (as defined in package.json) also executes Android and iOS native tests, which significantly increases local execution time.
  2. The android-build job (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.

Suggested change
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.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
@JasonWildMe
Copy link
Copy Markdown
Author

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread CLAUDE.md
codex exec -s read-only --skip-git-repo-check "<scoped review prompt>"
```

File substantive findings to `kb/wildlife-reid-mobile/outputs/reports/`.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

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.

Suggested change
File substantive findings to `kb/wildlife-reid-mobile/outputs/reports/`.
File substantive findings to kb/offgrid-mobile/outputs/reports/.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@JasonWildMe JasonWildMe merged commit d0a6f0f into wildlife-reid Apr 25, 2026
4 checks passed
@JasonWildMe JasonWildMe deleted the docs/ci-review-loop-realign branch April 25, 2026 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant