Optimise Grafana app plugin bundle size using React.lazy, Suspense, and webpack code splitting. Use when the user asks to reduce plugin bundle size, optimise module.js, add code splitting, improve initial plugin load performance, split plugin chunks, lazy load plugin pages, or help implement lazy loading in a Grafana…
Generate a structured PR description from the current diff using docs/design/CONCERNS.md routing. Interviews the author for motivation before drafting. Produces canonical sections (Summary, What to look at, Why, How to verify, Breaking changes, Reversibility) tailored to change type. Outputs the draft for human…
Per-PR documentation-drift prevention. When a PR adds new code subsystems, scripts, skills, docs, plugin routes, feature flags, or changes architecture relationships, this skill produces the AGENTS.md, CLAUDE.md, and .cursor/rules/ updates needed in the same PR so agent guidance never falls behind the code. Use this…
Execute high-risk refactors of large or intertwined components per the High-Risk Refactor Guidelines wiki — investigation, phased planning, and atomic-commit execution with subagent fan-out and worktree isolation. Use when the user invokes /refactor-investigate, /refactor-plan, or /refactor-execute, or asks to…
Orchestrate the pre-release flow for grafana-pathfinder-app — bump the version in package.json, draft a CHANGELOG entry (via the changelog skill), run npm run check and npm run build, then print the exact git tag command for the user to execute. Never creates or pushes the tag itself; tagging is a one-way door the…
Locate technical debt in a subsystem or architectural component of a codebase. Use when the user runs /techdebt or asks to audit a module for smells, duplication, prop drilling, dead code, or other debt patterns. Examples: "/techdebt src/auth", "find tech debt in components/docs-panel", "audit the interactive-engine…
Prescriptive constraints for the interactive requirements and objectives system — workflow nesting limits, sequential-dependency and eligibility rules, step isolation, objective edge cases, and the procedure for adding a requirement type. Load when changing requirements or objectives behavior, or when authoring guides…
Routing index for React anti-patterns R1-R21 (hooks, effects, state, rendering, web vitals). Names every code and points at the themed file holding its Do/Don't example and fix. Load this to resolve a code, then load only the themed file you need.
How an agent applies the R1-R21 catalog — review prioritization by severity band, defaults to follow when implementing features, and the REACT annotation format for fixes. Load alongside any react-antipatterns detail file.
React anti-patterns R6 and R10 — missing error boundaries and unhandled promise rejections. Load on a review hit for either code, or when adding routes, risky component trees, or promise chains.
React anti-patterns R1, R2, R3, R8, R13, R15 — useEffect cleanup, stale closures, dependency arrays, conditional hooks, ref listener cleanup. Load on a review hit for any of these codes, or when writing hooks and effects.
React anti-patterns R9, R11, R12 — index-as-key in dynamic lists, context overuse for frequent updates, inline functions breaking memoization. Load on a review hit for any of these codes, or when tuning render performance.
React anti-patterns R4, R5, R7, R14 — state updates after unmount, direct mutation, async race conditions, derived state. Load on a review hit for any of these codes, or when writing state and data-fetching logic.
React anti-patterns R16-R21 — main-thread blocking, request waterfalls, localStorage abuse, LCP, CLS, third-party script contention. Load on a review hit for any of these codes, or when auditing production performance and reliability.
This document outlines our testing strategy for the Grafana Interactive Leraning Plugin project, focusing on incrementally building test coverage while maintaining development velocity. Our strategy specifically accounts for code quality and potential refactoring needs, especially in our AI-assisted development…