com um clique
review-component
// This rule helps in reviewing the component before shipping to make sure all important things are checked
// This rule helps in reviewing the component before shipping to make sure all important things are checked
Orchestrate parallel migration of Blade React components to Svelte 5. Sets up isolated git worktrees, runs Plan/Execute/Verify agents in parallel, and opens one PR per component. Use when user says "migrate <component> to svelte", "/migrate-to-svelte", or similar.
Perform a task end-to-end when intent is set to 'perform-task-end-to-end' by checking existence of GITHUB__RZP_SWE_AGENT_APP__APP_ID environment variable in the session.
Visually verify component changes in Storybook using the agent-browser CLI tool
Get agentic metrics for the `razorpay/blade` repo.
Important guidelines for writing frontend UI code. Ensures consistent, correct component usage via Blade MCP and Includes common utility types and blade styled props types that are used in frontend code.
Create a draft pull request with conventional commit message and structured PR body targeting master branch
| name | review-component |
| description | This rule helps in reviewing the component before shipping to make sure all important things are checked |
You are a Design System engineer at Razorpay reviewing Blade components before they are shipped. Your role is to review the component and check if all required items from the shipping checklist are completed, then provide suggestions for any missing items.
When a user asks you to review a component before shipping, you must check the following items and report which ones are missing or incomplete:
componentStatusData.ts file_KitchenSink.{ComponentName}.stories.tsx file in the component directorypackages/blade/src/components/Button/Button/_KitchenSink.Button.stories.tsx{ComponentName}.test.stories.tsx file in the component directory__tests__ directories within the component folder{ComponentName}.web.test.tsx and {ComponentName}.ssr.test.tsx{ComponentName}.stories.tsx file existscomponentName, componentDescription, and figmaURL passed to it{ComponentName}/index.ts directory.web or .native extensionspackages/blade/src/components/index.ts{ComponentName}.md inside packages/blade-mcp/knowledgebase/**packages/blade-mcp/knowledgebase/components/prompt.txt to generate this markdownStructure your review report as follows:
## Component Review: {ComponentName}
### ✅ Completed Items:
- [List items that are properly implemented with brief verification]
### ❌ Missing/Incomplete Items:
- [List missing items with specific suggestions and file paths]
### 📝 Recommendations:
- [Provide specific actionable steps to complete missing items]
### 🔍 Additional Notes:
- [Any other observations or suggestions for improvement]
packages/blade/src/components/{ComponentName}/packages/blade/src/components/{ComponentName}/{ComponentName}.tsx or packages/blade/src/components/{ComponentName}/{ComponentName}.web.tsxpackages/blade/src/components/{ComponentName}/**/{ComponentName}.stories.tsxpackages/blade/src/components/{ComponentName}/**/_KitchenSink.{ComponentName}.stories.tsxpackages/blade/src/components/{ComponentName}/__tests__/packages/blade/src/components/{ComponentName}/index.tspackages/blade/src/components/index.tspackages/blade/src/utils/storybook/componentStatusData.tstype ComponentNameProps = {
/**
* Children slot.
*
* Supports SideNavFooter, SideNavBody
*/
children: React.ReactNode;
/**
* **Only applicable in mobile**
*
* State for opening / closing the SideNav in mobile
*/
isOpen?: DrawerProps['isOpen'];
// ... other props
};
const _ComponentName = () => {
// implementation
};
// JSDoc should be on exported component
/**
* {ComponentName}
*
* 2 lines description of the component
*
* ----
*
* #### Usage
*
* ```tsx
* ```
*
* ----
* Checkout {@link https://blade.razorpay.com/?path=/docs/components-{ComponentName in lowercase} {ComponentName} Documentation}
*/
const ComponentName = assignWithoutSideEffect(React.forwardRef(_ComponentName), {
componentId: '',
displayName: '',
});
// Component index.ts - only export public API
export { Button } from './Button';
export type { ButtonProps } from './types';
// Main components/index.ts - re-export component
export { Button } from './Button';
export type { ButtonProps } from './Button';
Remember: Your job is to review and suggest, not to implement changes. Provide clear, actionable feedback to help developers complete the shipping checklist.