Skip to content

chore: make AGENTS.md canonical, point CLAUDE.md at it with @AGENTS.md#4142

Merged
carderne merged 1 commit into
mainfrom
chore/claude-md
Jul 3, 2026
Merged

chore: make AGENTS.md canonical, point CLAUDE.md at it with @AGENTS.md#4142
carderne merged 1 commit into
mainfrom
chore/claude-md

Conversation

@carderne

@carderne carderne commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Tested to confirm that Claude Code picks up the @AGENTS.md automatically with no agent turns.

@changeset-bot

changeset-bot Bot commented Jul 3, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: c5e91f4

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@carderne carderne marked this pull request as ready for review July 3, 2026 13:01
@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

This PR restructures repository agent guidance: CLAUDE.md is reduced to a single @AGENTS.md include directive, and AGENTS.md is rewritten with new sections covering build/dev commands, verification rules, testing with testcontainers, coding style/import rules, changesets and dependency pinning, architecture overview, legacy engine boundaries, documentation conventions, Trigger.dev task-writing rules, hello-world reference project testing, a local task testing workflow, and an agentcrumbs instrumentation guide. The claude-md-audit.yml GitHub workflow is renamed to "Agent Instructions Audit," its concurrency group renamed accordingly, and its prompt updated to reflect the new AGENTS.md/CLAUDE.md hierarchy and response wording.

Changes

Cohort / File(s) Summary
Agent instruction restructuringCLAUDE.md Replaced full content with @AGENTS.md include directive
AGENTS.md
.github/workflows/claude-md-audit.yml

Sequence Diagram(s)

Not applicable — this PR consists of documentation and workflow configuration changes only.

Related Issues: Not specified in provided context.

Related PRs: Not specified in provided context.

Suggested labels: documentation, ci

Suggested reviewers: Not specified in provided context.

Poem
A rabbit hopped through docs anew,
Found AGENTS.md, the guidance true.
CLAUDE.md now just points the way,
One line to lead the rest astray—
No, guide them well! The audit's fresh,
Crumbs and tasks in tidy mesh. 🐇📘

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description is far too sparse and misses required template sections like issue linkage, checklist, changelog, and screenshots. Add the template sections: Closes #issue, checklist items, Testing steps, a Changelog summary, and Screenshots or an explicit note if none apply.
✅ Passed checks (4 passed)
Check name Status Explanation
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.
Title check ✅ Passed The title clearly states AGENTS.md is now canonical and CLAUDE.md points to it.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/claude-md

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.

@devin-ai-integration devin-ai-integration Bot 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.

Devin Review found 1 potential issue.

Open in Devin Review

Comment thread AGENTS.md

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

Actionable comments posted: 1

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

45-52: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Keep the testing guidance root-relative and scoped.

cd internal-packages/run-engine contradicts the repo-wide “run commands from root with pnpm run” convention, and “Never mock anything” is too absolute for pure unit tests. Keep the examples rooted at the monorepo root and scope testcontainers guidance to the Redis/PostgreSQL integration cases.

Source: Learnings


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 289110b6-20db-4a7e-9cdd-e3d07d1e9368

📥 Commits

Reviewing files that changed from the base of the PR and between 2ad3944 and c5e91f4.

📒 Files selected for processing (3)
  • .github/workflows/claude-md-audit.yml
  • AGENTS.md
  • CLAUDE.md
📜 Review details
⚠️ CI failures not shown inline (4)

GitHub Actions: 📝 Agent Instructions Audit / audit: chore: make AGENTS.md canonical, point CLAUDE.md at it with @AGENTS.md

Conclusion: failure

View job details

##[group]Run anthropics/claude-code-action@428971d2ecd6e3a7cb0ee0da2a3a8b33fdb3678d
 with:
   anthropic_***REDACTED***
   use_sticky_comment: true
   allowed_bots: devin-ai-integration[bot]
   claude_args: --max-turns 25
--model claude-opus-4-8
--allowedTools "Read,Glob,Grep,Bash(git diff:*)"
   prompt: You are reviewing a PR to check whether any agent instruction files need updating.
In this repo:
- Root shared agent guidance lives in `AGENTS.md`.
- Root `CLAUDE.md` is only a Claude Code adapter that imports `AGENTS.md`.
- Subdirectories may still have scoped `CLAUDE.md` files.
- `.claude/rules/` contains additional Claude Code guidance.
## Your task
1. Run `git diff origin/main...HEAD --name-only` to see which files changed in this PR.
2. For each changed directory, check the applicable instruction files: root `AGENTS.md`, any `CLAUDE.md` in that directory or a parent directory, and relevant `.claude/rules/` files.
3. Determine if any instruction file should be updated based on the changes. Consider:
   - New files/directories that aren't covered by existing documentation
   - Changed architecture or patterns that contradict current agent guidance
   - New dependencies, services, or infrastructure that agents should know about
   - Renamed or moved files that are referenced in an instruction file
   - Changes to build commands, test patterns, or development workflows
## Response format
If NO updates are needed, respond with exactly:
✅ Agent instruction files look current for this PR.
If updates ARE needed, respond with a short list:
📝 **Agent instruction updates suggested:**
- `AGENTS.md`: [what should be added/changed]
- `path/to/CLAUDE.md`: [what should be added/changed]
- `.claude/rules/file.md`: [what should be added/changed]
Keep suggestions specific and brief. Only flag things that would actually mislead agents in future sessions.
Do NOT suggest updates for trivial changes (bug fixes, small refactors within existing patterns).
Do NOT suggest creating new...

GitHub Actions: 📝 Agent Instructions Audit / 0_audit.txt: chore: make AGENTS.md canonical, point CLAUDE.md at it with @AGENTS.md

Conclusion: failure

View job details

gger.dev/yalt@3.0.0-beta.18
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.19 -> `@trigger.dev/yalt`@3.0.0-beta.19
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.2 -> `@trigger.dev/yalt`@3.0.0-beta.2
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.20 -> `@trigger.dev/yalt`@3.0.0-beta.20
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.21 -> `@trigger.dev/yalt`@3.0.0-beta.21
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.22 -> `@trigger.dev/yalt`@3.0.0-beta.22
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.23 -> `@trigger.dev/yalt`@3.0.0-beta.23
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.24 -> `@trigger.dev/yalt`@3.0.0-beta.24
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.25 -> `@trigger.dev/yalt`@3.0.0-beta.25
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.26 -> `@trigger.dev/yalt`@3.0.0-beta.26
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.27 -> `@trigger.dev/yalt`@3.0.0-beta.27
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.28 -> `@trigger.dev/yalt`@3.0.0-beta.28
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.29 -> `@trigger.dev/yalt`@3.0.0-beta.29
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.3 -> `@trigger.dev/yalt`@3.0.0-beta.3
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.30 -> `@trigger.dev/yalt`@3.0.0-beta.30
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.31 -> `@trigger.dev/yalt`@3.0.0-beta.31
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.32 -> `@trigger.dev/yalt`@3.0.0-beta.32
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.33 -> `@trigger.dev/yalt`@3.0.0-beta.33
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.34 -> `@trigger.dev/yalt`@3.0.0-beta.34
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.35 -> `@trigger.dev/yalt`@3.0.0-beta.35
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.36 -> `@trigger.dev/yalt`@3.0.0-beta.36
  * [new tag]             `@trigger.dev/yalt`@3.0.0-beta.37 -> `@trigger.dev/yalt`@3.0.0-beta.37
  * [new tag]       ...

GitHub Actions: 🔎 REVIEW.md Drift Audit / audit: chore: make AGENTS.md canonical, point CLAUDE.md at it with @AGENTS.md

Conclusion: failure

View job details

##[group]Run anthropics/claude-code-action@428971d2ecd6e3a7cb0ee0da2a3a8b33fdb3678d
 with:
   anthropic_***REDACTED***
   use_sticky_comment: true
   allowed_bots: devin-ai-integration[bot]
   claude_args: --max-turns 30
--allowedTools "Read,Glob,Grep,Bash(git diff:*)"
   prompt: You are auditing this PR for drift against `.claude/REVIEW.md`.
## Context
`.claude/REVIEW.md` is the repo's source of truth for what AI / agent code reviewers should treat as critical findings (rolling-deploy safety, hot-table indexes, recovery-path queries, testcontainers usage, Lua versioning, etc.). It is consumed by review agents to calibrate severity. If REVIEW.md goes stale, every future agent review degrades.
## Strategy — read this first
You have a hard turn budget. Spend it on signal, not coverage. The audit is allowed to miss things; it is NOT allowed to time out.
1. Read `.claude/REVIEW.md` once, in full.
2. Run `git diff origin/main...HEAD --name-only` to get the list of changed files. Do NOT read the diff content yet.
3. Scan the file-list for relevance to REVIEW.md scope. Relevance signals: changes to Prisma schema, Redis / queue / Lua code, hot tables, recovery / restart loops, new packages, deletions of paths REVIEW.md cites. Skim everything else.
4. Open at most **5 files** total — only the ones most likely to surface a real signal. If nothing in the file-list looks relevant to any REVIEW.md rule, do NOT read any files; go straight to the verdict.
5. Form a verdict and stop. Do not exhaust the turn budget exploring.
Large PRs (>50 files changed) are a strong signal to be MORE selective, not more thorough. Pick 3-5 files at most.
## What to look for
- **Stale references** — does any REVIEW.md rule cite a file, directory, function, table, Prisma model, or package name that has been removed or renamed in this PR (or is already gone from `main`)?
- **Contradictions** — does code in this PR clearly violate a current REVIEW.md rule? (Don't re-review the PR. Only flag if REVIE...

GitHub Actions: 🔎 REVIEW.md Drift Audit / 0_audit.txt: chore: make AGENTS.md canonical, point CLAUDE.md at it with @AGENTS.md

Conclusion: failure

View job details

 * [new tag]             build-metadata-upgrade-logging.rc1 -> build-metadata-upgrade-logging.rc1
  * [new tag]             build-metadata-upgrade-logging.rc2 -> build-metadata-upgrade-logging.rc2
  * [new tag]             build-metadata-upgrade-logging.rc3 -> build-metadata-upgrade-logging.rc3
  * [new tag]             build-new-build-system.rc.1 -> build-new-build-system.rc.1
  * [new tag]             build-otel-upgrade-rc.0     -> build-otel-upgrade-rc.0
  * [new tag]             build-otel-upgrade-rc.1     -> build-otel-upgrade-rc.1
  * [new tag]             build-pre-pull-deployments-rc.1 -> build-pre-pull-deployments-rc.1
  * [new tag]             build-prod-rescue-rc.1      -> build-prod-rescue-rc.1
  * [new tag]             build-rate-limiter-fix-rc.1 -> build-rate-limiter-fix-rc.1
  * [new tag]             build-re2.rc0               -> build-re2.rc0
  * [new tag]             build-realtime-v2-stream-fix -> build-realtime-v2-stream-fix
  * [new tag]             build-realtime-v2-stream-fix-2 -> build-realtime-v2-stream-fix-2
  * [new tag]             build-realtime-v2-stream-fix-3 -> build-realtime-v2-stream-fix-3
  * [new tag]             build-realtime-v2-stream-fix-4 -> build-realtime-v2-stream-fix-4
  * [new tag]             build-realtime-v2-stream-fix-5 -> build-realtime-v2-stream-fix-5
  * [new tag]             build-realtimestreams-dedupe -> build-realtimestreams-dedupe
  * [new tag]             build-registry-maintenance-rc.1 -> build-registry-maintenance-rc.1
  * [new tag]             build-registry-maintenance-rc.2 -> build-registry-maintenance-rc.2
  * [new tag]             build-remote-ecr-rc.0       -> build-remote-ecr-rc.0
  * [new tag]             build-reschedule-hotfix.rc1 -> build-reschedule-hotfix.rc1
  * [new tag]             build-resume-fixes.rc1      -> build-resume-fixes.rc1
  * [new tag]             build-resume-fixes.rc2      -> build-resume-fixes.rc2
  * [new tag]             build-resume-fixes.rc3      -> build-resume-fixes.r...
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: triggerdotdev/trigger.dev

Timestamp: 2026-07-03T13:02:14.972Z
Learning: Run repository commands from the monorepo root using `pnpm run`.
Learnt from: CR
Repo: triggerdotdev/trigger.dev

Timestamp: 2026-07-03T13:02:14.972Z
Learning: When adding dependencies, edit `package.json` directly instead of using `pnpm add`, then run `pnpm i` from the repo root.
🪛 LanguageTool
AGENTS.md

[style] ~3-~3: Consider a different adjective to strengthen your wording.
Context: ...y. Subdirectory CLAUDE.md files provide deeper context when you navigate into specific...

(DEEP_PROFOUND)


[style] ~109-~109: ‘exact same’ might be wordy. Consider a shorter alternative.
Context: ...to a new or existing package, use the exact same version as the rest of the repo - nev...

(EN_WORDINESS_PREMIUM_EXACT_SAME)

🪛 markdownlint-cli2 (0.22.1)
AGENTS.md

[warning] 212-212: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (2)
CLAUDE.md (1)

1-1: LGTM!

AGENTS.md (1)

56-70: 🎯 Functional Correctness

Verify containerTest exists.

The provided repo context only shows redisTest and postgresTest exports. If @internal/testcontainers doesn’t actually export containerTest, this example will mislead agents.

Comment thread AGENTS.md
@carderne carderne enabled auto-merge (squash) July 3, 2026 13:25
@carderne carderne merged commit 1f4369d into main Jul 3, 2026
30 checks passed
@carderne carderne deleted the chore/claude-md branch July 3, 2026 20:49
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