Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,14 @@ green and every AI review thread is resolved.
an auto-applied `claude-assisted` provenance label.
- **Deep review on demand:** a triage+ user can apply the opt-in `deep-review` label to any
PR to run the Claude deep review on it (re-applying the label re-runs it; a
`deep-review:`-prefixed PR comment from a triage+ user pre-steers its focus).
`deep-review:`-prefixed PR comment from a triage+ user pre-steers its focus). Its output
lands as a PR review from `claude` marked `<!-- claude-deep-review -->`, tied to the head
sha it started from — after later pushes, look for that review, not the current head's
checks.
- **Reviewer mechanics:** CodeRabbit reviews incrementally and rate-limits on OSS — after a
"review limit reached" skip nothing retries on its own; push a commit or have a triage+
user comment `@coderabbitai review` once the window resets. Copilot also auto-reviews PRs
and re-reviews on push.
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
- **State comment:** the `<!-- ai-loop-state … -->` PR comment is machine-managed — never
reformat its first line.
- **Refusals:** the loop refuses PRs that touch `.github/**` or the
Expand Down
7 changes: 7 additions & 0 deletions docs/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,10 @@ it, so a novel non-standard `package.json` key and extra release churn weren't w
`docusaurus.config.js` does not override it. That is load-bearing but easy to miss: setting
`format: 'detect'` would make every `.md` page render its tags as literal text.
- Markdown is prettier-formatted (`pnpm format:check` covers `md`/`mdx`).
- Scripts in `docs/scripts/` are covered by the root `pnpm lint` — run it before pushing even
a docs-only PR (#471 broke CI on exactly this). Playwright `page.evaluate` callbacks
execute in the browser, so declare `/* global document, getComputedStyle */` the way
`rasterize-cover.mjs` and bulma-ui's `capture-stories.mjs` do — and when a script already
has the page open, validate through the parsed DOM and computed styles, not regexes over
the source (quoting, `data-*` attributes, and transparent paint all fool regexes; two
review rounds proved it).
7 changes: 7 additions & 0 deletions docs/blog/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@ version bump) and the intro of the first State of React edition: candid, plain,
accidental major bump. Never open with "We're excited to announce" (the pre-guide posts do;
don't copy them). No superlatives, no hype adjectives. If a thing shipped late, say it
shipped late.
- **Sell what the reader keeps, never the absence.** When the angle is something the library
deliberately omits (no form library, no date library), state the stance once, factually,
with the reasons, then let demos carry the argument: lead with what the reader keeps, name
competing libraries neutrally, and include an explicit bring-your-own path. Titles too:
"Form Library Agnostic" shipped over "Building Forms Without a Form Library" because
absence-titles read as missing features (#471). The v3 post's "no date library in your
bundle" paragraph is the model.
- **Work all three appeals.** A post should persuade on ethos, pathos, and logos together.
_Ethos_: write from first-hand maintainer experience, link your sources, and own the
mistakes (the candor above is the credibility play). _Pathos_: name the pain a change
Expand Down
Loading