Skip to content
Back to skills

Event Correctness

ASecurity

Trigger 15 events detected in recon event_definitions.md (optional skill) - Used By breadth agents (assigned to core state or dedicated agent)

  • 281 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 27, 2026
blockchainfrontend

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add PlamenTSV/plamen --skill event-correctness --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Event Correctness?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Event Correctness
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/plamentsv-event-correctness/badge)](https://www.skillsdirectory.com/skills/plamentsv-event-correctness)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "event-correctness"
description: "Trigger 15 events detected in recon event_definitions.md (optional skill) - Used By breadth agents (assigned to core state or dedicated agent)"
---

# Skill: EVENT_CORRECTNESS

> **Trigger**: >15 events detected in recon event_definitions.md (optional skill)
> **Used By**: breadth agents (assigned to core state or dedicated agent)
> **Purpose**: Verify emitted event parameters match actual state changes

## Methodology

### Step 1: Inventory All Emit Statements
From `{SCRATCHPAD}/emit_list.md`, extract every `emit` statement with:
- Event name, parameter values passed, source location
- The state-changing operation(s) that precede the emit

### Step 2: Parameter Semantic Check
For EACH emit statement, verify:

| # | Check | Question |
|---|-------|----------|
| 1 | **Value accuracy** | Does each parameter reflect the ACTUAL post-operation state? (not a stale pre-operation value, not an input parameter that was modified before use) |
| 2 | **Index correctness** | If the event indexes an entity (ID, address, index), is the index the CORRECT entity? (not off-by-one, not a different entity's ID, not a loop variable after increment) |
| 3 | **Ordering** | Is the emit placed AFTER all state changes it describes? (not before a conditional that could change the values) |
| 4 | **Conditional coverage** | If the function has branching logic, does EVERY branch that modifies state emit the appropriate event? (no silent state changes) |
| 5 | **Parameter count** | Do the emitted parameters match the event definition? (Solidity allows emitting fewer params - missing params default to zero) |
| 6 | **Semantic correctness** | Does each emitted variable match the SEMANTIC INTENT of the parameter name? If the event parameter is named `tokensReceived`, is the emitted value the actual tokens received (output), or is it the input amount (e.g., DAI spent)? Compare the parameter name against the variable being emitted - a mismatch between name semantics and actual value is a finding even if types match. |

### Step 3: Off-Chain Impact Assessment
For events consumed by off-chain systems (indexers, frontends, monitoring):
- If event parameters are wrong → off-chain state diverges from on-chain state
- Severity: typically LOW-MEDIUM unless financial decisions depend on indexed events

## Output
Findings use IDs `[EVT-N]`. Include the emit location, the incorrect parameter, and the correct value it should emit.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.