diff --git a/scripts/ralph/prd.json b/scripts/ralph/prd.json index 24b4b36..9da1282 100644 --- a/scripts/ralph/prd.json +++ b/scripts/ralph/prd.json @@ -147,14 +147,14 @@ }, { "id": "US-009", - "title": "Client CRUD UI in Projects sidebar", - "description": "As a user, I want to create, rename, and delete Clients and Sub-Clients from the Projects sidebar so that I can mirror real-world corporate structures.", + "title": "Project CRUD UI in Projects sidebar", + "description": "As a user, I want to create, rename, and delete Projects from the Projects sidebar, where each project can optionally belong to a Client or Sub-Client.", "acceptanceCriteria": [ - "'New Client' button at top of Projects sidebar uses shadcn/ui Button component; creates a top-level client via clients.create tRPC mutation", - "Each client item has a context menu using shadcn/ui DropdownMenu (triggered by right-click or kebab icon) with items: Rename, New Sub-Client, Delete", + "'New Project' button at top of Projects sidebar uses shadcn/ui Button component; creates a new project via clients.create tRPC mutation", + "Each project item has a context menu using shadcn/ui DropdownMenu (triggered by kebab icon) with items: Rename, Delete", "Rename activates an inline editable field (shadcn/ui Input) replacing the label; pressing Enter or blurring saves via clients.update", - "'New Sub-Client' calls clients.create with parentId set to the selected client's id", - "Delete shows a shadcn/ui AlertDialog confirmation; if the client has children or projects, warns the user and offers cascade-delete option", + "Delete shows a shadcn/ui AlertDialog confirmation; if the project has sub-projects, warns the user and offers cascade-delete option", + "Each project can optionally be associated with a Client or Sub-Client", "Tree updates immediately after any mutation without full page reload", "All interactive elements use shadcn/ui primitives: install via 'npx shadcn@latest add button input dropdown-menu alert-dialog' before implementing", "Typecheck passes", @@ -166,15 +166,13 @@ }, { "id": "US-010", - "title": "Projects sidebar tree view and project CRUD UI", - "description": "As a user, I want to see all clients, sub-clients, and projects in a collapsible tree and manage projects from the Projects section.", + "title": "Projects sidebar tree view and project detail routing", + "description": "As a user, I want to see all projects in a collapsible tree in the sidebar, optionally grouped by client, and manage them from the Projects section.", "acceptanceCriteria": [ - "Tree renders hierarchy: Client (folder icon, bold) → Sub-Client (folder icon) → Project (circle icon); use shadcn/ui Collapsible for expand/collapse nodes", - "Clients and sub-clients have expand/collapse chevrons that work independently", - "Search input at the top of the Projects sidebar uses shadcn/ui Input (via SidebarInput from the sidebar component); filters the tree in real-time by name", - "'+ New Project' shadcn/ui Button opens a shadcn/ui Dialog with: shadcn/ui Input for name + shadcn/ui Select (searchable) for optional client", - "Projects with no client appear under 'Internal / No Client' group", - "Project context menu uses shadcn/ui DropdownMenu with items: Edit (re-parent to different client), Archive/Unarchive, Delete", + "Tree renders projects as a flat list with folder icons; projects with a client show the client name as a grouping header; use shadcn/ui Collapsible for expand/collapse groups", + "Search input at the top of the Projects sidebar uses shadcn/ui Input; filters the tree in real-time by project name", + "Projects with no client appear under an 'Internal / No Client' group", + "Project context menu uses shadcn/ui DropdownMenu with items: Edit (assign/change client), Archive/Unarchive, Delete", "Archived projects hidden by default; a shadcn/ui Switch or toggle reveals them", "Clicking a project node loads the Project Detail panel in the right pane", "Active project highlighted in tree",