adding-persistent-event

Adds a new type of event that gets persisted to the event log. Use this when adding new kinds of write operations to the system or when adding new events to existing code.

16 stars

Best use case

adding-persistent-event is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Adds a new type of event that gets persisted to the event log. Use this when adding new kinds of write operations to the system or when adding new events to existing code.

Teams using adding-persistent-event should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/adding-persistent-event/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/development/adding-persistent-event/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/adding-persistent-event/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How adding-persistent-event Compares

Feature / Agentadding-persistent-eventStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Adds a new type of event that gets persisted to the event log. Use this when adding new kinds of write operations to the system or when adding new events to existing code.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Adding Persistent Event

## Instructions

Copy this checklist and check off items as you complete them. Note that some items are conditional:

```
Task Progress:
- [ ] Create a new sealed interface if needed.
- [ ] Create the event class.
- [ ] Create typealias(es) for the event class.
- [ ] Create a new subject payload class if needed.
- [ ] Make sure the subject is handled in EventLogPayloadTransformer.
- [ ] Add custom FieldsUpdatedAction logic to EventLogPayloadTransformer if needed.
- [ ] Add a database migration to backfill events for existing entities if needed.
- [ ] Add code to publish the new event.
- [ ] Add test(s) for any new logic in EventLogPayloadTransformer.
- [ ] Add test(s) or modify existing tests to verify code that publishes the new event.
- [ ] Generate translations of localized strings with `yarn translate`.
- [ ] Format code with `./gradlew spotlessApply`.
- [ ] Run the full test suite with `./gradlew test`.
```

## Reference

See [EVENTS.md](../../../docs/EVENTS.md) for detailed documentation including best practices.

## Additional guidelines

When implementing `FieldsUpdatedPersistentEvent.listUpdatedFields`, prefer expression syntax over block syntax for the method body, and omit the return type. For example,

    override fun listUpdatedFields() =
        listOfNotNull(createUpdatedField("example", changedFrom.example, changedTo.example))

Related Skills

adding-stacks

16
from diegosouzapw/awesome-omni-skill

Use when adding a new framework/stack to create-faster CLI tool - addresses copy-first mentality, incomplete implementations, and missing dependencies

adding-phases

16
from diegosouzapw/awesome-omni-skill

Use this skill to add planned work discovered during execution to the end of the current milestone in the roadmap. This skill appends sequential phases to the current milestone's phase list, automatically calculating the next phase number. Triggers include "add phase", "append phase", "new phase", and "create phase". This skill updates ROADMAP.md and STATE.md accordingly.

adding-localizable-strings

16
from diegosouzapw/awesome-omni-skill

Adds new human-readable strings that are translated into users' languages.

adding-a-new-app-route

16
from diegosouzapw/awesome-omni-skill

Fully wires up a new route with required boilerplate, following this repo's conventions for subapps. Use when user wants to add a new route or app or subapp or page or screen.

add-event

16
from diegosouzapw/awesome-omni-skill

Add an event/conference to your CV's relevant events list with intelligent data extraction, validation, and automatic commit generation

add-event-type

16
from diegosouzapw/awesome-omni-skill

Add a new event type to the frontend feed system with corresponding React component. Use when user mentions "new event", "add event type", "event block", "new block type", or wants to display new agent output types.

abuse-prevention

16
from diegosouzapw/awesome-omni-skill

Abuse prevention - rate limiting, moderation, bad actors. Use when fighting abuse.

1k-adding-socket-events

16
from diegosouzapw/awesome-omni-skill

Adds new WebSocket event subscriptions to OneKey. Use when implementing new socket events, handling server push messages, or adding real-time data subscriptions. Socket, WebSocket, event, subscription, push, real-time.

event-store-design

16
from diegosouzapw/awesome-omni-skill

Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.

event-sourcing-architect

16
from diegosouzapw/awesome-omni-skill

Expert in event sourcing, CQRS, and event-driven architecture patterns. Masters event store design, projection building, saga orchestration, and eventual consistency patterns. Use PROACTIVELY for e...

asyncredux-events

16
from diegosouzapw/awesome-omni-skill

Use the Event class to interact with Flutter's stateful widgets (TextField, ListView, etc.). Covers creating Event objects in state, consuming events with `context.event()`, scrolling lists, changing text fields, and the event lifecycle.

adding-animations

16
from diegosouzapw/awesome-omni-skill

Add micro-interactions and animations using Framer Motion. Use when user asks about animations, transitions, hover effects, or motion design. MANDATORY for every component.