event-store-adapter-js: Skill for Claude Code

.agents/skills/error-handling/SKILL.md

error-handling is a skill for Claude Code, Codex from j5ik2o/event-store-adapter-js. It costs 174 tokens per session (1,112 once invoked), scanned A, a copy of error-handling, Apache-2.0.

A set of guidelines for designing and improving error handling in Go, Rust, Scala, Java, TypeScript, JavaScript, and Python programs.

In plain words
What is it for?
It is for reviewing error flows, choosing between result values and exceptions, and improving error design.
Why use it?
It helps distinguish errors that callers can recover from from failures that should stop the program.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: installed under .agents/ (shared by several agents).

This is j5ik2o/event-store-adapter-js's own configuration. It tells Claude Code and Codex how to work on event-store-adapter-js itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything event-store-adapter-js configures →

Reuse

Borrowing it

Nothing to install: this file belongs to j5ik2o/event-store-adapter-js. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/j5ik2o/event-store-adapter-js/main/.agents/skills/error-handling/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/j5ik2o/event-store-adapter-js

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for error-handling

README.md
[![agentmods](https://agentmods.dev/badge/skills/j5ik2o/event-store-adapter-js/error-handling/github.svg)](https://agentmods.dev/skills/j5ik2o/event-store-adapter-js/error-handling)
Your own site
<a href="https://agentmods.dev/skills/j5ik2o/event-store-adapter-js/error-handling"><img src="https://agentmods.dev/badge/skills/j5ik2o/event-store-adapter-js/error-handling/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.

agentmods 80×15 button for error-handling

Your own site · 80×15
<a href="https://agentmods.dev/skills/j5ik2o/event-store-adapter-js/error-handling"><img src="https://agentmods.dev/badge/skills/j5ik2o/event-store-adapter-js/error-handling.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 174 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,112 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin 100% copy Near-identical to another mod in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00174 $0.01112
Opus 5 $0.00087 $0.00556
Sonnet 5 $0.00035 $0.00222
Haiku 4.5 $0.00017 $0.00111

Measured 7d ago against content hash 9578dcf9efc5, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

error-handling 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 7d 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.

Origin

This is a copy

100% identical to error-handling — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

.agents/skills/error-handling/SKILL.md · 94 lines

How it starts

The opening of the file, as written. The whole thing — 94 lines — stays where its author put it; the contents beside it link to each section on GitHub.

エラーハンドリング

回復可能性を基準にしたエラーハンドリング設計を支援する。

基本方針

ドメインロジック(ビジネスルール)では Either/Result 型を採用する。

  • ドメイン層のエラーは呼び出し元が判断すべき → 型で明示
  • 例外は制御フローではなく、本当の異常事態に限定
  • 戻り値の型を見るだけでエラーの可能性が分かる設計

判断フロー

エラー発生
    ↓
回復可能か?
    ├─ YES → Either/Result型で表現
    └─ NO → 例外/panicで即座に停止
回復可能 回復不能
ビジネスルール違反 引数の不正 (IllegalArgumentException)
外部システムエラー 状態の矛盾 (IllegalStateException)
権限不足・リソース競合 到達不可コード (unreachable)

回復可能なエラー

Either/Result型で表現し、呼び出し元に判断を委ねる。

// TypeScript - neverthrow
function findUser(id: string): Result<User, UserError> {
  if (!isValidId(id)) return err({ type: 'VALIDATION_FAILED', field: 'id' });
  return repository.find(id)
    ? ok(user)
    : err({ type: 'NOT_FOUND', userId: id });
}

回復不能なエラー

プログラムの前提条件違反は即座に停止。

// 引数の不正 → IllegalArgumentException 相当
if (order === null) throw new Error('order must not be null');

// 状態の矛盾 → IllegalStateException 相当
if (order.status === 'COMPLETED' && order.items.isEmpty())
  throw new Error('completed order must have items');

// 到達不可コード → unreachable
default: throw new Error(`unreachable: ${status}`);

推奨ライブラリ

言語 ライブラリ 選択基準
TypeScript neverthrow Result のみで十分な場合(軽量・シンプル)
TypeScript fp-ts 関数型全般を使う場合(Option, Task, IO, Reader 等)
JavaScript neverthrow TypeScript と同様
Rust 標準 Result<T, E> 常にこれを使用。エラー定義には thiserror
Go 標準 (T, error) Go らしいシンプルなコードを書く場合
Go samber/mo Result/Either でチェーン処理したい場合
Scala 標準 Either[L, R] 標準で十分。cats は大規模 FP 向け
Java vavr.io Either 関数型コレクションも使うなら vavr 一択
Python returns (dry-python) 本番環境向け。型アノテーション充実
Python result 軽量。Rust ライクなシンプルな API

詳細ガイドライン

全言語の実装パターン、エラー型設計の詳細は references/guidelines.md を参照。

関連スキル(併読推奨)

このスキルを使用する際は、以下のスキルも併せて参照すること:

  • error-classification: エラーの分類(Error, Defect, Fault, Failure)に基づく処理方式の選択
  • domain-building-blocks: ドメイン操作におけるResult/Eitherの適用
  • repository-design: リポジトリのエラー処理パターン(同期・非同期)

Read the full file on GitHub · 94 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

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.

  1. 7d ago First seen · 94 lines · 174 tokens per session scan A 9578dcf9efc5

Subscribe to this mod's changes

error-handling is a skill published in the GitHub repository j5ik2o/event-store-adapter-js (24 stars, last pushed yesterday), licensed Apache-2.0. It adds 174 tokens to every session and 1,112 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to error-handling, differing in 0 lines, and is treated as a copy.

Related

Other skills, from other repositories

cratis-lens-browser-extension

Use the Cratis Lens browser extension against a running Cratis Arc application — building and side-loading it, what the Arc app must already serve for Lens to work, switching the active user and tenant, and executing a command or query from the popup. Use when setting Lens up, when Lens does not detect an Arc app, or…

Cratis/AI · 102 tokens

cratis-chronicle-cli-operations

Inspect and operate a running Chronicle server with the cratis CLI - contexts and connection resolution, machine-readable output, failed partitions, observers, event sequences, read models, projections and jobs, and the authorization discipline for replay, retry, quarantine clearing and other mutations. Use when the…

Cratis/AI · 92 tokens

add-traces

Use this skill when asked to add OpenTelemetry tracing to a class in a Cratis Chronicle Kernel project. Produces Traces.cs companion files using the [Span] source-generator pattern from Cratis.Traces, registers IActivitySource as a keyed DI service, and injects it into the target class.

Cratis/AI · 73 tokens

cratis-engineering-chronicle-kernel-tracing

Add OpenTelemetry tracing to a class in the Chronicle repository using the Cratis.Traces [Span] source generator, keyed IActivitySource injection, and the Chronicle tag extensions. Use when instrumenting Chronicle kernel or client internals; this is contributor guidance for the Chronicle repository itself, not for an…

Cratis/AI · 78 tokens

cratis-cli-terminal-workbench

Navigate the cratis CLI's terminal Workbench - the full-screen TUI launched with cratis chronicle workbench. Use when exploring a running Chronicle store interactively rather than answering one question with a single command, when locating an observer, failure, event type, projection or read model by name, or when…

Cratis/AI · 99 tokens

inspect-running-chronicle

Inspect or operate a running Chronicle server with the cratis CLI - list failed partitions, read why an observer is stuck, replay a partition, browse events, event types, read models, projections and jobs. Use when a question is about the state of a live store rather than the source code, when a projection will not…

Cratis/AI · 106 tokens