Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add PlamenTSV/plamen --skill event-completenessgit clone --depth 1 https://github.com/PlamenTSV/plamenWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/plamentsv/plamen/event-completeness)<a href="https://agentmods.dev/skills/plamentsv/plamen/event-completeness"><img src="https://agentmods.dev/badge/skills/plamentsv/plamen/event-completeness/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/plamentsv/plamen/event-completeness"><img src="https://agentmods.dev/badge/skills/plamentsv/plamen/event-completeness.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00040 | $0.01128 |
| Opus 5 | $0.00020 | $0.00564 |
| Sonnet 5 | $0.00008 | $0.00226 |
| Haiku 4.5 | $0.00004 | $0.00113 |
Grade A, and why
event-completeness scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 106 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Niche Agent: Event Completeness
Trigger:
MISSING_EVENTflag intemplate_recommendations.md(recon detects admin/state-changing functions without events) Agent Type:general-purpose(standalone niche agent, NOT injected into another agent) Budget: 1 depth budget slot in Phase 4b iteration 1 Finding prefix:[EVT-N]Added in: v1.0
When This Agent Spawns
Recon Agent 3 (Patterns + Surface + Templates) produces setter_list.md and emit_list.md.
If setter_list.md contains ANY entry flagged MISSING EVENT or emit_list.md lists functions with "No emit found" for state-changing operations, recon sets MISSING_EVENT flag in the BINDING MANIFEST.
The orchestrator spawns this agent in Phase 4b iteration 1 alongside the 8 standard agents (counts as 1 budget slot).
Agent Prompt Template
Task(subagent_type="general-purpose", prompt="
You are the Event Completeness Agent. You audit event emission coverage for all state-changing functions.
## Your Inputs
Read:
- {SCRATCHPAD}/setter_list.md (admin setters with event flags)
- {SCRATCHPAD}/emit_list.md (function-to-event mapping)
- {SCRATCHPAD}/event_definitions.md (declared events)
- {SCRATCHPAD}/function_list.md (all functions)
- Source files in scope
## Processing Protocol (MANDATORY)
For each analysis step below, execute in order:
1. **ENUMERATE targets**: List every entity the step applies to (functions, variables, call sites) as a numbered list before analysis begins.
2. **PROCESS exhaustively**: Analyze each numbered entity. Mark each "DONE" or "N/A (reason)" before moving to the next.
3. **COVERAGE GATE**: Count enumerated vs processed. If any entity lacks a marker, process it before proceeding to the next step.
## Your Task
### STEP 1: Build Event Coverage Matrix
For EVERY function that modifies storage state (not just admin setters):
| Function | Contract | Modifies State? | Has Event? | Event Params Match State Changes? | Gap? |
|----------|----------|-----------------|------------|----------------------------------|------|
Sources: setter_list.md (pre-flagged), function_list.md (complete list).
For each function, read the source to verify state changes and event emissions.
### STEP 2: Parameter Accuracy
For each function that DOES emit an event:
- Does the event include ALL changed state variables as parameters?
- Are indexed parameters the ones users/indexers need to filter on?
- Are parameter values emitted BEFORE or AFTER the state change? (should be after)
- Are there emit statements inside conditional branches that could be skipped?
- Does each parameter reflect the CORRECT value? (e.g., output amount not input amount; storage index not loop variable; final state not intermediate value)
### STEP 3: Missing Event Findings
For each gap in the matrix:
- Admin/owner state-changing function without event → finding (severity: Low minimum, Medium if monitoring-critical)
- Public state-changing function without event → finding (severity: Low if view-only impact, Medium if indexer-dependent)
- Event with wrong/missing parameters → finding (severity: Low)
- Event emitted before state change (stale values) → finding (severity: Low)
### STEP 4: Cross-Contract Event Gaps
For multi-contract protocols:
- Does Contract A emit events for state changes that Contract B depends on?
- Are there cross-contract flows where the initiating contract emits but the receiving contract doesn't (or vice versa)?
**Coverage assertion**: Before returning, verify every entity enumerated under each step has been processed. Report enumerated vs analyzed counts in your return message.
## Output Format
Use standard finding format with [EVT-N] IDs.
## Chain Summary (MANDATORY)
| Finding ID | Location | Root Cause (1-line) | Verdict | Severity | Precondition Type | Postcondition Type |
Write to {SCRATCHPAD}/niche_event_findings.md
Return: 'DONE: {N} event coverage gaps found across {M} functions analyzed'
")
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 106 lines · 40 tokens per session scan A 4946773a67be
event-completeness is a skill published in the GitHub repository PlamenTSV/plamen (295 stars, last pushed 2d ago), licensed MIT. It adds 40 tokens to every session and 1,128 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
analyzing-ethereum-smart-contract-vulnerabilities
Perform static and symbolic analysis of Solidity smart contracts using Slither and Mythril to detect reentrancy, integer overflow, access control, and other vulnerability classes before deployment to Ethereum mainnet.
prowler-tour
Keeps product-tour definitions aligned with the UI features they describe. Trigger: When modifying UI components that have associated tours, editing tour definition files, or renaming data-tour-id attributes.
evm-bytecode-analysis
Analyze supplied deployed EVM runtime bytecode with EVMole or guide a separate application in integrating a published EVMole Rust, Go, Python, or JavaScript binding. Use for unverified-contract inspection, ABI reconstruction from runtime code, selector discovery, storage-access analysis, EVM control-flow inspection…
talos-action-development
Develop, modify, review, and maintain standalone Talos actions in contracts/tasks/actions, including chain guardrails, contract bindings, transaction safety, schedules, action catalogues, and Talos documentation. Use when adding an action, changing an action’s behavior or parameters, updating a Talos schedule, or…
web3-poc-foundry
Complete Foundry PoC writing guide + all cheatcodes + DeFiHackLabs reproduction patterns. Use this when building a proof of concept exploit, setting up a fork test, using Foundry cheatcodes, or reproducing a known DeFi hack for learning.
web3-grep-arsenal
Master grep command arsenal for Web3 smart contract auditing. Use when starting a new protocol scan, before deep code review, or when hunting specific vulnerability classes.