mcpbeat Sign in

N8n:reproduce Bug Agent Skill

Reproduce a bug from a Linear ticket with a failing test. Expects the full ticket context (title, description, comments) to be provided as input.

1.3k tokens
context cost
SKILL.md, read when the skill is used
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
199 283
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/n8n-io/n8n --skill n8n:reproduce-bug

The instruction itself

16 sections, as written by the author

Bug Reproduction Framework

Given a Linear ticket context ($ARGUMENTS), systematically reproduce the bug

with a failing regression test.

Step 1: Parse Signals

Extract the following from the provided ticket context:

  • Error message / stack trace (if provided)
  • Reproduction steps (if provided)
  • Workflow JSON (if attached)
  • Affected area (node, execution engine, editor, API, config, etc.)
  • Version where it broke / last working version

Step 2: Route to Test Strategy

Based on the affected area, pick the test layer and pattern:

| Area | Test Layer | Pattern | Key Location |

|------|-----------|---------|--------------|

| Node operation | Vitest unit | NodeTestHarness + nock | packages/nodes-base/nodes/*/test/ |

| Node credential | Vitest unit | vitest-mock-extended | packages/nodes-base/nodes/*/test/ |

| Trigger webhook | Vitest unit | mock IHookFunctions + vi.mock GenericFunctions | packages/nodes-base/nodes/*/test/ |

| Binary data | Vitest unit | NodeTestHarness assertBinaryData | packages/core/nodes-testing/ |

| Execution engine | Vitest integration | WorkflowRunner + DI container | packages/cli/src/__tests__/ |

| CLI / API | Vitest integration | setupTestServer + supertest | packages/cli/test/integration/ |

| Config | Vitest unit | GlobalConfig + Container | packages/@n8n/config/src/configs/__tests__/ |

| Editor UI | Vitest | Vue Test Utils + Pinia | packages/frontend/editor-ui/src/**/__tests__/ |

| E2E / Canvas | Playwright | Test containers + composables | packages/testing/playwright/ |

Step 3: Locate Source Files

Find the source code for the affected area:

  • Search for the node/service/component mentioned in the ticket
  • Find the GenericFunctions file (common bug location for nodes)
  • Check for existing test files in the same area
  • Look at recent git history on affected files (git log --oneline -10 -- <path>)

Step 4: Trace the Code Path

Read the source code and trace the execution path that triggers the bug:

  • Follow the call chain from entry point to the failure
  • Identify the specific line(s) where the bug manifests
  • Note any error handling (or lack thereof) around the bug

Step 5: Form Hypothesis

State a clear, testable hypothesis:

  • "When [input/condition], the code does [wrong thing] because [root cause]"
  • Identify the exact line(s) that need to change
  • Predict what the test output will show

Step 6: Find Test Patterns

Look for existing tests in the same area:

  • Check test/ directories near the affected code
  • Identify which mock/setup patterns they use
  • Use the same patterns for consistency
  • If no tests exist, find the closest similar node/service tests as a template

Step 7: Write Failing Test

Write a regression test that:

  • Uses the patterns found in Step 6
  • Targets the specific hypothesis from Step 5
  • Includes a comment referencing the ticket ID
  • Asserts the CORRECT behavior (test will fail on current code)
  • Also includes a "happy path" test to prove the setup works

Step 8: Run and Score

Run the test from the package directory (e.g., cd packages/nodes-base && pnpm test <file>).

Classify the result:

| Confidence | Criteria | Output |

|------------|----------|--------|

| CONFIRMED | Test fails consistently, failure matches hypothesis | Reproduction Report |

| LIKELY | Test fails but failure mode differs slightly | Report + caveat |

| UNCONFIRMED | Cannot trigger the failure | Report: what was tried |

| SKIPPED | Hit a hard bailout trigger | Report: why skipped |

| ALREADY_FIXED | Bug no longer reproduces on current code | Report: when fixed |

Step 9: Iterate or Bail

If UNCONFIRMED after first attempt:

  • Revisit hypothesis — re-read the code path
  • Try a different test approach or layer
  • Maximum 3 attempts before declaring UNCONFIRMED

Hard bailout triggers (stop immediately):

  • Requires real third-party API credentials
  • Race condition / timing-dependent
  • Requires specific cloud/enterprise infrastructure
  • Requires manual UI interaction that can't be scripted

Output: Reproduction Report

Present findings in this format:


Ticket: [ID] — [title]

Confidence: [CONFIRMED | LIKELY | UNCONFIRMED | SKIPPED | ALREADY_FIXED]

Root Cause

[1-2 sentences explaining the bug mechanism]

Location

| File | Lines | Issue |

|------|-------|-------|

| path/to/file.ts | XX-YY | Description of the problem |

Failing Test

path/to/test/file.test.ts — X/Y tests fail:

  • test name — [failure description]

Fix Hint

[Pseudocode or description of the fix approach]


Important

  • DO NOT fix the bug — only reproduce it with a failing test
  • Leave test files in place as evidence (don't commit unless asked)
  • Run tests from the package directory (e.g., pushd packages/nodes-base && pnpm test <file> && popd)
  • Always redirect build output: pnpm build > build.log 2>&1
  • DO NOT look at existing fix PRs — the goal is to reproduce from signals alone

Other skills for the same job

different authors, same section of the catalogue
Webapp Testing
by anthropics
vendor ×15

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

978 tokens scripts
Finishing A Development Branch
by ZhanlinCui
×9

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup

1.1k tokens
Test Driven Development
by w95
×9

Use when implementing any feature or bugfix, before writing implementation code

2.5k tokens
Systematic Debugging
by ratacat
×9

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes

2.5k tokens scripts
Verification Before Completion
by ZhanlinCui
×8

Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always

1.1k tokens
Backtest Expert
by BaggaT236
×3

Expert guidance for systematic backtesting of trading strategies. Use when developing, testing, stress-testing, or validating quantitative trading strategies. Covers "beating ideas to death" methodology, parameter robustness testing, slippage modeling, bias prevention, and interpreting backtest results. Applicable when user asks about backtesting, strategy validation, robustness testing, avoiding overfitting, or systematic trading development.

2.2k tokens scripts
Adaptyv
by christophacham
×3

Cloud laboratory platform for automated protein testing and validation. Use when designing proteins and needing experimental validation including binding assays, expression testing, thermostability measurements, enzyme activity assays, or protein sequence optimization. Also use for submitting experiments via API, tracking experiment status, downloading results, optimizing protein sequences for better expression using computational tools (NetSolP, SoluProt, SolubleMPNN, ESM), or managing protein design workflows with wet-lab validation.

1.1k tokens
Aeon
by christophacham
×3

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

2.9k tokens

How to use it

Copy the folder

Take n8n-io/n8n:reproduce-bug from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.