agent-qa-browser-regre…
Use when verifying an existing browser journey with agent-qa against a running Spring Boot application. Covers target selection,…
Use when designing or reviewing security audit events, their redaction, durable storage, integrity, or failure policies in Spring Boot. General metrics and debugging logs belong to production observability rather than this security-event workflow.
Claude Code
$ npx -y skills add rrezartprebreza/spring-boot-skills --skill security-audit-logging --agent claude-code
Codex
$ npx skills add rrezartprebreza/spring-boot-skills --skill security-audit-logging -a codex -y
Cursor
$ npx skills add rrezartprebreza/spring-boot-skills --skill security-audit-logging -a cursor -y
Gemini CLI
$ npx skills add rrezartprebreza/spring-boot-skills --skill security-audit-logging -a gemini-cli -y
GitHub Copilot
$ npx skills add rrezartprebreza/spring-boot-skills --skill security-audit-logging -a github-copilot -y
OpenCode
$ npx skills add rrezartprebreza/spring-boot-skills --skill security-audit-logging -a opencode -y
Windsurf
$ npx skills add rrezartprebreza/spring-boot-skills --skill security-audit-logging -a windsurf -y
name: security-audit-logging description: > Use when designing or reviewing security audit events, their redaction, durable storage, integrity, or failure policies in Spring Boot. General metrics and debugging logs belong to production observability rather than this security-event workflow.
Target Spring Boot 3 with Spring Framework 6 and Spring Security 6. Check the selected release's Actuator audit APIs before wiring listeners. The shipped Java 17 record has no Boot/Jackson dependency and is shared across both trees.
Choose events needed for the requested security or business requirement: authentication decisions, access denial, privilege changes, sensitive exports and administrative actions. Separate attempted, denied, successful and failed operations. Do not log SUCCESS before the authoritative transaction commits.
Prefer typed fields: event ID, UTC time, verified actor ID, tenant ID, action, target ID, outcome and server-generated correlation ID. Unauthenticated events may have no actor; do not mislabel a supplied username as verified identity. Record only identifiers needed for the investigation, with controlled access and retention.
[SecurityAuditRecord](templates/SecurityAuditRecord.java) demonstrates bounded typed fields and a restricted correlation identifier. It intentionally has no arbitrary message, headers, token, request body or exception field. This is an event contract, not a durable audit sink. Use a structured serializer, never concatenate JSON or interpolate untrusted text into lines. The sample assumes tenant-scoped operations and UUID identities. Adapt those types and the success invariant to the application's actual identity model; do not invent tenants for a single-tenant system. Correlation IDs must be server-generated, not arbitrary caller text.
private documents and full configuration out of audit records. Sanitize controls and bound any separately approved free-text fields. Hashing arbitrary identifiers is not automatic anonymization.
Authentication events alone do not capture every business authorization decision.
transaction. Deliver idempotently by event ID; handle duplicate delivery, backpressure, retention and retries. An after-commit listener can still lose events on process failure.
a privileged mutation; optional read-event loss may instead trigger bounded buffering and alerts. Do not globally fail every request or silently drop required audit events.
Define export controls, clock synchronization, access auditing and integrity checks. Append-only configuration alone is not proof of tamper resistance.
Collection and external export require approved scope and a redacted handoff.
Exercise malformed/oversized correlation IDs, missing fields, all outcomes and stable event IDs. The local fixture tests record construction, not a production logging backend. Application integration tests must also prove rollback emits no committed-success event, outbox retry deduplicates, and sink failures follow the selected policy.
Provide a field inventory, access/retention policy, delivery semantics, failure matrix and tests run. Label evidence **confirmed**, **suspected**, or **not verified** rather than claiming compliance from the mere presence of log statements. See [good design](examples/good-audit.md) and [bad design](examples/bad-audit.md).
Production-grade Claude Code and Codex skills for Spring Boot developers
Use when verifying an existing browser journey with agent-qa against a running Spring Boot application. Covers target selection,…
Use when adding Spring AI-specific model observations, token usage, latency, externally configured cost attribution, advisor…
Use when versioning Spring MVC or WebFlux APIs in Spring Boot 3 / Spring Framework 6. Covers explicit URL, header, and media-type…
Use when adding or debugging Spring @Async work, executor saturation, asynchronous failures or lost thread context. Not a…
Use when introducing or correcting grouped Spring Boot configuration, typed property binding, validation, profiles or secret…
Use when packaging a Spring Boot 3 application as an OCI image or GraalVM native executable. Covers buildpacks, layered images,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.