From rkit
MCU 동시성/시스템 크리티컬 이슈 통합 분석 스킬. ConSynergy 4-Stage 파이프라인으로 ISR/DMA/동시성/스택 이슈를 분석하고 심각도×신뢰도 분류 리포트를 생성합니다. Use proactively when user mentions concurrency issues, race conditions, interrupt safety, DMA conflicts, or asks for critical code review. Triggers: mcu-critical-analysis, critical analysis, 크리티컬 분석, 동시성 분석, 동시성 감사, concurrency, concurrency audit, race condition, 레이스 컨디션, data race, deadlock, 데드락, ISR 분석, interrupt analysis, DMA 분석, 스택 분석, クリティカル分析, 并发分析, análisis de concurrencia, Konkurrenzanalyse, analisi di concorrenza Do NOT use for: 일반 코드 리뷰 (code-review 사용), MISRA 검증만 필요한 경우 (misra-c 사용), 아키텍처 설계 (fw-architect 에이전트 사용).
npx claudepluginhub solitasroh/rkit --plugin rkitThis skill is limited to using the following tools:
> Detects concurrency bugs, race conditions, and system-critical issues in MCU firmware
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Detects concurrency bugs, race conditions, and system-critical issues in MCU firmware using a 2-Layer architecture: JS extraction modules + LLM reasoning agent.
This skill orchestrates:
mcu-critical-analyzer agent for semantic analysis$ARGUMENTS is provided, use it as srcDir.c/.h files.ioc file if present (optional, enhances NVIC/DMA analysis).map file if present (optional, enhances stack analysis).su files if present (optional)Execute extraction functions from lib/mcu/ modules using Bash:
node -e "
const mcu = require('./lib/mcu');
const srcDir = '{srcDir}';
const iocPath = '{iocPath}'; // or null
// ISR extraction
const handlers = mcu.extractISRHandlers(srcDir);
const nvicConfig = mcu.extractNVICConfig(iocPath || null, srcDir);
const callGraph = mcu.extractISRCallGraph(srcDir, handlers);
const isrGlobalAccess = mcu.extractISRGlobalAccess(srcDir, handlers);
// DMA extraction
const dmaConfig = mcu.extractDMAConfig(iocPath || null, srcDir);
const dmaBuffers = mcu.extractDMABuffers(srcDir);
// Concurrency extraction
const globalVars = mcu.extractGlobalVariables(srcDir);
const syncPrimitives = mcu.extractSyncPrimitives(srcDir);
const switchPoints = mcu.extractContextSwitchPoints(srcDir);
const atomicOps = mcu.extractAtomicOps(srcDir);
// Tool bridge (optional)
const cppcheck = mcu.runCppcheckThreadsafety(srcDir);
const stackUsage = mcu.extractStackUsage('{buildDir}', '{mapPath}');
// Output summary
console.log(JSON.stringify({
handlers: handlers.length,
nvicConfig: nvicConfig.length,
dmaChannels: dmaConfig.length,
dmaBuffers: dmaBuffers.length,
globalVars: globalVars.length,
syncPrimitives: syncPrimitives.length,
switchPoints: switchPoints.length,
atomicOps: atomicOps.length,
cppcheckAvailable: cppcheck.available,
cppcheckFindings: cppcheck.findings.length,
stackAvailable: stackUsage.available,
stackEntries: stackUsage.entries.length,
}, null, 2));
"
Pass extraction results to the agent. The agent will:
docs/03-analysis/mcu-critical/{project}-{YYYYMMDD}.mdMCU Critical Analysis Complete
─────────────────────────────
Critical: N issues (M high confidence)
Warning: N issues
Info: N issues
─────────────────────────────
Report: docs/03-analysis/mcu-critical/...
Next: Review critical issues and apply fixes
# Analyze current project
/mcu-critical-analysis
# Analyze specific source directory
/mcu-critical-analysis src/
# Analyze after making changes
/mcu-critical-analysis firmware/Core/Src
This skill integrates into the PDCA cycle:
/pdca analyze)/pdca analyze for better match rate