Skip to content

feat: implement issue #258 — Compliance: copilot-instructions-missing-local-dev-commands - #272

Closed
don-petry wants to merge 4 commits into
mainfrom
dev-lead/issue-258-20260526-1710
Closed

feat: implement issue #258 — Compliance: copilot-instructions-missing-local-dev-commands#272
don-petry wants to merge 4 commits into
mainfrom
dev-lead/issue-258-20260526-1710

Conversation

@don-petry

Copy link
Copy Markdown
Contributor

Closes #258

Implemented by dev-lead agent. Please review.

@don-petry
don-petry requested a review from a team as a code owner May 26, 2026 17:12
Copilot AI review requested due to automatic review settings May 26, 2026 17:12
@coderabbitai

coderabbitai Bot commented May 26, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@don-petry, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 59 minutes and 46 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f3c4c6be-6384-4fb2-80a9-70d6fcbf044c

📥 Commits

Reviewing files that changed from the base of the PR and between 61aa4ee and df0e785.

📒 Files selected for processing (4)
  • .github/copilot-instructions.md
  • .gitignore
  • apps/api/.env.example
  • apps/mobile/.env.example
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev-lead/issue-258-20260526-1710

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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

Copy link
Copy Markdown

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 introduces a comprehensive .github/copilot-instructions.md file outlining the Broodly project's tech stack, structure, local development commands, environment variables, testing framework, and repo-specific overrides. It also modifies .gitignore by adding another duplicate .dev-lead/ entry. The feedback suggests cleaning up these redundant entries in .gitignore.

Comment thread .gitignore Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 384878e121

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/copilot-instructions.md Outdated
pnpm format:check # Prettier check (CI-safe, no writes)

# --- Code generation ---
cd apps/api && go generate ./... # Regenerate gqlgen resolvers and sqlc queries

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Run codegen from the API directory already entered

The command block already changes into apps/api on line 67, so running line 80 in the same shell (cd apps/api && go generate ./...) tries to enter apps/api/apps/api, which does not exist and prevents code generation from running. This breaks the documented workflow for anyone executing the commands top-to-bottom.

Useful? React with 👍 / 👎.

Comment thread .github/copilot-instructions.md Outdated

## Required Environment Variables

See `apps/mobile/.env.example` and `apps/api/.env.example` for full lists. Key variables:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Reference environment-variable source files that exist

This points contributors to apps/mobile/.env.example and apps/api/.env.example, but those files are not present in the repository, so the instructions send users to missing paths when they try to discover required variables. That makes initial local setup and troubleshooting materially harder.

Useful? React with 👍 / 👎.

Comment thread .github/copilot-instructions.md Outdated
| Server State | TanStack React Query (persistent cache) |
| UI State | Zustand |
| GraphQL Client | urql or Apollo Client |
| Backend | Go 1.24 (chi + gqlgen) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Document the enforced Go toolchain version

This advertises the backend as Go 1.24, but apps/api/go.mod enforces toolchain go1.26.2 for required security fixes, so developers following this table may provision the wrong version and hit avoidable setup failures (especially where automatic toolchain download is restricted). The instructions should reflect the actual required toolchain.

Useful? React with 👍 / 👎.

Comment thread .github/copilot-instructions.md Outdated
pnpm format:check # Prettier check (CI-safe, no writes)

# --- Code generation ---
cd apps/api && go generate ./... # Regenerate gqlgen resolvers and sqlc queries

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Use a real codegen command instead of go generate

The comment says this regenerates gqlgen and sqlc outputs, but the repository currently has no //go:generate directives under apps/api, so go generate ./... is a no-op and does not perform the documented regeneration step. This makes the local dev guidance incorrect for codegen maintenance.

Useful? React with 👍 / 👎.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds a .github/copilot-instructions.md to satisfy the org copilot-instructions-missing-local-dev-commands compliance check (#258), giving Copilot a project overview, tech stack, structure, local dev commands, env vars, testing notes, and repo-specific overrides. Also appends another .dev-lead/ entry to .gitignore.

Changes:

  • New .github/copilot-instructions.md with the required ## Local Dev Commands section and surrounding context.
  • Adds a duplicate .dev-lead/ line to .gitignore.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated 5 comments.

File Description
.github/copilot-instructions.md New always-on Copilot instructions covering stack, structure, local dev commands, env vars, testing, and overrides.
.gitignore Appends another .dev-lead/ entry on top of existing duplicates.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +30 to +50
```
broodly/
├── apps/
│ ├── mobile/ # Expo app — screens in app/, features in src/features/
│ └── api/ # Go GraphQL API — domain/, service/, repository/ under internal/
├── packages/
│ ├── ui/ # Shared Gluestack-based component library
│ ├── graphql-types/ # Generated TypeScript types (never hand-write these)
│ ├── domain-types/ # Shared constants and domain types
│ ├── config/ # Shared configuration
│ └── test-utils/ # Shared testing utilities
├── infra/terraform/ # GCP infrastructure as code
├── tests/ # Integration and e2e tests
└── docs/ # ADRs, architecture docs, runbooks
```

Key conventions:
- Shared UI components → `packages/ui/src/`, exported from `packages/ui/src/index.ts`
- Feature components → `apps/mobile/src/features/<feature>/components/`
- Screen files → `apps/mobile/app/` (Expo Router file-based routing)
- Package boundaries are hard: `packages/ui` must not import from `apps/mobile`
Comment thread .github/copilot-instructions.md Outdated
| Server State | TanStack React Query (persistent cache) |
| UI State | Zustand |
| GraphQL Client | urql or Apollo Client |
| Backend | Go 1.24 (chi + gqlgen) |
Comment thread .github/copilot-instructions.md Outdated

## Required Environment Variables

See `apps/mobile/.env.example` and `apps/api/.env.example` for full lists. Key variables:
Comment thread .github/copilot-instructions.md Outdated
pnpm format:check # Prettier check (CI-safe, no writes)

# --- Code generation ---
cd apps/api && go generate ./... # Regenerate gqlgen resolvers and sqlc queries
Comment thread .github/copilot-instructions.md Outdated

- **Mobile / packages:** Jest with `@testing-library/react-native`. Tests co-located as `ComponentName/ComponentName.test.tsx`. Run with `pnpm --filter mobile test`.
- **API:** Standard `go test ./...`. Integration tests require a running PostgreSQL instance; see `docs/runbooks/` for local DB setup.
- **E2E:** Maestro flows in `tests/e2e/` (run in CI only).

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b8d4d55a5f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/copilot-instructions.md Outdated
cd apps/api
go run cmd/server/main.go # Start API server
go test ./... # Run all Go tests
go vet ./... # Go static analysis

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Document the CI Go lint command

This API section only tells developers to run go vet, but .github/workflows/ci.yml also runs golangci/golangci-lint-action in apps/api pinned to v2.11.4. For changes that trigger golangci-lint rules beyond vet, contributors can pass every documented local API check and still fail CI, so add the matching local golangci-lint run ./... command/version here.

Useful? React with 👍 / 👎.

go vet ./... # Go static analysis

# --- Monorepo-wide ---
pnpm test # Run all JS/TS tests across all packages

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Run workspace scripts from the repo root

When this fenced block is followed top-to-bottom, line 67 leaves the shell in apps/api, but these pnpm commands are root package scripts from /workspace/broodly/package.json; apps/api has no package manifest or JS/TS scripts. Since pnpm run runs scripts from a package manifest (https://pnpm.io/cli/run), users copying the documented flow can run the monorepo checks from the wrong directory instead of exercising the workspace; add a cd ../.. or use pnpm -C ../.. ... before this section.

Useful? React with 👍 / 👎.

Comment thread .github/copilot-instructions.md Outdated

- **Mobile / packages:** Jest with `@testing-library/react-native`. Tests co-located as `ComponentName/ComponentName.test.tsx`. Run with `pnpm --filter mobile test`.
- **API:** Standard `go test ./...`. Integration tests require a running PostgreSQL instance; see `docs/runbooks/` for local DB setup.
- **E2E:** Maestro flows in `tests/e2e/` (run in CI only).

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Don't claim E2E runs in CI yet

This says Maestro E2E flows under tests/e2e/ run in CI, but I checked .github/workflows/ci.yml and it only has the TypeScript and Go jobs, while tests/e2e/ contains only .gitkeep and there is no Maestro command in the repo. Contributors relying on these instructions will assume E2E coverage is enforced when it currently is not, so either add the CI job/flows or soften this to planned guidance.

Useful? React with 👍 / 👎.

Comment thread .github/copilot-instructions.md Outdated
# --- API server (Go) ---
cd apps/api
go run cmd/server/main.go # Start API server
go test ./... # Run all Go tests

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Include the race-enabled API test command

The documented API test command omits the flags used by CI: .github/workflows/ci.yml runs go test ./... -race -coverprofile=coverage.out from apps/api. For code that passes normal tests but introduces a data race, contributors following these local instructions will miss the failure until CI, so document the CI-equivalent command alongside the quick go test command.

Useful? React with 👍 / 👎.

Comment thread .github/copilot-instructions.md Outdated
## Testing Framework

- **Mobile / packages:** Jest with `@testing-library/react-native`. Tests co-located as `ComponentName/ComponentName.test.tsx`. Run with `pnpm --filter mobile test`.
- **API:** Standard `go test ./...`. Integration tests require a running PostgreSQL instance; see `docs/runbooks/` for local DB setup.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Point DB setup guidance to an actual runbook

This tells developers to see docs/runbooks/ for local PostgreSQL setup before running integration tests, but that directory only contains .gitkeep and no setup instructions. Anyone with DB-dependent tests is left without the referenced prerequisite steps, so add the runbook or remove this pointer until it exists.

Useful? React with 👍 / 👎.

@don-petry

Copy link
Copy Markdown
Contributor Author

Dev-Lead — fix-bot-comment (applied)

Changes committed and pushed.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 05a37f1448

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


# --- Code generation (run from apps/api) ---
cd apps/api
go run github.com/99designs/gqlgen generate # Regenerate gqlgen resolvers

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Make the gqlgen command runnable

When contributors follow this new codegen step from apps/api, this go run is resolved in the current module because it has no @version suffix (checked go help run), but apps/api/go.mod/go.sum do not require github.com/99designs/gqlgen (rg 99designs apps/api/go.mod apps/api/go.sum returns no matches). In a normal module-aware Go setup this fails with “no required module provides package” instead of regenerating resolvers, so either add a tracked tool dependency or use a versioned command such as .../gqlgen@<version>.

Useful? React with 👍 / 👎.

Comment thread apps/mobile/.env.example
@@ -0,0 +1,2 @@
EXPO_PUBLIC_API_URL=http://localhost:8080/graphql
FIREBASE_PROJECT_ID=your-firebase-project-id

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Prefix the mobile Firebase env var

For mobile code that reads the Firebase project ID in the Expo JavaScript bundle, copying this example leaves the value unavailable: Expo only inlines .env variables with the EXPO_PUBLIC_ prefix into client code (see Expo environment variable docs: https://docs.expo.dev/guides/environment-variables/). Since the new instructions mark this variable as used by mobile + api, the mobile example should expose a public, non-secret name such as EXPO_PUBLIC_FIREBASE_PROJECT_ID rather than FIREBASE_PROJECT_ID.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: df0e7859e5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

# --- Code generation (run from apps/api) ---
cd apps/api
go run github.com/99designs/gqlgen generate # Regenerate gqlgen resolvers
sqlc generate # Regenerate sqlc queries

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Make the sqlc generation command runnable

This newly documented sqlc generate step is not runnable in the current API tree: apps/api/sqlc.yaml points at internal/repository/queries/ and migrations/, but I checked the tracked files under apps/api and neither input directory exists. Contributors who follow the local-dev commands will hit a sqlc input-path error instead of regenerating code, so either add the expected inputs/placeholders or mark this as a planned command until the repository contains them.

Useful? React with 👍 / 👎.

@sonarqubecloud

sonarqubecloud Bot commented Jun 1, 2026

Copy link
Copy Markdown

@don-petry

Copy link
Copy Markdown
Contributor Author

Closing due to merge conflict that cannot be auto-rebased. Re-implementing from fresh main via dev-lead.

@don-petry don-petry closed this Jun 2, 2026
auto-merge was automatically disabled June 2, 2026 12:23

Pull request was closed

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.

Compliance: copilot-instructions-missing-local-dev-commands

3 participants