Skip to content

Add async-react skill#229

Draft
aurorascharff wants to merge 16 commits intomainfrom
add-async-react-skill
Draft

Add async-react skill#229
aurorascharff wants to merge 16 commits intomainfrom
add-async-react-skill

Conversation

@aurorascharff
Copy link
Copy Markdown
Contributor

@aurorascharff aurorascharff commented Apr 15, 2026

Summary

  • Adds the async-react skill — an audit and review tool for React async patterns. Scans for coordination issues (frozen UI, stale data, uncoordinated mutations, missing loading states) and suggests fixes using React's primitives (useOptimistic, useTransition, useActionState, Suspense, useDeferredValue, form actions, action props)
  • Collaborative workflow: audit the codebase, present findings, let the user prioritize, implement approved changes, review together
  • Includes Next.js App Router integration (server actions, updateTag()/refresh(), router behavior, promise-passing)

Based on Ricky Hanlon's Async React demo from React Conf 2025. Testing ground: vercel-labs/async-react-demo.

Skill structure

skills/async-react/
├── SKILL.md                      # Core skill (188 lines)
├── AGENTS.md                     # Full compiled document
├── README.md                     # Skill overview and install instructions
├── metadata.json                 # Version, references
└── references/
    ├── implementation.md         # Audit and review workflow (Step 0–7)
    ├── patterns.md               # Code patterns for each primitive
    ├── nextjs.md                 # Next.js-specific integration
    └── common-mistakes.md        # Common pitfalls and how to avoid them

Async coordination patterns using React's primitives — useOptimistic,
useTransition, useActionState, Suspense, useDeferredValue, form actions,
and the action props pattern. Includes Next.js integration.

Made-with: Cursor
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agent-skills Ready Ready Preview, Comment, Open in v0 Apr 29, 2026 0:33am

Comment thread skills/async-react/AGENTS.md Outdated
…ions--cache-invalidation` which no longer exists, making them non-functional navigation links.

This commit fixes the issue reported at skills/async-react/AGENTS.md:185

**Bug explanation:** The section heading in AGENTS.md is "Invalidation After Mutations" (line 1181), which generates the anchor `#invalidation-after-mutations`. However, two internal links at lines 185 and 318 reference the non-existent anchor `#server-actions--cache-invalidation` with link text "Server Actions + Cache Invalidation". This is a broken internal link — clicking either link would not navigate to the intended section.

**Fix explanation:** Updated both links at lines 185 and 318 to use the correct anchor `#invalidation-after-mutations` and updated the link text to "Invalidation After Mutations" to match the actual heading name. This ensures internal navigation works correctly.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
Co-authored-by: aurorascharff <aurora.sofie@gmail.com>
Comment thread skills/async-react/AGENTS.md Outdated
…` on line 284 references a heading that doesn't exist in the document.

This commit fixes the issue reported at skills/async-react/AGENTS.md:284

**Bug explanation:**
Line 284 of `skills/async-react/AGENTS.md` contains the markdown link `[Server Actions + Cache Invalidation](#server-actions--cache-invalidation)`. However, no heading with that anchor exists in the file. The relevant section heading is `## Invalidation After Mutations` (at line 1169), which produces the anchor `#invalidation-after-mutations`. This means the link is dead — clicking it in any rendered markdown viewer would not navigate anywhere.

This appears to be a regression of a previously-fixed broken link (commit 23c41ba), likely re-introduced during a merge or rebase.

**Fix explanation:**
Changed the link text and anchor from `[Server Actions + Cache Invalidation](#server-actions--cache-invalidation)` to `[Invalidation After Mutations](#invalidation-after-mutations)`, which correctly matches the actual heading text and its generated anchor. Verified no other instances of the broken anchor remain in the file.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
Co-authored-by: aurorascharff <aurora.sofie@gmail.com>
Copy link
Copy Markdown
Contributor Author

@aurorascharff aurorascharff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--

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.

1 participant