Trigger 15 events detected in recon event_definitions.md (optional skill) - Used By breadth agents (assigned to core state or dedicated agent)
Scanned 5/27/2026
Install via CLI
openskills install PlamenTSV/plamen---
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.
No comments yet. Be the first to comment!