Files
twenty/.gitignore
T
Félix Malfait 880e7144ec Disable Claude Code attribution on commits and PRs (#21798)
## What

Adds a committed `.claude/settings.json` that turns off Claude Code's
git attribution:

```json
{ "attribution": { "commit": "", "pr": "" } }
```

- `commit: ""` removes the `Co-Authored-By: Claude` trailer from commit
messages.
- `pr: ""` removes the "Generated with Claude Code" text from PR
descriptions.

Also narrows the `.gitignore` rule from `.claude/` to `.claude/*` +
`!.claude/settings.json`, so this one shared config is tracked while
personal `.claude/` files (plans, `settings.local.json`, etc.) stay
ignored. Includes the schemastore `$schema` for editor
autocomplete/validation.

## Why

Cloud (Claude Code on the web) sessions clone the repo fresh and read
**committed** repo config, but do **not** read a developer's local
`~/.claude/settings.json`. Setting attribution only at the user level
(the usual advice) therefore has no effect on cloud-created commits/PRs.
Committing it to the repo is what applies to every future cloud session
— and to all contributors using Claude Code on this repo.

## Scope

This is repo-wide: it affects every contributor using Claude Code on
`twenty`, not just one person. Easy to scope down later via
`.claude/settings.local.json` if anyone wants attribution back locally.

## Follow-up / verification

Per the docs, `attribution.commit: ""` hides commit text "including any
trailers", so it should also suppress the cloud-only `Claude-Session:`
trailer and the PR session-URL line — but that cloud trailer is
undocumented, so it will be confirmed on the first cloud PR opened from
a session based on `main` after this merges. If it survives, a one-line
guard in `CLAUDE.md` (also loaded in cloud) is the fallback.

---
_Generated by [Claude
Code](https://claude.ai/code/session_01PipZFnzew1VuU48kiHm35R)_

<!-- This is an auto-generated description by cubic. -->
<a
href="https://cubic.dev/pr/twentyhq/twenty/pull/21798?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>
<!-- End of auto-generated description by cubic. -->
2026-06-18 17:46:31 +02:00

63 lines
795 B
Plaintext

**/**/.env
.DS_Store
/.idea
.claude/*
!.claude/settings.json
.cursor/debug-*.log
**/**/node_modules/
.cache
# yarn is the recommended package manager across the project
**/**/.package-lock.json
.nx/installation
.nx/cache
.nx/workspace-data
.nx/nxw.js
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.vercel
.swc
**/**/logs/**
coverage
dist
storybook-static
*.tsbuildinfo
.oxlintcache
.nyc_output
test-results/
dump.rdb
.tinyb
.notes
/data/
/.devenv/
/.direnv/
/.pre-commit-config.yaml
/.envrc
/devenv.nix
/flake.lock
/flake.nix
.crowdin.yml
.react-email/
mcp.json
/.junie/
/.agents/plugins/marketplace.json
TRANSLATION_QA_REPORT.md
.playwright-mcp/
.playwright-cli/
output/playwright/
screenshots/
!**/public/screenshots/
!**/assets/screenshots/