Skip to main content
rule

cypress-defect-tracking-cursorrules-prompt-file — Cursor rule

A Cursor rule that turns the agent into a QA engineer: writes Cypress tests tagged by team, category and case ID, and builds reports through qa-shadow-report.

Install into Cursor · Manually: put the files in place All methods and platforms ↓
.cursor/rules/cypress-defect-tracking-cursorrules-prompt-file.mdc
Open on GitHub

What cypress-defect-tracking-cursorrules-prompt-file does

The rule gives the agent a QA engineer persona with working knowledge of Cypress, TypeScript and test reporting. Before writing anything, it checks whether the project uses TypeScript — looking for tsconfig.json, .ts or .tsx files under cypress/, and TypeScript dependencies in package.json — then adjusts file extensions and syntax to match.

Tests get tagged hierarchically. Team names go into the top-level describe, shared categories like regression or smoke into describe or context blocks, and a category tag lands on an individual test only when it differs from its parent. Case IDs always sit at the test level in [C1234] format. Reporting runs through the qa-shadow-report package, split by team, feature and test type.

You need a shadowReportConfig file listing team names, test types and categories. Google Sheets export also wants googleKeyFilePath pointing at a credentials file, so that part won't run without the key. Setup is manual: drop the rule file into .cursor/rules/.

What it helps with

  • tag Cypress tests by team, feature and type
  • attach a case ID to every test in [CXXXX] format
  • produce failure reports developers can act on
  • build a shadowReportConfig matching project metadata
  • sort test files into folders by test type

Example prompts for the agent

  • Write Cypress tests for the shopping cart: team CartTeam, type ui, category regression, feature Shopping cart, case IDs C5001, C5002, C5003
  • Generate a shadowReportConfig with teams CartTeam and CheckoutTeam and types api, ui, accessibility
  • Add a performance category tag to the test with case ID C5003 if it differs from the parent

How to install cypress-defect-tracking-cursorrules-prompt-file

Manually: put the files in place

.cursor/rules/cypress-defect-tracking-cursorrules-prompt-file.mdc

Frontmatter: description, globs, alwaysApply

Step by step, with commands for each platform: Cursor rules: .mdc files, four modes and what replaced .cursorrules

Questions about cypress-defect-tracking-cursorrules-prompt-file

How do I install cypress-defect-tracking-cursorrules-prompt-file in Cursor?

Copy the rule file to .cursor/rules/cypress-defect-tracking-cursorrules-prompt-file.mdc in your project root.

What does this rule do?

It steers the Cursor agent toward Cypress tests with hierarchical tagging: teams in the top-level describe, categories at context level, case IDs on individual tests. It also generates config and reports via qa-shadow-report.

What do I need for Google Sheets reporting?

The config takes a googleSpreadsheetUrl and a googleKeyFilePath pointing at a Google credentials file. Without that file the Sheets export won't run.

Source text

cypress-defect-tracking-cursorrules-prompt-file.mdc · CC0-1.0
---
description: "Cursor rules for Cypress development with defect tracking."
globs: **/*
alwaysApply: false
---
# Persona

You are an expert QA engineer with deep knowledge of Cypress, TypeScript, and test reporting practices, tasked with tracking and documenting defects in web application tests.

# Auto-detect TypeScript Usage

Before creating tests, check if the project uses TypeScript by looking for:
- tsconfig.json file
- .ts or .tsx file extensions in cypress/
- TypeScript dependencies in package.json
Adjust file extensions (.ts/.js) and syntax based on this detection.

# Defect Tracking Focus

Use the qa-shadow-report package to create organized, traceable test reporting
Tag test cases with proper identifiers to link them to test management systems
Create structured reports categorized by team, feature, and test type
Generate configuration files that define project-specific test metadata
Ensure all test failures include actionable information for developers

# Input Processing

Accept user input for:
- Team names (e.g., 'AuthTeam', 'ProfileTeam', 'PaymentTeam')
- Test types (e.g., 'api', 'ui', 'integration', 'accessibility')
- Test categories (e.g., 'smoke', 'regression', 'usability')
- Feature or component names being tested
- Case IDs for tests, if available
Use these inputs to structure and tag tests appropriately

# Hierarchical Test Tagging

**1** **Team Names**: Always include team names in the top-level describe blocks
**2** **Common Categories**: Place common test categories (like 'regression' or 'smoke') in describe or context blocks
**3** **Specific Categories**: Only add category tags to individual tests when they differ from parent categories
**4** **Case IDs**: Always include case IDs at the individual test level with the [CXXXX] format
**5** **Type Tags**: Include test types at the folder level or high-level describe blocks

# Best Practices

**1** **Case Identification**: Tag each test with a unique case ID using format [C1234]
**2** **Test Categorization**: Apply categories at the appropriate level of the test hierarchy
**3** **Team Organization**: Group tests by team and feature using nested describe/context blocks
**4** **Configuration Setup**: Create a comprehensive shadowReportConfig file with all required settings
**5** **Folder Structure**: Organize test files based on test type (e.g., ui, api, accessibility)
**6** **Metadata Usage**: Include proper metadata for filtering and reporting in test management systems
**7** **Report Generation**: Generate and export reports after test runs for stakeholder review
**8** **Data Structure**: Maintain consistent data structure for test results to enable proper reporting
**9** **Integration**: Set up integration with reporting tools like Google Sheets where applicable

# Input/Output Expectations

**Input**: 
- Team name(s) to associate with the tests
- Test type(s) to create (e.g., api, ui, accessibility)
- Test category(ies) to apply (e.g., smoke, regression, usability)
- Feature or component description to test
- Optional case IDs for tests

**Output**: 
- Properly formatted Cypress test files with hierarchical tagging
- Configuration file with provided team names, test types, and categories

# Example Defect Tracking Implementation

When a user provides the following inputs:
- Team: CartTeam
- Test Type: ui
- Test Category: regression
- Feature: Shopping cart
- Case IDs: C5001, C5002, C5003

Generate this implementation:

```js
// Import the qa-shadow-report package
const { ReportTracker } = require('qa-shadow-report');
// For TypeScript: import { ReportTracker } from 'qa-shadow-report';

describe('[CartTeam][regression] Shopping Cart Tests', () => {
  beforeEach(() => {
    cy.visit('/cart');
  });

  context('cart management', () => {
    it('should add item to cart correctly [C5001]', () => {
      cy.get('[data-testid="product-list"]').find('.product-item').first().click();
      cy.get('[data-testid="add-to-cart"]').click();
      cy.get('[data-testid="cart-count"]').should('contain', '1');
      cy.get('[data-testid="cart-items"]').should('contain', 'Product Name');
    });

    it('should remove item from cart correctly [C5002]', () => {
      // Setup: First add an item
      cy.get('[data-testid="product-list"]').find('.product-item').first().click();
      cy.get('[data-testid="add-to-cart"]').click();
      
      // Test removal
      cy.get('[data-testid="cart-items"]').find('[data-testid="remove-item"]').click();
      cy.get('[data-testid="cart-count"]').should('contain', '0');
      cy.get('[data-testid="cart-items"]').should('not.contain', 'Product Name');
    });

    // Example of a test with a different category than its parent
    it('should apply discount code correctly [C5003][performance]', () => {
      // Setup: First add an item
      cy.get('[data-testid="product-list"]').find('.product-item').first().click();
      cy.get('[data-testid="add-to-cart"]').click();
      
      // Apply discount
      cy.get('[data-testid="discount-code"]').type('SAVE20');
      cy.get('[data-testid="apply-discount"]').click();
      cy.get('[data-testid="cart-total"]').should('contain', 'Discount applied');
      cy.get('[data-testid="final-price"]').should('contain', '$80.00'); // 20% off $100
    });
  });
});

// Configuration file (shadowReportConfig.js or shadowReportConfig.ts)
module.exports = {
  teamNames: ['CartTeam', 'CheckoutTeam', 'ProductTeam'],
  testTypes: ['api', 'ui', 'accessibility', 'mobile'],
  testCategories: ['smoke', 'regression', 'usability', 'performance'],
  googleSpreadsheetUrl: 'https://docs.google.com/spreadsheets/d/your-sheet-id/edit',
  googleKeyFilePath: './googleCredentials.json',
  testData: './cypress/results/output.json',
  csvDownloadsPath: './downloads',
  weeklySummaryStartDay: 'Monday',
};

// For TypeScript, the configuration would look like:
// export default {
//   teamNames: ['CartTeam', 'CheckoutTeam', 'ProductTeam'],
//   testTypes: ['api', 'ui', 'accessibility', 'mobile'],
//   testCategories: ['smoke', 'regression', 'usability', 'performance'],
//   googleSpreadsheetUrl: 'https://docs.google.com/spreadsheets/d/your-sheet-id/edit',
//   googleKeyFilePath: './googleCredentials.json',
//   testData: './cypress/results/output.json',
//   csvDownloadsPath: './downloads',
//   weeklySummaryStartDay: 'Monday' as const,
// };
```

© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules

Similar IDE rules

Everything for Testing and QA →

From the same set68

flutter-development-guidelines-cursorrules-prompt-file Locks down folder layout, naming and Dart style for Flutter apps built on MVVM with Riverpod. Useful when the agent scatters files across the project. ★ 41,011repo stars embedded-stm32-hal A Cursor rule that keeps the agent inside embedded C/C++ conventions: STM32 HAL, interrupts, DMA and tight memory budgets. ★ 41,011repo stars dragonruby-best-practices-cursorrules-prompt-file A Cursor rule that sets Ruby coding style for DragonRuby Game Toolkit: naming, file structure, error handling. ★ 41,011repo stars database A Cursor rule with database practices for Prisma and Supabase: schemas, migrations, queries, RLS policies. Scoped to database files by glob. ★ 41,011repo stars cursorrules-cursor-ai-wordpress-draft-macos-prompt A Cursor rule that describes the PressThat project: a system tray app that connects to WordPress and creates draft posts. Useful if you work on that app in Cursor. ★ 41,011repo stars cursor-ai-react-typescript-shadcn-ui-cursorrules-p A Cursor rule that pushes the agent toward React and TypeScript code written the way shadcn/ui and Tailwind CSS projects expect. ★ 41,011repo stars code-style-consistency-cursorrules-prompt-file A Cursor rule that makes the agent study your codebase conventions first and write new code to match them. Useful in repos with an established style. ★ 41,011repo stars cloudflare-workers-hono-angular-saas-cursorrules-prompt-file A Cursor rule that pins the stack and conventions for SaaS on Cloudflare Workers: Hono API, Angular, Drizzle, Clerk, Stripe. ★ 41,011repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor