mirror of
https://github.com/rsyslog/rsyslog.git
synced 2026-06-19 14:02:56 +02:00
4.2 KiB
4.2 KiB
AGENTS.md – rsyslog Repository Agent Guide
This file defines the high-level roadmap for AI assistants to understand and contribute to the rsyslog codebase. Technical workflows are now modularized into Skills.
AI Agent Skills
To ensure consistency and high-quality contributions, AI agents SHOULD use the following standardized skills located in .agent/skills/:
| Skill | Purpose |
|---|---|
rsyslog_build |
Environment setup and incremental parallel builds. |
rsyslog_test |
Standardized validation and debugging via diag.sh. |
rsyslog_doc |
Structured, RAG-optimized documentation and metadata. |
rsyslog_doc_dist |
Syncing documentation files in doc/Makefile.am. |
rsyslog_module |
Technical patterns for concurrency and module authoring. |
rsyslog_config |
Dual-frontend config architecture (RainerScript + YAML) and parity rules. |
rsyslog_commit |
Compliant commit messages and branching policies. |
Agent Quick Start: The "Happy Path"
Follow these three steps for a typical development task:
- Build: Use the
rsyslog_buildskill to set up and compile. - Validate: Use the
rsyslog_testskill to run relevant shell tests. - Commit: Use the
rsyslog_commitskill to format code and draft your message.- Tip: You do NOT need to re-run your build/test cycle after formatting if you already validated the code immediately before.
Repository Overview
- Primary Language: C (v8 worker model)
- Architecture: Microkernel core (
runtime/) + Loadable Plugins (plugins/) - Metadata: Every module directory contains
MODULE_METADATA.yaml. - Knowledge Base:
doc/ai/contains canonical patterns for RAG ingestion.
Container Images
- Runtime container definitions live in
packaging/docker/rsyslog. - The container Makefile default version must stay clearly non-release.
Use explicit
VERSION=...values for release-like local rehearsals and for any publish automation. - Release-tagged container images are downstream of package publishing. AI agents must not add or use release container flows that bypass the Adiscon PPA readiness check.
- Manual release flows use two fixed channels:
stablemaps8.yymm.0to20yy-mmviappa:adiscon/v8-stable, anddaily-stableusesppa:adiscon/daily-stablewith the fixed tagdaily-stable. - AI agents must not introduce release-looking fallback tags such as
2026-03as the default local container build version.
Context Discovery (Subtree Guides)
Each major subtree contains a specialized AGENTS.md that points to area-specific context and requirements:
- Documentation:
doc/AGENTS.md - Core Plugins:
plugins/AGENTS.md - Contrib Modules:
contrib/AGENTS.md - Runtime Core:
runtime/AGENTS.md - Testbench:
tests/AGENTS.md - Built-in Tools:
tools/AGENTS.md
Test Structure Rule
- For this recursive Automake tree, keep
tests/as the single recursive test-owning subtree. - It is fine to organize sources under
tests/unit/,tests/helpers/, or similar folders, but register and run those tests fromtests/Makefile.am. - Do not introduce additional recursive
tests/.../Makefile.amtest harnesses. Top-levelmake check TESTS=...propagates into every subdirectory, and multiple test-owning subdirs make targeted selection fragile.
Agent Chat Keywords
SETUP: Triggers thersyslog_buildsetup workflow.BUILD: Triggers thersyslog_buildincremental build workflow.TEST: Triggers thersyslog_testvalidation workflow.SUMMARIZE: Generates PR and commit summaries usingrsyslog_committemplates.FINISH: Final review of code and style before conclusion.
For human-facing guidelines, see CONTRIBUTING.md and DEVELOPING.md.