* refactor: consolidate agent config folders into agents directory - Move .claude/skills and .claude/rules content to agents/ - Remove duplicate .cursor/ and .goose/ folders - Create symlinks from .claude/ and .cursor/ to agents/ - Convert review.mdc to quality-review-checklist.md with proper frontmatter Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * feat: add Cal.com APIv2 skills to agents directory Move the Cal.com API v2 skills from PR #27445 into the consolidated agents/skills/ directory structure. This includes: - SKILL.md - Main skill file with API overview - references/authentication.md - Authentication methods - references/bookings.md - Bookings API reference - references/calendars.md - Calendars API reference - references/event-types.md - Event types API reference - references/schedules.md - Schedules API reference - references/slots-availability.md - Slots and availability API reference - references/webhooks.md - Webhooks API reference Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * fix: update calcom-api skill to use Claude Code frontmatter format Remove non-standard frontmatter fields (license, metadata) and keep only the Claude Code supported fields (name, description) as per the Claude Code skills specification. Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * refactor: restructure calcom-api SKILL.md as index file Convert SKILL.md from a comprehensive API doc (317 lines) to a concise index file (108 lines) that references the detailed documentation in the references/ folder. This follows the Claude Code skills pattern of keeping SKILL.md focused with supporting files for detailed content. The SKILL.md now: - Provides a quick start guide with essential examples - References all 7 detailed reference docs in a table - Lists common workflows and best practices - Points to external resources Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * docs: preserve deleted content in reference files Move content that was removed from SKILL.md to appropriate reference files: - Add Error Handling and Pagination sections to authentication.md - Add Organization endpoints to event-types.md - Add Core Concepts section back to SKILL.md This ensures no useful API documentation is lost during the restructuring. Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
80 lines
1.5 KiB
Markdown
80 lines
1.5 KiB
Markdown
---
|
|
title: Parallel Data Fetching with Component Composition
|
|
impact: CRITICAL
|
|
impactDescription: eliminates server-side waterfalls
|
|
tags: server, rsc, parallel-fetching, composition
|
|
---
|
|
|
|
## Parallel Data Fetching with Component Composition
|
|
|
|
React Server Components execute sequentially within a tree. Restructure with composition to parallelize data fetching.
|
|
|
|
**Incorrect (Sidebar waits for Page's fetch to complete):**
|
|
|
|
```tsx
|
|
export default async function Page() {
|
|
const header = await fetchHeader()
|
|
return (
|
|
<div>
|
|
<div>{header}</div>
|
|
<Sidebar />
|
|
</div>
|
|
)
|
|
}
|
|
|
|
async function Sidebar() {
|
|
const items = await fetchSidebarItems()
|
|
return <nav>{items.map(renderItem)}</nav>
|
|
}
|
|
```
|
|
|
|
**Correct (both fetch simultaneously):**
|
|
|
|
```tsx
|
|
async function Header() {
|
|
const data = await fetchHeader()
|
|
return <div>{data}</div>
|
|
}
|
|
|
|
async function Sidebar() {
|
|
const items = await fetchSidebarItems()
|
|
return <nav>{items.map(renderItem)}</nav>
|
|
}
|
|
|
|
export default function Page() {
|
|
return (
|
|
<div>
|
|
<Header />
|
|
<Sidebar />
|
|
</div>
|
|
)
|
|
}
|
|
```
|
|
|
|
**Alternative with children prop:**
|
|
|
|
```tsx
|
|
async function Layout({ children }: { children: ReactNode }) {
|
|
const header = await fetchHeader()
|
|
return (
|
|
<div>
|
|
<div>{header}</div>
|
|
{children}
|
|
</div>
|
|
)
|
|
}
|
|
|
|
async function Sidebar() {
|
|
const items = await fetchSidebarItems()
|
|
return <nav>{items.map(renderItem)}</nav>
|
|
}
|
|
|
|
export default function Page() {
|
|
return (
|
|
<Layout>
|
|
<Sidebar />
|
|
</Layout>
|
|
)
|
|
}
|
|
```
|