From automation
Complete guide to building TaskGroups with @finstreet/ui. A TaskGroup displays a set of tasks a user must complete before proceeding. Covers TaskPanels, TaskActions, and the TaskGroup wrapper. Use when building, modifying, or debugging any task group in the finstreet context.
npx claudepluginhub joshuarweaver/cascade-code-languages-misc-1 --plugin finstreet-fe-claude-pluginsThis skill uses the workspace's default tool permissions.
A `TaskGroup` shows users a set of tasks they need to complete. It consists of:
action-panel.mdevals/evals.jsonevals/files/eval-1/PersonalLoanFspInquiryTaskPanel.tsxevals/files/eval-1/PersonalLoanFspRequiredDocumentsTaskPanel.tsxevals/files/eval-1/PersonalLoanFspVerifyInquiryTaskGroup.tsxevals/files/eval-2/BuildingLoanFspApplicationTaskPanel.tsxevals/files/eval-2/BuildingLoanFspContractTaskPanel.tsxevals/files/eval-2/BuildingLoanFspCustomerDetailsTaskGroup.tsxevals/files/eval-2/BuildingLoanFspDocumentsActionPanel.tsxevals/files/eval-2/BuildingLoanFspDocumentsTaskPanel.tsxtask-group.mdtask-panel.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
A TaskGroup shows users a set of tasks they need to complete. It consists of:
Each TaskPanel lives in its own folder. If the panel has actions, the ActionPanel is co-located inside that folder.
{featurePath}/taskGroups/{taskGroupName}/
├── {Product}{Role}{TaskGroupName}TaskGroup.tsx
└── taskPanels/
├── {Product}{Role}{PanelName}TaskPanel/
│ ├── index.tsx ← the TaskPanel component
│ └── {Product}{Role}{PanelName}ActionPanel.tsx ← optional, only if panel has actions
└── {Product}{Role}{PanelName2}TaskPanel/
└── index.tsx
// TaskPanel components
import {
TaskPanel,
TaskPanelHeader,
TaskPanelStatus,
TaskPanelTitle,
TaskPanelContent,
TaskPanelSummary,
} from "@finstreet/ui/components/patterns/TaskPanel";
// SubTask (for TaskPanelContent)
import { SubTask } from "@finstreet/ui/components/patterns/SubTask";
// ActionPanel components
import {
ActionPanel,
ActionPanelContent,
ActionPanelAction,
} from "@finstreet/ui/components/patterns/ActionPanel";
// Layout — used INSIDE each TaskPanel, not at TaskGroup level
import {
TasksAndActionsLayout,
TasksAndActionsLayoutArea as Area,
} from "@finstreet/ui/components/pageLayout/Layout/TasksAndActionsLayout";
// TaskGroup wrapper
import { TaskGroup } from "@finstreet/ui/components/patterns/TaskGroup";
// Common utilities
import { routes } from "@/routes";
import { useExtracted } from "next-intl";
import { VStack } from "@styled-system/jsx";
TasksAndActionsLayout goes INSIDE each TaskPanel, not around the TaskGroupTasksAndActionsLayout with tasks and actions areas — even if there are no actions (use <></> as empty placeholder)prefetch={true} and scroll={true} on TaskPanel and SubTask unless told otherwisedone / active status — only use inactive or warning if explicitly requiredvariant="invisible""use client" componentsuseExtracted from next-intl (not useTranslations)export const MyComponent = ({}: Props) => {}Props