agentleFS
nativewindnativewind/react-native-css/.claude/skills/triage/SKILL.md

triage

Skill167 starsChanged 8 months agoMITView on GitHub

Triage a Nativewind or react-native-css GitHub issue. Reads the issue, determines version/repo, creates a reproduction, tests against latest published and local HEAD, then drafts a comment.

189 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use writing-beats, setup-matt-pocock-skills and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • LesaniSkill

    writing-beats

    Shape an article as a journey of beats, choose-your-own-adventure style. The user picks a starting beat from the raw material, you write only that beat, then offer options for where to pivot next, beat by beat, until the article reaches a natural end. Use when the user has raw material and wants to assemble it as a narrative rather than an argument.

    Also in 66 projects that use this

  • GoogleSkill

    setup-matt-pocock-skills

    Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

    Also in 167 projects that use this

  • liufeng1976Skill

    setup-ts-deep-modules

    Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.

    Also in 42 projects that use this

  • SethGammonSkill

    ascii-diagram

    Generate perfectly aligned ASCII diagrams — architecture, flow, sequence, box-and-arrow. Uses a programmatic character-grid approach so alignment is guaranteed by math, not token prediction. Includes post-render verification.

    Also in 4 projects that use this

  • simo97Skill

    migrate-to-shoehorn

    Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

    Also in 68 projects that use this

  • LesaniSkill

    writing-shape

    Take a markdown file of raw material and shape it into an article through a conversational session — drafting candidate openings, growing the piece paragraph by paragraph, arguing about format (lists, tables, callouts, quotes) at each step. Use when the user has a pile of notes, fragments, or a rough draft and wants help turning it into something publishable.

    Also in 63 projects that use this

  • +1 more from Lesani

The file

Show its rules and text

We split this skill into the rules it gives an agent

24 rules. 0 are common, 17 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 176 edited versions we read keep these.

  • 17

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before diving in, read the relevant project docs for architecture and conventions:

    line 12
  2. Very specific:

    Nativewind v5: Read CLAUDE.md and DEVELOPMENT.md in /Users/dan/Developer/nativewind/nativewind/

    line 14
  3. Very specific:

    react-native-css: Read CLAUDE.md and DEVELOPMENT.md in /Users/dan/Developer/nativewind/react-native-css/

    line 15
  4. Very specific:

    Nativewind v4: Read CONTRIBUTING.md and check test structure in /Users/dan/Developer/nativewind/nativewind-v4/

    line 16
  5. Distinctive:

    Read the full output carefully.

    line 34
  6. Very specific:

    Read DEVELOPMENT.md in the react-native-css repo for the full architecture diagram and key directories.

    line 46
  7. Distinctive:

    If unclear, assume v5 (the active development branch) but note the ambiguity

    line 66
  8. Distinctive:

    Before creating a reproduction, check if there is enough information:

    line 79
  9. Distinctive:

    If the issue lacks critical details needed for reproduction, skip to Step 6 and draft a comment requesting more information.

    line 84
  10. Distinctive:

    Create a minimal reproduction.

    line 100
  11. Very specific:

    Read existing tests in src/__tests__/compiler/ (e.g., compiler.test.tsx, declarations.test.tsx) to match the pattern.

    line 140
  12. Very specific:

    Read existing tests in src/__tests__/babel/ which use babel-plugin-tester.

    line 146
  13. Distinctive:

    Check the v4 test conventions first:

    line 192
  14. Distinctive:

    Run the reproduction in two contexts:

    line 211
  15. Distinctive:

    Check recent commits for relevant changes:

    line 232
  16. Distinctive:

    If the issue might be in a different repo than where it was filed, note that in your findings.

    line 238
  17. Distinctive:

    If the issue is not reproducible, say so clearly and ask for more details.

    line 250
  18. Distinctive:

    If the issue is already fixed on HEAD but not published, mention that and suggest the user try the latest version or a canary build.

    line 252
  19. Distinctive:

    Remove any temporary test files you created:

    line 262
  20. Distinctive:

    Do NOT leave triage test files in either repo.

    line 270
  21. Distinctive:

    Never post the comment automatically: Always present it to Dan for review.

    line 274
  22. Distinctive:

    If the issue is clearly a duplicate, mention the original issue number.

    line 275
  23. Very specific:

    If the issue is filed in the wrong repo (e.g., a react-native-css bug filed on nativewind), note that and suggest transferring it.

    line 276
  24. Distinctive:

    When the issue spans both repos, test in both and note which repo owns the fix.

    line 278

“Common” is measured: kept by at least 6 in 10 of the 176 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

You are triaging a GitHub issue for either nativewind/nativewind or nativewind/react-native-css. Your goal is to understand the issue, reproduce it, verify it against the latest releases and local HEAD, and draft a response.

Project context

Before diving in, read the relevant project docs for architecture and conventions:

  • Nativewind v5: Read CLAUDE.md and DEVELOPMENT.md in /Users/dan/Developer/nativewind/nativewind/
  • react-native-css: Read CLAUDE.md and DEVELOPMENT.md in /Users/dan/Developer/nativewind/react-native-css/
  • Nativewind v4: Read CONTRIBUTING.md and check test structure in /Users/dan/Developer/nativewind/nativewind-v4/

These docs describe the architecture, test conventions, commands, and common pitfalls for each project. Use them to inform your reproduction strategy and root cause analysis.

Step 0: Parse the issue reference

Extract the issue number and repo from $ARGUMENTS. Accept formats like:

  • 123 or #123 (defaults to nativewind/react-native-css)
  • nativewind/nativewind#123
  • nativewind/react-native-css#123
  • A full GitHub URL like https://github.com/nativewind/react-native-css/issues/45

Step 1: Read the issue

gh issue view <number> --repo <owner/repo> --json title,body,labels,state,comments,createdAt,author

Read the full output carefully. Pay attention to:

  • Title and description: What is the reported problem?
  • Comments: Any additional context, workarounds, or clarifications from the reporter or maintainers?
  • Labels: Any existing version or area labels?
  • Code snippets, config files, or error messages included in the issue

Step 2: Determine repo and version context

If filed on nativewind/react-native-css

react-native-css is a standalone CSS polyfill for React Native. It provides the CSS compiler (lightningcss-based), babel plugin (import rewriting), Metro transformer, and native runtime styling engine. It functions independently of Tailwind CSS but is the engine behind Nativewind v5. There is no v4 equivalent in this repo (v4's runtime was react-native-css-interop, which lives in the nativewind-v4 monorepo).

Read DEVELOPMENT.md in the react-native-css repo for the full architecture diagram and key directories. The issue likely involves one of these layers:

  • Compiler (src/compiler/) if CSS parses/compiles incorrectly
  • Native runtime (src/native/) if styles resolve incorrectly at runtime
  • Babel plugin (src/babel/) if import rewriting fails
  • Metro transformer (src/metro/) if bundling/transformation fails
react-native-css
Branchmain
npm packagereact-native-css
npm tag@latest
Local repo path/Users/dan/Developer/nativewind/react-native-css

If filed on nativewind/nativewind

Figure out whether this is a v4 or v5 issue. Clues:

  • nativewind version in their package.json (v4.x = v4, v5.x = v5)
  • Presence of tailwind.config.js = v4 (v5 uses Tailwind CSS v4's @tailwindcss/postcss)
  • Presence of react-native-css-interop = v4; react-native-css = v5
  • Mention of @import "nativewind/theme" = v5
  • If unclear, assume v5 (the active development branch) but note the ambiguity
Nativewind v4 (stable)Nativewind v5 (preview)
Branchv4main
Tailwindv3v4
Runtimereact-native-css-interopreact-native-css
npm tag@latest@preview
Repro templatenpx rn-new@latest --nativewindnpx rn-new@next --nativewind
Local repo path/Users/dan/Developer/nativewind/nativewind-v4/Users/dan/Developer/nativewind/nativewind

Step 3: Assess reproducibility

Before creating a reproduction, check if there is enough information:

  • Is the problem clearly described?
  • Are there code snippets showing the failing className, component, CSS, or config?
  • Is there an error message or screenshot?

If the issue lacks critical details needed for reproduction, skip to Step 6 and draft a comment requesting more information. Tailor the ask to the repo:

For nativewind issues:

Thanks for reporting this. To investigate, we need a minimal reproduction. Could you provide:

  • Your package.json dependencies (nativewind, react-native-css/react-native-css-interop, tailwindcss versions)
  • The specific className(s) or config causing the issue
  • A reproduction using npx rn-new@latest --nativewind (v4) or npx rn-new@next --nativewind (v5)

For react-native-css issues:

Thanks for reporting this. To investigate, we need a minimal reproduction. Could you provide:

  • Your react-native-css version
  • The CSS and component code that triggers the issue
  • Expected vs. actual behavior

Step 4: Create a reproduction

Create a minimal reproduction. The approach depends on the repo and what's being tested.


react-native-css issues

Tests are organized by domain in src/__tests__/ with three subdirectories: native/, compiler/, babel/. Before writing a test, read a few existing tests in the relevant subdirectory to match the conventions exactly.

For native styling issues (most common, e.g., wrong style output, className not working):

// Create: src/__tests__/native/triage-<issue-number>.test.tsx
import { render, screen } from "@testing-library/react-native";
import { View } from "react-native-css/components/View";
import { registerCSS, testID } from "react-native-css/jest";

describe("Issue #<number>", () => {
  test("description of the problem", () => {
    registerCSS(`.my-class { /* the CSS from the issue */ }`);

    render(<View testID={testID} className="my-class" />);
    const component = screen.getByTestId(testID);

    // Log what we actually get
    console.log(JSON.stringify(component.props, null, 2));

    // Assert expected behavior
    expect(component.props).toStrictEqual({
      children: undefined,
      style: { /* expected styles */ },
      testID,
    });
  });
});

Run with: cd /Users/dan/Developer/nativewind/react-native-css && yarn test src/__tests__/native/triage-<issue-number>.test.tsx

For compiler issues (CSS parses wrong, wrong JSON output):

Read existing tests in src/__tests__/compiler/ (e.g., compiler.test.tsx, declarations.test.tsx) to match the pattern. Compiler tests verify the JSON output structure from compile().

Run with: cd /Users/dan/Developer/nativewind/react-native-css && yarn test compiler

For babel issues (import rewriting broken):

Read existing tests in src/__tests__/babel/ which use babel-plugin-tester.

Run with: cd /Users/dan/Developer/nativewind/react-native-css && yarn test babel

For runtime issues that need a full app:

cd /Users/dan/Developer/nativewind/react-native-css/example
yarn example start:build  # Rebuilds library + starts Metro

Nativewind v5 issues

For CSS/styling issues (in /Users/dan/Developer/nativewind/nativewind):

// Create: src/__tests__/triage-<issue-number>.test.ts
import { renderCurrentTest, renderSimple } from "../test-utils";

describe("Issue #<number>", () => {
  test("<the-failing-classname>", async () => {
    // Use renderCurrentTest() if testing a single className (test name = className)
    const result = await renderCurrentTest();
    console.log(JSON.stringify(result, null, 2));
  });

  // Or use renderSimple() for more complex scenarios
  test("complex case", async () => {
    const result = await renderSimple({
      className: "<multiple classes here>",
      // css: "custom CSS if needed",
      // extraCss: "additional CSS",
    });
    console.log(JSON.stringify(result, null, 2));
  });
});

Run with: yarn test src/__tests__/triage-<issue-number>.test.ts


Nativewind v4 issues

(in /Users/dan/Developer/nativewind/nativewind-v4): Check the v4 test conventions first:

ls /Users/dan/Developer/nativewind/nativewind-v4/packages/nativewind/src/__tests__/

Then write a similar test following v4's patterns.


For runtime/Metro/babel issues (any repo)

These are harder to reproduce with unit tests. Create a standalone project:

v5 / react-native-css: npx rn-new@next --nativewind in a temp directory v4: npx rn-new@latest --nativewind in a temp directory

Then replicate the reporter's setup and config.

Step 5: Verify against versions

Run the reproduction in two contexts:

5a. Latest published version

For test-based reproductions, this is what yarn test already does (uses installed dependencies).

For app-based reproductions, ensure the project uses the latest published version:

  • react-native-css: react-native-css@latest
  • Nativewind v4: nativewind@latest
  • Nativewind v5: nativewind@preview

Record the result: does the issue reproduce? What's the actual vs. expected behavior?

5b. Local HEAD of the respective branch

For test-based reproductions in the repo itself, the tests already run against local source.

But consider whether the bug crosses repo boundaries:

  • A Nativewind styling issue might actually be a react-native-css compiler bug
  • A react-native-css issue might only surface when used with Nativewind's @map variant

Check recent commits for relevant changes:

# In the appropriate repo
git log --oneline -20

If the issue might be in a different repo than where it was filed, note that in your findings.

Step 6: Draft a comment

Based on your findings, draft a GitHub issue comment. The tone should be helpful and direct. Include:

  1. Reproduction status: Did you reproduce it? On which version(s)?
  2. Root cause (if identified): Where the bug lives and why
  3. Scope: Is this a Nativewind issue or a react-native-css issue? If filed in the wrong repo, say so.
  4. Workaround (if any): A temporary fix the reporter can use
  5. Next steps: What needs to happen to fix this (PR, upstream fix, config change)

If the issue is not reproducible, say so clearly and ask for more details.

If the issue is already fixed on HEAD but not published, mention that and suggest the user try the latest version or a canary build.

Format the comment as a markdown blockquote so Dan can review it before posting:

Reproduction result

[Your findings here]

Step 7: Clean up

Remove any temporary test files you created:

# In whichever repo you created the test
rm src/__tests__/triage-<issue-number>.test.ts
rm src/__tests__/native/triage-<issue-number>.test.tsx
rm src/__tests__/compiler/triage-<issue-number>.test.tsx

Do NOT leave triage test files in either repo.

Important notes

  • Never post the comment automatically. Always present it to Dan for review.
  • If the issue is clearly a duplicate, mention the original issue number.
  • If the issue is filed in the wrong repo (e.g., a react-native-css bug filed on nativewind), note that and suggest transferring it.
  • Be honest about what you can and cannot determine from the reproduction.
  • When the issue spans both repos, test in both and note which repo owns the fix.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.