review-criticals

Audit AutoHotkey v2 Critical sections for necessity, scope, and duration.

1|Updated Jan 12, 2026
One-click install
npx skills add https://github.com/cwilliams5/Alt-Tabby --skill review-criticals
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: review-criticals
Source: https://github.com/cwilliams5/Alt-Tabby/tree/main/.claude/skills/review-criticals
Command: npx skills add https://github.com/cwilliams5/Alt-Tabby --skill review-criticals

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill identifies and analyzes "Critical" sections in AutoHotkey v2 code, which can block the main thread and introduce latency, ensuring they are necessary, appropriately scoped, and not overly broad.

Core Features & Use Cases

  • Critical Section Inventory: Lists all Critical "On" / Critical "Off" blocks within specified directories.
  • Hold Duration Analysis: Classifies the duration of each critical hold (Trivial, Short, Medium, Long).
  • Race Condition Evaluation: Assesses the necessity of each critical section by identifying potential race conditions it prevents.
  • Use Case: A developer can use this Skill to systematically review synchronization primitives in a performance-sensitive application, identifying and potentially removing or narrowing critical sections that are no longer needed, thereby improving responsiveness.

Quick Start

Begin a two-phase audit of all Critical sections in the src/core/ and src/gui/ directories.

Frequently Asked Questions about review-criticals

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I audit AutoHotkey v2 critical sections for performance bottlenecks?

You can audit AutoHotkey v2 critical sections by inventorying all Critical On and Critical Off blocks, classifying hold durations, and identifying stale or overly broad synchronization primitives that block the main thread.

Why does my AutoHotkey GUI experience latency during producer callbacks?

GUI latency in AutoHotkey often stems from overly broad critical sections blocking the main thread. Analyzing critical section scope and duration in GUI hot paths reveals whether synchronization primitives are stale or can be narrowed.

What is the best way to identify unnecessary race condition protections in AutoHotkey code?

The best way to identify unnecessary race condition protections is to evaluate each critical section by mapping the specific code paths it safeguards and assessing whether the potential race conditions it prevents still exist.

Can I narrow the scope of critical sections in specific directories without causing race conditions?

Yes, you can narrow critical section scope by conducting a two-phase audit of directories like src/core/ and src/gui/, which evaluates race condition necessity and hold duration to determine if critical sections can be safely constrained.

When should I not use critical sections in AutoHotkey v2?

You should avoid critical sections when they are classified as Long or Medium duration in trivial code paths, as they block the main thread and introduce latency without preventing substantial race conditions in producer callbacks.