mirror of
https://github.com/Comfy-Org/comfy-typescript-sdk.git
synced 2026-11-04 23:47:27 +00:00
[PR #148] [MERGED] docs: add CLAUDE.md shim importing AGENTS.md #149
Labels
No labels
audit:ai-readiness
audit:community
audit:github
audit:health-scoring
audit:policy
audit:release
audit:supply-chain
bug
cursor-review-pin
effort:medium
effort:small
effort:trivial
priority:nice-to-have
priority:recommended
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/comfy-typescript-sdk#149
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/comfy-typescript-sdk/pull/148
Author: @mattmillerai
Created: 9/16/2026
Status: ✅ Merged
Merged: 10/9/2026
Merged by: @mattmillerai
Base:
main← Head:matt/be-3575-claude-md-shim📝 Commits (2)
4f1142fdocs: add CLAUDE.md shim importing AGENTS.mdef66247docs: anchor the CLAUDE.md prettierignore entry to the repo root📊 Changes
2 files changed (+11 additions, -0 deletions)
View changed files
📝
.prettierignore(+9 -0)➕
CLAUDE.md(+2 -0)📄 Description
ELI-5
Claude Code only reads
CLAUDE.md; it never falls back toAGENTS.md. This repoalready has a rich
AGENTS.mdbut noCLAUDE.md, so Claude Code was seeing noinstructions at all. This adds a tiny
CLAUDE.mdthat just says "the realinstructions are in
AGENTS.md" and imports it, so both Claude Code and everyother agent tool read the same single source of truth.
What & why
Per the org "Pillar 1: Agentic Engineering" standard, a repo's agent instructions
live in a top-level
AGENTS.md, andCLAUDE.mdexists only as a shim thatimports it (Claude Code reads
CLAUDE.md, notAGENTS.md, with no fallback).AGENTS.mdalready exists on the default branch (added in #60 and maintainedsince). The only missing piece was the shim, so this PR adds exactly that:
CLAUDE.md— the canonical two-line shim: an HTML comment explaining thearrangement, followed by
@AGENTS.md. Content is byte-identical to the org'scanonical form so every repo's shim matches.
.prettierignore— a root-anchored exclusion for/CLAUDE.md(see judgmentcall below). The leading slash matters: this file uses gitignore syntax, so a
bare
CLAUDE.mdwould match at any depth and also exempt a future nested shim.Anchoring scopes the exemption to exactly the root file the comment describes.
No
.cursorrulesexists (correct — legacy), and there are no nestedAGENTS.mdfiles, so no nested shims are needed.
AGENTS.mditself is left untouched.Verification (all local gates from AGENTS.md §4, green)
pnpm lint(oxlint) — passpnpm format:check(oxfmt) — pass (83 files;CLAUDE.mdexcluded)pnpm typecheck(tsc --noEmit) — passpnpm check:spec-drift— passpnpm test(vitest) — 620 passed / 26 filespnpm build— passnode scripts/check-public-repo-hygiene.mjs— pass (the shim carries noticket-shaped identifiers, internal links, or repo references)
Judgment call — excluding
CLAUDE.mdfrom oxfmtThis repo runs oxfmt over Markdown (
format:checkis part of thetestjob).oxfmt wants to insert a blank line between the HTML comment and the
@AGENTS.mdimport, which would make this repo's shim diverge from the org's canonical
byte-for-byte form. That put two acceptance requirements in direct tension:
"exactly the canonical shim content" vs "CI green".
I resolved it by keeping the shim byte-exact and excluding it from oxfmt in
.prettierignore— the same mechanism the repo already uses for artifacts whoseexact bytes must not be reformatted (generated code, the parity snapshot). The
canonical shim is precisely that class of fixed artifact: its whole purpose is to
be identical across every repo. The alternative (accept oxfmt's blank line, no
.prettierignorechange) is a smaller diff but would leave this repo's shimdiverging from the standard, so I chose byte-exactness.
Residual
AGENTS.mdexceeds the 200-line target. The org standard asks for a rootAGENTS.mdunder 200 lines; the pre-existing file is 247 lines. This PR leavesit unchanged, because the task is to leave
AGENTS.mdcontent unchanged unlessexplicitly asked to trim/merge, and it was authored and verified independently
(not by this change). Trimming it to <200 lines — by pushing subsystem detail
(the section 2 spec-coupling catalogue is the bulk) into a nested doc or file —
is a separate, self-contained follow-up that a human can pick up without this PR
open.
Provenance
(lint, format:check, typecheck, spec-drift, 620 tests / 26 files, build,
public-repo-hygiene);
CLAUDE.mdconfirmed byte-identical to the canonicalshim (unchanged by the anchoring commit); confirmed no nested
AGENTS.mdandno
.cursorrules. The/CLAUDE.mdanchoring was verified empirically, not byreading the docs: with a deliberately misformatted nested
CLAUDE.mdin thetree,
format:checkskipped it under the bare pattern (83 files, pass) andflagged it under
/CLAUDE.md(84 files, fail), while the root shim stayedexcluded under both.
.prettierignoreentry beyond the bareCLAUDE.mdfile (the judgment call above) — the only way to satisfy both "exactly canonical
content" and "CI green" simultaneously.
Summary by CodeRabbit
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.