Skip to content
Agentmart
Submit a tool

mandu-hydration

Island Hydration pattern for Mandu.

Skill by mandu

IndexedMIT★ 47
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/konamgil-mandu-hydration

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Island Hydration pattern for Mandu. Use when creating interactive components, client-side state, or partial hydration. Triggers on tasks involving "use client", client.tsx, useState, useEffect, Island, or hydration.

Use cases: agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 4

  • codeload.github.com · found in install command
  • docs.astro.build · found in code
  • fresh.deno.dev · found in code
  • jasonformat.com · found in code

Files it touches

  • ~/.claude/skills/mandu-hydration

What's inside

Skill name
mandu-hydration
Description
Island Hydration pattern for Mandu. Use when creating interactive components, client-side state, or partial hydration. Triggers on tasks involving "use client", client.tsx, useState, useEffect, Island, or hydration.
License
MIT
Metadata
author: mandu · version: 1.0.0
Instructions
129 lines in SKILL.md · view on GitHub

Files (8)

  • SKILL.md
  • metadata.json
  • _sections.md · rules/
  • _template.md · rules/
  • hydration-data-event.md · rules/
  • hydration-directive-use-client.md · rules/
  • hydration-island-setup.md · rules/
  • hydration-priority-visible.md · rules/

SKILL.md (first lines)

# Mandu Island Hydration

Island Hydration은 페이지의 일부분만 클라이언트에서 인터랙티브하게 만드는 기술입니다.
대부분의 페이지는 정적 HTML로 유지하고, 필요한 부분만 JavaScript를 로드합니다.

## Agent Workflow Contract

This skill is a Domain addendum. It must not replace `mandu-agent-workflow`.
Use it only after `mandu.agent.plan` selects the hydration, island, partial, or route domain.

Canonical workflow step: `plan -> apply -> verify -> repair`.

Preferred MCP tools:

| Step | Tools |
|------|-------|
| plan | `mandu.agent.plan`, `mandu.island.list` |
| apply | `mandu.agent.apply`, `mandu.hydration.set`, `mandu.hydration.addClientSlot` |
| verify | `mandu.agent.verify`, `mandu.build`, `mandu.build.status` |
| repair | `mandu.agent.repair` |

Allowed file edits:

- `app/**/*.partial.tsx`, `app/**/*.island.tsx`, route-local client components
- Page hydration metadata only when the plan names the route
- Shared client utilities only after inspecting existing client boundaries

Verification command:

```bash
mandu agent verify --changed --json --write
```

Common failures:

- Rendering page-level islands inline instead of using `partial().Render`
- Forgetting route hydration metadata when a server page renders partials
- Moving server-only imports into client bundles

Repair path:

```bash
mandu agent repair --from .mandu/agent-verify.json --json
```

## When to Apply

Reference these guidelines when:
- Creating interactive client components
- Adding client-side state to pages
- Implementing partial hydration
- Setting up client-server data flow
- Working with Island communication

## Rule Categories by Priority

| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Client Directive | CRITICAL | `hydration-directive-` |
| 2 | Island Structure | HIGH | `hydration-island-` |
| 3 | Hydration Priority | MEDIUM | `hydration-priority-` |
| 4 | Data Flow | MEDIUM | `hydration-data-` |

## Quick Reference

### 1. Client Directive (CRITICAL)

- `hydration-directive-use-client` - Add "use client" directive for client components
- `hydration-directive-file-naming` - Use .client.tsx for client component files

### 2. Island Structure (HIGH)

- `hydration-island-setup` - Use Mandu.island() with setup function
- `hydration-island-render` - Separate state logic from render

### 3. Hydration Priority (MEDIUM)

- `hydration-priority-immediate` - Load on page load (critical interactions)
- `hydration-priority-visible` - Load when visible (default)
- `hydration-priority-idle` - Load when browser idle
- `hydration-priority-interaction` - Load on user interaction

### 4. Data Flow (MEDIUM)

- `hydration-data-server` - Access server data with useServerData
- `hydration-data-event` - Communicate between Islands with useIslandEvent

## Hydration Strategies

| Strategy | Description | Use Case |
|----------|-------------|----------|
| `none` | No JavaScript | Pure static pages |
| `island` | Partial hydration (default) | Static + interactive mix |
| `full` | Full hydration | SPA-style pages |

## Runtime API Constraints

- `island()` / `Mandu.island()` takes one definition object: `island({ setup, render })`.
- Do not call `island("visible", Component)`; use `wrapComponent(Component)` for a simple page-level island wrapper.
- Islands are page-level client bundles. Do not render them as inline JSX like `<MyIsland />`.
- For an embedded interactive region inside a server page, use `partial()`: put it in `*.partial.tsx`, export `partial({ id, component })`, and render the returned `.Render` component from the server page.
- A server page that renders partials must opt into hydration, for example `export const hydration = { strategy: "island", priority: "visible", preload: false }`.

## Client Hooks

```typescript
import {
  useServerData,
  useHydrated,
  useIslandEvent,
} from "@mandujs/core/client";

// Access SSR data
const data = useServerData<UserData>("user", defaultValue);

// Check hydration status
const isHydrated = useHydrated();
```

From konamgil/mandu, MIT.

Signals

Stars
47
Forks
3
Open issues
4
Last commit (this folder)
Aug 13, 2026 (2 months ago)
Last release
May 29, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.0.0
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from mandu

Cite this page

mandu-hydration skill. Agent Mart. https://agentmart.dev/skills/konamgil-mandu-hydration (last updated 2026-10-24)