RS

rsyslog-module

Provides standards and boilerplate for developing rsyslog plugins while ensuring concurrency and state safety.

Install

mkdir -p .claude/skills/rsyslog-module && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5905" && unzip -o skill.zip -d .claude/skills/rsyslog-module && rm skill.zip

Installs to .claude/skills/rsyslog-module

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Encodes technical requirements for rsyslog modules, including concurrency, metadata, and initialization.
104 charsno explicit “when” trigger
Advanced

Key capabilities

  • Enforces concurrency and locking patterns
  • Initializes module lifecycle entry points
  • Verifies metadata consistency
  • Applies state management rules

How it works

It injects standard C boilerplates and enforces concurrency checks by applying lifecycle macro definitions and mutex requirements.

Inputs & outputs

You give it
Module implementation plan
You get back
Boilerplate module code with concurrency protections

When to use rsyslog-module

  • Authoring new rsyslog output modules
  • Implementing mutex protection for shared state
  • Synchronizing module metadata with rsyslog build systems
  • Defining module lifecycle entry points

About this skill

rsyslog_module

This skill captures the essential technical patterns for authoring and maintaining rsyslog modules (plugins/contrib).

Quick Start

  1. Locking: Follow the "Belt and Suspenders" rule (assert() + if).
  2. State: pData (shared) vs WID (per-worker).
  3. Boilerplate: Use BEGINmodInit, CODESTARTmodInit, etc.

Detailed Instructions

1. Concurrency & Locking

Rsyslog v8 has a high-concurrency worker model.

  • Shared State (pData): Mutable state shared across workers MUST be protected by a mutex in pData.
  • Per-Worker State (WID): Never share wrkrInstanceData_t.
  • Belt and Suspenders:
    assert(pData != NULL);
    if (pData == NULL) {
        // Handle error gracefully
    }
    
  • Headers: Every output module should have a "Concurrency & Locking" header block.

2. Module Lifecycle

Every module must implement and register standard entry points:

  • modInit(): Initialize static data and registry interfaces.
  • modExit(): Finalize and cleanup.
  • beginTransaction() / commitTransaction(): For efficient batch-based output.

3. Metadata Consistency

  • Location: MODULE_METADATA.yaml in the module directory.
  • Synchronization: Keep doc/ai/module_map.yaml in sync with locking and concurrency changes.

4. Build Configuration

  • Update plugins/Makefile.am and configure.ac when adding new modules.
  • Test Registration: Follow the "Define at Top, Distribute Unconditionally, Register Conditionally" pattern in tests/Makefile.am. See the rsyslog_test skill for details. This is critical for make distcheck validity.
  • Use MODULE_TYPE(eMOD_OUT) and other macros from runtime/module-template.h.

Related Skills

  • rsyslog_build: For compiling the module.
  • rsyslog_test: For creating module-specific smoke tests.
  • rsyslog_doc: For documentation requirements.

When not to use it

  • High-level application logic development
  • Non-C rsyslog module projects

Prerequisites

C development environmentRsyslog runtime headers

Limitations

  • Specific to C-based rsyslog modules
  • Requires manual state definition

How it compares

It mandates architectural constraints (e.g., locking) specific to the rsyslog runtime worker model.

Compared to similar skills

rsyslog-module side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
rsyslog-module (this skill)16moNo flagsAdvanced
unity-developer1424moNo flagsAdvanced
code-coverage-with-gcov154moReviewIntermediate
unity-mcp-orchestrator174moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

unity-developer

sickn33

Build Unity games with optimized C# scripts, efficient rendering, and proper asset management. Masters Unity 6 LTS, URP/HDRP pipelines, and cross-platform deployment. Handles gameplay systems, UI implementation, and platform optimization. Use PROACTIVELY for Unity performance issues, game mechanics, or cross-platform builds.

142357

code-coverage-with-gcov

gadievron

Add gcov code coverage instrumentation to C/C++ projects

1599

unity-mcp-orchestrator

CoplayDev

Orchestrate Unity Editor via MCP (Model Context Protocol) tools and resources. Use when working with Unity projects through MCP for Unity - creating/modifying GameObjects, editing scripts, managing scenes, running tests, or any Unity Editor automation. Provides best practices, tool schemas, and workflow patterns for effective Unity-MCP integration.

1795

arm-cortex-expert

sickn33

Senior embedded software engineer specializing in firmware and driver development for ARM Cortex-M microcontrollers (Teensy, STM32, nRF52, SAMD). Decades of experience writing reliable, optimized, and maintainable embedded code with deep expertise in memory barriers, DMA/cache coherency, interrupt-driven I/O, and peripheral drivers.

2975

at-dispatch-v2

pytorch

Convert PyTorch AT_DISPATCH macros to AT_DISPATCH_V2 format in ATen C++ code. Use when porting AT_DISPATCH_ALL_TYPES_AND*, AT_DISPATCH_FLOATING_TYPES*, or other dispatch macros to the new v2 API. For ATen kernel files, CUDA kernels, and native operator implementations.

591

static-analysis

gmh5225

Expertise in LLVM-based static analysis including dataflow analysis, pointer analysis, taint tracking, and program verification. Use this skill when implementing security scanners, bug finders, code quality tools, or performing program analysis research.

518

Search skills

Search the agent skills registry