marketplace/bundles/pm-dev-java-cui/skills/cui-logging/SKILL.md
CUI logging standards with CuiLogger, LogRecord patterns, and DSL-style LogMessages classes
npx skillsauth add cuioss/plan-marshall cui-loggingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
REFERENCE MODE: This skill provides reference material. Load specific standards on-demand based on current task.
CUI-specific logging standards for projects using the CUI logging framework (cui-java-tools). This skill covers CuiLogger usage, LogRecord patterns, and DSL-style LogMessages classes.
Execution mode: Reference library; load standards progressively based on current logging task.
Prohibited actions:
Constraints:
This skill requires CUI library dependencies:
de.cuioss:cui-java-tools (CuiLogger, LogRecord)CRITICAL: Load these standards for any logging-related work.
Read: standards/logging-standards.md
This provides the foundational rules:
CuiLogger (SLF4J/Log4j FORBIDDEN)LogRecord for INFO/WARN/ERROR/FATAL levelsDSL Constants Pattern (load when creating LogMessages classes):
Read: standards/dsl-constants.md
Use when: Implementing DSL-style LogMessages classes with nested static classes and @UtilityClass pattern.
LogMessages Documentation (load when documenting):
Read: standards/logmessages-documentation.md
Use when: Writing AsciiDoc documentation for LogMessages classes.
Logging Maintenance (load for migration/refactoring):
Read: standards/logging-maintenance-reference.md
Use when: Large-scale logger migration, LogRecord implementation, or maintenance work.
// CORRECT
private static final CuiLogger LOGGER = new CuiLogger(MyClass.class);
// FORBIDDEN - Never use SLF4J or Log4j directly
private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);
// CORRECT - Use LogRecord for INFO and above
LOGGER.info(INFO.USER_LOGIN, username);
LOGGER.warn(WARN.RATE_LIMIT, resourceName);
LOGGER.error(exception, ERROR.OPERATION_FAILED);
// DEBUG/TRACE - Direct logging allowed (no LogRecord needed)
LOGGER.debug("Debug message: %s", value);
// CORRECT - Exception FIRST
LOGGER.error(exception, ERROR.OPERATION_FAILED);
// WRONG - Exception position
LOGGER.error(ERROR.OPERATION_FAILED, exception);
pm-dev-java:java-core - General Java patterns (no CUI dependencies)pm-dev-java-cui:cui-testing - CUI test utilities including JUL testing with LogAsserts| Standard | Purpose | |----------|---------| | logging-standards.md | Core CuiLogger, LogRecord rules, and compliance verification | | dsl-constants.md | DSL-style constant organization | | logmessages-documentation.md | AsciiDoc documentation patterns | | logging-maintenance-reference.md | Migration and maintenance |
development
Domain-owned OpenRewrite log-line finding parser for the java-cui domain — parses the
development
Domain-owned OpenRewrite marker detection for the java-cui domain — scans Java/Kotlin sources for cui-rewrite TODO markers, categorizes them by recipe, and fails the gate on any detected marker
development
Operator control surface for the marshalld build server — enrol/drop a project in the machine-global registry (the opt-in enable signal and anti-laundering wall), manage the daemon lifecycle (start, stop, drain, status, install, upgrade) version-pinned to the verified bundle copy, and inspect the daemon's per-project interaction-audit log (read-only)
tools
The tiny build-consumption client for the marshalld build server — submit a build job, bounded long-poll for its result, ping the daemon identity, and preflight registry-plus-liveness in one call; consumption only, never provisioning or enrolment