Skip to content

docs: track CLAUDE.md and update it for the Go legacy backend#5107

Open
mlehotskylf wants to merge 1 commit into
devfrom
docs/update-claude-md-backend-layout
Open

docs: track CLAUDE.md and update it for the Go legacy backend#5107
mlehotskylf wants to merge 1 commit into
devfrom
docs/update-claude-md-backend-layout

Conversation

@mlehotskylf

Copy link
Copy Markdown
Collaborator

Summary

  • Un-ignores CLAUDE.md (it was added to .gitignore in 9b338dc) so the Claude Code repo guidance is shared and versioned.
  • Corrects stale content: the Python /v1//v2 backend has been removed (5d87c67); those endpoints are now served by the Go cla-backend-legacy module, built as bin/legacy-api-lambda and deployed via the cla-backend Serverless stack on the original api.* domains.
  • Repository layout section now describes cla-backend/ as the deployment stack (Go binaries only: v3 API, dynamo-events, metrics, zipbuilder, gitlab-repository-check, user-subscribe, legacy API, authorizer) and cla-backend-legacy/ as the Go legacy API module with its parity tooling.
  • Replaces the obsolete "Python Backend" section (Python 3.11 / yarn serve:dev) with legacy-Go build/run instructions (make lambdas, STAGE=dev ADDR=":5000" make run-local, Cypress helpers on :5000).
  • Updates the CI section accordingly and adds the standard CC-BY-4.0 doc header.

Note for reviewers

Tracking CLAUDE.md reverses the earlier decision to gitignore it. Anyone keeping a private local CLAUDE.md will need to move it aside before pulling this change (git will refuse to overwrite the untracked file). If the original intent was per-developer private guidance, please say so and this PR can be closed in favor of keeping it local-only.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings July 11, 2026 15:08
@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0c8ba179-4985-460a-9bb4-91dd426ef144

📥 Commits

Reviewing files that changed from the base of the PR and between 070e2ba and 93c243b.

📒 Files selected for processing (2)
  • .gitignore
  • CLAUDE.md
💤 Files with no reviewable changes (1)
  • .gitignore

Walkthrough

Adds a repository guide covering architecture, workflows, development environments, contribution conventions, and CI references. Removes the .gitignore rule that excluded CLAUDE.md.

Changes

Repository guidance

Layer / File(s) Summary
Repository guide and tracking
CLAUDE.md, .gitignore
Adds repository onboarding and workflow guidance, and removes the ignore rule for CLAUDE.md.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: tracking CLAUDE.md and updating it for the Go legacy backend.
Description check ✅ Passed The description directly matches the changeset, covering the CLAUDE.md tracking and the legacy Go backend documentation updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/update-claude-md-backend-layout

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Tracks shared repository guidance and updates it for the Go legacy backend.

Changes:

  • Adds current backend architecture and development instructions.
  • Stops ignoring CLAUDE.md.
  • Documents CI, deployment, and licensing conventions.

Reviewed changes

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

File Description
CLAUDE.md Adds versioned repository guidance.
.gitignore Allows CLAUDE.md to be tracked.

Comment thread CLAUDE.md
## Repository Layout

- `cla-backend-go/` — **primary backend**, Go. Powers `/v3` (EasyCLA v1, us-east-1) and `/v4` (EasyCLA v2, us-east-2, integrates with LFX Platform + Salesforce). Deployed as AWS Lambdas.
- `cla-backend/` — Serverless Framework **deployment stack** (us-east-1). No application code of its own (the Python backend has been removed): it deploys Go binaries built elsewhere — the `/v3` API and worker lambdas (dynamo-events, metrics, zipbuilder, gitlab-repository-check, user-subscribe) from `cla-backend-go/`, the `/v1`/`/v2` `legacy-api-lambda` from `cla-backend-legacy/`, and the API Gateway authorizer from `cla-backend/auth/`.
Comment thread CLAUDE.md

### Module architecture pattern

Feature modules (e.g. `signatures/`, `approval_list/`, `company/`, `project/`, and everything under `v2/`) follow a consistent three-layer split:
Comment thread CLAUDE.md

## Conventions

- **License headers are enforced in CI.** New code files need `// SPDX-License-Identifier: MIT`; docs need `SPDX-License-Identifier: CC-BY-4.0`. `make lint` runs `check-headers.sh`.

@coderabbitai coderabbitai 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.

🧹 Nitpick comments (1)
CLAUDE.md (1)

95-97: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Make the Speckit plan reference actionable.

“Read the current plan” does not identify a file, command, or link. Document where contributors should find it, or confirm that external tooling resolves this marker before publication.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CLAUDE.md` around lines 95 - 97, Update the Speckit guidance surrounding the
“SPECKIT END” marker to make the plan reference actionable: identify the plan’s
file or location, provide the command or link contributors should use, or
explicitly confirm that external tooling resolves the marker before publication.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@CLAUDE.md`:
- Around line 95-97: Update the Speckit guidance surrounding the “SPECKIT END”
marker to make the plan reference actionable: identify the plan’s file or
location, provide the command or link contributors should use, or explicitly
confirm that external tooling resolves the marker before publication.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 840ba0d1-38c1-4e92-8bc4-1d8983b44a5c

📥 Commits

Reviewing files that changed from the base of the PR and between 16491c4 and 070e2ba.

📒 Files selected for processing (2)
  • .gitignore
  • CLAUDE.md
💤 Files with no reviewable changes (1)
  • .gitignore

Un-ignore CLAUDE.md (was added to .gitignore in 9b338dc) so the
repo guidance is shared, and correct its stale content: the Python
v1/v2 backend was removed and /v1,/v2 are now served by the Go
cla-backend-legacy module deployed via the cla-backend Serverless
stack. Update the repository layout, replace the Python backend
section with legacy Go build/run instructions, and fix the CI notes.

Note for reviewers: anyone keeping a private local CLAUDE.md must
move it aside before pulling this change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Michal Lehotsky <mlehotsky@linuxfoundation.org>
@mlehotskylf mlehotskylf force-pushed the docs/update-claude-md-backend-layout branch from 070e2ba to 93c243b Compare July 11, 2026 15:15
Copilot AI review requested due to automatic review settings July 11, 2026 15:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

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

Comment thread CLAUDE.md
## Repository Layout

- `cla-backend-go/` — **primary backend**, Go. Powers `/v3` (EasyCLA v1, us-east-1) and `/v4` (EasyCLA v2, us-east-2, integrates with LFX Platform + Salesforce). Deployed as AWS Lambdas.
- `cla-backend/` — Serverless Framework **deployment stack** (us-east-1). No application code of its own (the Python backend has been removed): it deploys Go binaries built elsewhere — the `/v3` API and worker lambdas (dynamo-events, metrics, zipbuilder, gitlab-repository-check, user-subscribe) from `cla-backend-go/`, the `/v1`/`/v2` `legacy-api-lambda` from `cla-backend-legacy/`, and the API Gateway authorizer from `cla-backend/auth/`.
Comment thread CLAUDE.md
Comment on lines +50 to +55
Feature modules (e.g. `signatures/`, `approval_list/`, `company/`, `project/`, and everything under `v2/`) follow a consistent three-layer split:

- `handlers.go` — a `Configure(api, service, ...)` function that wires generated swagger operations to service calls. Handlers do request/response translation only.
- `service.go` — business logic, defined behind an interface; the unit-testable layer.
- `repository.go` — DynamoDB access. `dbmodels.go` holds table row structs; `converters.go` maps between DB models, generated API models, and internal models.
- `mocks/` — generated mocks (regenerate with `make mock`, don't edit by hand).
Comment thread CLAUDE.md

Health check: `http://localhost:5000/v2/health` (response includes `X-EasyCLA-Backend: cla-backend-legacy`). Port 5000 matches the Cypress functional-test helpers (`tests/functional/utils/run-single-test-local.sh` with `V=1`/`V=2`).

Deployment: the built binary is copied into `cla-backend/bin/` and deployed from the `cla-backend` Serverless stack (`yarn deploy:<stage>` from `cla-backend/`).
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.

2 participants