nextjs_standard stringclasses 2
values | best_practice_rule stringclasses 10
values | resource stringclasses 12
values | mutation_scenario stringclasses 12
values | ui_pattern stringclasses 8
values | training_target stringclasses 4
values | feature_request stringlengths 617 1.14k | existing_project_context stringlengths 2.74k 6.48k | implementation_plan stringlengths 3.48k 7.41k | implementation stringlengths 0 14k | self_review stringlengths 4.01k 13.9k | improved_implementation stringlengths 0 9.42k | tests stringlengths 48 8.55k | chat_training_row stringlengths 5.47k 17.5k | quality_judge_result dict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Next.js App Router with TypeScript. Keep pages and server components focused on composition and data loading. Keep client components small. Use Server Actions for form submissions. Do not fetch directly from client components unless interaction requires it. Keep auth and persistence on the server. | Follow existing folder and file naming conventions before inventing new architecture. | Integration | assign owner | confirmation button with pending state | implement_server_action_feature | **Ticket: Assign Integration Owner**
**Summary**
Allow users in the Integrations list to assign or change the owner of a third-party integration directly from the row actions.
**Business behavior**
Clicking "Assign owner" opens a confirm panel showing the integration name and the selected teammate. Pressing "Confirm"... | ## File Tree
```
app/
(admin)/
integrations/
page.tsx # Integrations list page (server component)
actions.ts # Server Actions for integration mutations
[integrationId]/
AssignOwnerPanel.tsx # Client component for the confirm panel
components/
in... | ## Approach
Extend the existing integrations route's Server Action surface to support assigning an owner, reusing the colocated `actions.ts` and `lib/server/integrations.ts` patterns. Add a new "assign-owner" entry to the shared `RowActions` menu so the action is composed into the table the same way "rename" and "disab... | const result = await assignIntegrationOwnerAction(formData);
if (result.ok) {
setSuccess({ ownerName: result.ownerName, assignedAt: result.assignedAt });
setNotFound(false);
scheduleClose();
return;
}
if (result.reason === "not_found") {
setNotFound(true);
scheduleClose();
return;
... | ## Review: Assign Integration Owner
### 1. Would approve? **No**
### 2. Server/Client boundary issues
- `actions.ts` is missing entirely from the implementation. Right now the snippet shows a client handler calling `assignIntegrationOwnerAction(formData)` with a result-shaped object (`{ ok, reason, ownerName, assign... | // app/(admin)/integrations/page.tsx
import { listIntegrations } from "@/lib/server/integrations";
import { IntegrationsTable } from "@/components/integrations/IntegrationsTable";
import { RowActions } from "@/components/integrations/RowActions";
export default async function IntegrationsPage() {
const integrations ... | // lib/server/__tests__/assignIntegrationOwner.test.ts
// Tests for the Server Action and server-side mutation handling the
// "Assign owner" flow, including the "integration no longer available"
// edge case surfaced via IntegrationNotFound.
import { revalidatePath } from "next/cache";
import { assignIntegrationOwner... | {"messages":[{"role":"system","content":"You are a senior Next.js (App Router) engineer working on an existing codebase. When implementing features you must:\n- Follow existing project conventions (file structure, naming, colocation).\n- Prefer Server Components by default; only mark a component \"use client\" when it ... | {
"ChatTrainingUsefulness": {
"reasoning": "As a training row there are significant problems. (1) The implementation portion is not valid code in a chat_training_row JSON — it is a truncated blob (`AssignOwnerMount` cuts off mid-type, no closing brace, the `IntegrationsTable.tsx` snippet has a misplaced `import` ... |
Next.js App Router with TypeScript. Server Components by default. Client Components only for browser interactivity. Mutations use Server Actions. Validation happens at the action boundary with Zod. Data access goes through server-only modules. Revalidate cache after successful mutations. | Validate Server Action input at the boundary using Zod or an equivalent schema before calling data access code. | User | reject request with reason | modal confirmation with Server Action | add_mutation_tests | Title: Reject Friend Request with Reason
Description:
A user receiving a pending friend request should be able to reject it from the requests list. Clicking "Reject" opens a confirmation modal asking the user to optionally provide a reason (up to 200 characters). On confirm, the request status moves to "rejected," the... | ## File Tree
- `app/(main)/friends/requests/page.tsx`
- `app/(main)/friends/requests/RejectRequestModal.tsx`
- `app/(main)/friends/requests/RequestList.tsx`
- `app/actions/friends.ts`
- `lib/server/friendRequests.ts`
- `lib/validation/friendRequests.ts`
- `components/ui/Toast.tsx`
## Existing Patterns
- Server Actions... | ## Approach
Add a "Reject with optional reason" flow that mirrors the existing `acceptFriendRequest` path: a Zod-validated Server Action invoked from the existing `RejectRequestModal` Client Component, implemented as a discriminated `ActionResult`. Introduce a new `rejectFriendRequest` data-access function in `lib/ser... | // components/ui/Toast.tsx
"use client";
import { createContext, useCallback, useContext, useMemo, useState } from "react";
type ToastVariant = "success" | "info" | "error";
type ToastEntry = {
id: string;
variant: ToastVariant;
message: string;
};
type ToastContextValue = {
toasts: ToastEntry[];
showToas... | 1. Would approve? **No.**
2. Server/Client boundary issues
- None at this scope. `Toast.tsx` is `"use client"` and only manages client state. Fine as-is, though the barrel exports a `Toast()` component that returns `null` — dead export that confuses readers and the consumer. Either remove it or make it the viewport wr... | // components/ui/Toast.tsx
"use client";
import { createContext, useCallback, useContext, useMemo, useState } from "react";
type ToastVariant = "success" | "info" | "error";
type ToastEntry = {
id: string;
variant: ToastVariant;
message: string;
};
type ToastContextValue = {
toasts: ToastEntry[];
showToas... | // app/actions/__tests__/rejectFriendRequestAction.test.ts
import { describe, it, expect, vi, beforeEach } from "vitest";
import { revalidatePath } from "next/cache";
import { rejectFriendRequestAction } from "@/app/actions/friends";
import { rejectFriendRequest } from "@/lib/server/friendRequests";
vi.mock("next/cach... | ```json
{
"messages": [
{
"role": "system",
"content": "You are a careful Next.js (App Router) coding assistant. When implementing features, follow existing project conventions:\n- Prefer Server Components by default; keep Client Components thin and focused on interactivity.\n- Use Server Actions for ... | {
"ChatTrainingUsefulness": {
"reasoning": "This is a useful training row: it demonstrates the full Server Action flow (Zod validation → server module → discriminated result → revalidation), handles a realistic edge case (deleted sender) with appropriate UX, and the self-review provides a clear before/after contr... |
Next.js App Router with TypeScript. Keep pages and server components focused on composition and data loading. Keep client components small. Use Server Actions for form submissions. Do not fetch directly from client components unless interaction requires it. Keep auth and persistence on the server. | Do not pass secrets, raw database records, or server-only dependencies into Client Components. | Team | approve request | modal confirmation with Server Action | implement_server_action_feature | **Title:** Approve Team Request from Dashboard
**Description:**
Team leads need to approve pending team requests directly from the dashboard. When a lead clicks "Approve" on a request row, a confirmation modal should appear showing the requester's name, email, and requested role. The modal must display a short preview... | ## File Tree
```
app/
(admin)/
dashboard/
page.tsx
requests/
page.tsx
actions/
team-requests.ts
components/
requests/
RequestRow.tsx
ApprovalModal.tsx
RequestStatusBadge.tsx
lib/
server/
team-requests.ts
mailer.ts
types/
team-request.ts
```
## Existing Pat... | ## Approach
Follow the existing server-first RSC + Server Action pattern. `RequestRow` (client) already owns the modal open state and the `useTransition`; the only missing piece is wiring `onConfirm` to `approveTeamRequestAction` and surfacing its result. Keep `ApprovalModal` purely presentational with local state for ... | // components/requests/ApprovalModal.tsx
"use client";
import { useEffect, useRef } from "react";
import type { TeamRequest } from "@/lib/types/team-request";
interface ApprovalModalProps {
request: TeamRequest;
isPending: boolean;
error: string | null;
onClose: () => void;
onConfirm: () => void;
}
functio... | 1. **Would approve?** No.
2. **Server/Client boundary issues**
- The component is correctly marked `"use client"` and only consumes the `TeamRequest` DTO plus callbacks. No DB, mailer, or session leakage. Good.
- Minor: the `error` prop is now sourced from the parent (`RequestRow`), which is fine, but `RequestRo... | <div className={styles.identity}>
{request.photoUrl ? (
<Image
className={styles.avatar}
src={request.photoUrl}
alt={`${request.requesterName}'s profile photo`}
width={56}
height={56}
/>
) : (
<div className={styles.avatarFallback} ar... | const result = await approveTeamRequest(baseRequest.id);
expect(result).toEqual({ ok: false, error: "Already approved." }); | {"messages":[{"role":"system","content":"You are an expert Next.js (App Router) engineer working inside an established codebase. When implementing features, you must:\n\n- Follow existing project conventions and file layout exactly; do not invent new patterns when one already exists.\n- Prefer React Server Components b... | {
"ChatTrainingUsefulness": {
"reasoning": "This row demonstrates several important patterns well: server action with discriminated union return, authorization at the action boundary, friendly error mapping, revalidation of multiple paths, DTO-only boundary, and a thoughtful self-review that catches real issues. ... |
"Next.js App Router with TypeScript. Server Components by default. Client Components only for browse(...TRUNCATED) | Keep database and external service calls in server-only modules, not in Client Components. | Assignment | approve request | table row action with optimistic pending UI | refactor_client_fetch_to_server_action | "**Ticket:** Add \"Approve\" action to Assignment table rows\n\n**Context**\nCoordinators currently (...TRUNCATED) | "## File Tree\n```\napp/\n├── (coordinator)/\n│ └── assignments/\n│ ├─(...TRUNCATED) | "## Approach\n\nRender the Approve button conditionally inside `AssignmentRow` for `PENDING` rows on(...TRUNCATED) | "{showApproveButton && (\n <button\n type=\"button\"\n onClick={handleApprove}\n d(...TRUNCATED) | "1. **Would approve?** No.\n\n2. **Server/Client boundary issues**\n - `AssignmentRow` must be a C(...TRUNCATED) | "// app/(coordinator)/assignments/AssignmentRow.tsx\n'use client'\n\nimport { useOptimistic, useStat(...TRUNCATED) | "// app/(coordinator)/assignments/AssignmentRow.test.tsx\nimport { describe, it, expect, vi, beforeE(...TRUNCATED) | "```json\n{\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"You are a s(...TRUNCATED) | {"ChatTrainingUsefulness":{"reasoning":"As a training row this is mostly useful: it demonstrates a r(...TRUNCATED) |
"Next.js App Router with TypeScript. Server Components by default. Client Components only for browse(...TRUNCATED) | "Return typed action state from Server Actions so forms can show field errors and general failures w(...TRUNCATED) | Student | reject request with reason | admin detail page action panel | implement_server_action_feature | "**Ticket: Admin student detail – reject button**\n\nOn the student detail page in the admin secti(...TRUNCATED) | "## File Tree\n\n```\napp/(admin)/students/[studentId]/page.tsx\napp/(admin)/students/[studentId]/re(...TRUNCATED) | "## Approach\n\nAdd a \"Reject\" action to the admin student detail page by mirroring the existing `(...TRUNCATED) | "{open && (\n <div\n ref={dialogRef}\n role=\"dialog\"\n aria-label=\"Reject stude(...TRUNCATED) | "# Code Review: Reject Dialog Implementation\n\n## 1. Would approve? **No**\n\nThe submission is inc(...TRUNCATED) | "// app/(admin)/students/[studentId]/reject-dialog.tsx\n\"use client\";\n\nimport { useEffect, useRe(...TRUNCATED) | "for (const reason of REJECTION_REASONS) {\n const fd = buildFormData({ studentId: STUDENT_ID, reas(...TRUNCATED) | "```json\n{\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"You are a c(...TRUNCATED) | {"ChatTrainingUsefulness":{"reasoning":"Overall this is a strong training row: high-quality ticket a(...TRUNCATED) |
"Next.js App Router with TypeScript. Server Components by default. Client Components only for browse(...TRUNCATED) | Call revalidatePath or revalidateTag after successful mutations that affect rendered data. | Teacher | update metadata | form submission with inline validation errors | add_mutation_tests | "Title: Update Teacher Profile Metadata\n\nTeachers must be able to update their own display name, b(...TRUNCATED) | "## File Tree\n\n```\napp/\n└── (teacher)/\n └── profile/\n └── page.tsx(...TRUNCATED) | "## Approach\n\nWire the existing `ProfileForm` to a Server Component page that supplies pre-filled (...TRUNCATED) | "// components/ui/SubmitButton.tsx\n'use client';\n\nimport { useFormStatus } from 'react-dom';\nimp(...TRUNCATED) | "**1. Would approve?** No.\n\nThe component is in scope for this PR and functionally correct for the(...TRUNCATED) | "// components/ui/SubmitButton.tsx\n'use client';\n\nimport { useFormStatus } from 'react-dom';\nimp(...TRUNCATED) | "// lib/schemas/teacher.test.ts\nimport { describe, it, expect } from 'vitest';\nimport { teacherPro(...TRUNCATED) | "{\"messages\":[{\"role\":\"system\",\"content\":\"You are a careful Next.js App Router engineer. Wh(...TRUNCATED) | {"ChatTrainingUsefulness":{"reasoning":"The chat_training_row is INVALID JSON: the assistant message(...TRUNCATED) |
"Next.js App Router with TypeScript. Keep pages and server components focused on composition and dat(...TRUNCATED) | "Validate Server Action input at the boundary using Zod or an equivalent schema before calling data (...TRUNCATED) | Project | toggle visibility | bulk action toolbar | implement_server_action_feature | "**Ticket ENG-472:** In the project list view, add a bulk action toolbar that appears when at least (...TRUNCATED) | "## File Tree\n\n```\napp/(admin)/projects/\n├── page.tsx\n└── actions.ts\napp/(admin)/p(...TRUNCATED) | "## Approach\n\nAdd a new server action `bulkUpdateVisibilityAction` to the existing `app/(admin)/pr(...TRUNCATED) | "// app/(admin)/projects/actions.ts\n\"use server\";\n\nimport { revalidatePath } from \"next/cache\(...TRUNCATED) | "# Review: ENG-472 Bulk Visibility Action\n\n## 1. Would approve?\n**No.** The action has the right (...TRUNCATED) | "// lib/types/project.ts\nexport type Visibility = \"PUBLIC\" | \"INTERNAL\" | \"PRIVATE\";\n\nexpor(...TRUNCATED) | "// lib/server/__tests__/bulkUpdateVisibility.test.ts\n\nimport { describe, it, expect, vi, beforeEa(...TRUNCATED) | "{\"messages\":[{\"role\":\"system\",\"content\":\"You are a coding assistant that implements small (...TRUNCATED) | {"ChatTrainingUsefulness":{"reasoning":"This is a high-quality training row. It demonstrates the ful(...TRUNCATED) |
"Next.js App Router with TypeScript. Keep pages and server components focused on composition and dat(...TRUNCATED) | "Validate Server Action input at the boundary using Zod or an equivalent schema before calling data (...TRUNCATED) | Integration | invite or resend invite | dropdown menu action | refactor_client_fetch_to_server_action | "**Ticket:** Refactor Workspace Invite Actions to Use Server Handlers\n\nWhen a workspace admin clic(...TRUNCATED) | "## File Tree\n\n- `app/(admin)/workspaces/[workspaceId]/members/actions.ts`\n- `app/(admin)/workspa(...TRUNCATED) | "## Approach\n\nReplace the current client-side fetch path with the existing Server Action pattern a(...TRUNCATED) | "// lib/schemas/invites.ts\nimport { z } from \"zod\";\n\nexport const inviteMemberInput = z.object((...TRUNCATED) | "## Review\n\n**1. Would approve?** No.\n\n**2. Server/Client boundary issues**\n- The boundary itse(...TRUNCATED) | "// app/(admin)/workspaces/[workspaceId]/members/actions.ts\n\"use server\";\n\nimport { revalidateP(...TRUNCATED) | "// __tests__/actions.test.ts\nimport { describe, it, expect, vi, beforeEach } from \"vitest\";\nimp(...TRUNCATED) | "```json\n{\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"You are a c(...TRUNCATED) | {"ChatTrainingUsefulness":{"reasoning":"Mixed signal for fine-tuning. Positives: realistic Next.js A(...TRUNCATED) |
"Next.js App Router with TypeScript. Server Components by default. Client Components only for browse(...TRUNCATED) | Make loading, empty, error, and unauthorized states explicit where the feature requires them. | Classroom | archive record | confirmation button with pending state | implement_server_action_feature | "**Ticket: Archive Classroom**\n\nAs an authenticated instructor, I want to archive a classroom from(...TRUNCATED) | "## File Tree\n\n```\napp/(instructor)/classrooms/[classroomId]/page.tsx\napp/(instructor)/classroom(...TRUNCATED) | "## Approach\nAdd `archiveClassroom` as a Server Action in the existing `_actions.ts`, reusing the `(...TRUNCATED) | "// app/(instructor)/classrooms/_components/archive-button.tsx\n\"use client\";\n\nimport { useState(...TRUNCATED) | "# Review: Archive Classroom\n\n## 1. Would approve? **No**\n\nThere are several blocking issues spa(...TRUNCATED) | "// app/(instructor)/classrooms/_components/archive-button.tsx\n\"use client\";\n\nimport { useState(...TRUNCATED) | "// __tests__/lib/server/classrooms.archive.test.ts\nimport { describe, it, expect, vi, beforeEach }(...TRUNCATED) | "{\"messages\":[{\"role\":\"system\",\"content\":\"You are a Next.js (App Router) coding assistant. (...TRUNCATED) | {"ChatTrainingUsefulness":{"reasoning":"However, the chat_training_row JSON is INVALID — the assis(...TRUNCATED) |
"Next.js App Router with TypeScript. Server Components by default. Client Components only for browse(...TRUNCATED) | Make loading, empty, error, and unauthorized states explicit where the feature requires them. | Team | bulk update | bulk action toolbar | add_mutation_tests | "Title: Add bulk status update toolbar for support tickets\n\nAs a support agent, I can select multi(...TRUNCATED) | "## File Tree\n\n```\napp/(support)/tickets/page.tsx\napp/(support)/tickets/actions.ts\napp/(support(...TRUNCATED) | "## Approach\n\nWire the existing `BulkUpdateToolbar` to the existing `bulkUpdateTicketStatus` Serve(...TRUNCATED) | "<div className=\"flex items-center gap-2\">\n <div className=\"relative\">\n <button\n (...TRUNCATED) | "# Senior Review: BulkUpdateToolbar Implementation\n\n## 1. Would approve? **No**\n\n## 2. Server/Cl(...TRUNCATED) | "// lib/toast.ts\n\"use client\";\n\ntype ToastKind = \"success\" | \"error\" | \"info\";\n\nexport (...TRUNCATED) | "// __tests__/actions.bulkUpdateTicketStatus.test.ts\n\nimport { bulkUpdateTicketStatus } from \"@/a(...TRUNCATED) | "{\"messages\":[{\"role\":\"system\",\"content\":\"You implement small Next.js App Router features f(...TRUNCATED) | {"ChatTrainingUsefulness":{"reasoning":"Truncated implementation is a serious problem for training: (...TRUNCATED) |
End of preview. Expand in Data Studio
First-Dataset
Made with ❤️ using 🦥 Unsloth StudioFirst Train was generated with Unsloth Recipe Studio. It contains 92 generated records.
🚀 Quick Start
from datasets import load_dataset
# Load the main dataset
dataset = load_dataset("zolem/first-dataset", "data", split="train")
df = dataset.to_pandas()
📊 Dataset Summary
📈 Records: 92
📋 Columns: 15
✅ Completion: 46.0% (200 requested)
📋 Schema & Statistics
| Column | Type | Column Type | Unique (%) | Null (%) | Details |
|---|---|---|---|---|---|
nextjs_standard |
string |
sampler | 2 (2.2%) | 0 (0.0%) | category |
best_practice_rule |
string |
sampler | 10 (10.9%) | 0 (0.0%) | category |
resource |
string |
sampler | 12 (13.0%) | 0 (0.0%) | category |
mutation_scenario |
string |
sampler | 12 (13.0%) | 0 (0.0%) | category |
ui_pattern |
string |
sampler | 8 (8.7%) | 0 (0.0%) | category |
training_target |
string |
sampler | 4 (4.3%) | 0 (0.0%) | category |
feature_request |
string |
llm-text | 92 (100.0%) | 0 (0.0%) | Tokens: 165 out / 111 in |
existing_project_context |
string |
llm-text | 92 (100.0%) | 0 (0.0%) | Tokens: 985 out / 372 in |
implementation_plan |
string |
llm-text | 92 (100.0%) | 0 (0.0%) | Tokens: 1177 out / 1298 in |
implementation |
string |
llm-code | 92 (100.0%) | 0 (0.0%) | Tokens: 391 out / 2589 in |
self_review |
string |
llm-text | 92 (100.0%) | 0 (0.0%) | Tokens: 1709 out / 1695 in |
improved_implementation |
string |
llm-code | 92 (100.0%) | 0 (0.0%) | Tokens: 595 out / 3452 in |
tests |
string |
llm-code | 92 (100.0%) | 0 (0.0%) | Tokens: 740 out / 1897 in |
chat_training_row |
string |
llm-text | 92 (100.0%) | 0 (0.0%) | Tokens: 3876 out / 3858 in |
quality_judge_result |
dict |
llm-judge | 92 (100.0%) | 0 (0.0%) | Tokens: 1164 out / 11491 in |
⚙️ Generation Details
Generated with 15 column configuration(s):
llm-code: 3 column(s)
llm-judge: 1 column(s)
llm-text: 5 column(s)
sampler: 6 column(s)
📄 Full configuration available in builder_config.json and detailed metadata in metadata.json.
📚 Citation
If you use Data Designer in your work, please cite the project as follows:
@misc{nemo-data-designer,
author = {The NeMo Data Designer Team, NVIDIA},
title = {NeMo Data Designer: A framework for generating synthetic data from scratch or based on your own seed data},
howpublished = {\url{https://github.com/NVIDIA-NeMo/DataDesigner}},
year = 2026,
note = {GitHub Repository},
}
💡 About NeMo Data Designer
NeMo Data Designer is a general framework for generating high-quality synthetic data that goes beyond simple LLM prompting. It provides:
- Diverse data generation using statistical samplers, LLMs, or existing seed datasets
- Relationship control between fields with dependency-aware generation
- Quality validation with built-in Python, SQL, and custom local and remote validators
- LLM-as-a-judge scoring for quality assessment
- Fast iteration with preview mode before full-scale generation
For more information, visit: https://github.com/NVIDIA-NeMo/DataDesigner (pip install data-designer)
- Downloads last month
- 35