← スキル一覧に戻る

tagged-error
by legacy3
⭐ 1🍴 0📅 2026年1月3日
SKILL.md
name: tagged-error description: Generate Effect TaggedError types for error handling. Use when adding new error types or improving error handling.
Tagged Error Generator
Generate Effect Data.TaggedError types following project conventions.
Error Location
packages/wowlab-core/src/internal/errors/Errors.ts
Basic Error Template
import * as Data from "effect/Data";
export class MyError extends Data.TaggedError("MyError")<{
readonly message: string;
readonly cause?: unknown;
}> {}
Error with Context
import * as Branded from "../schemas/Branded.js";
import * as Entities from "../entities/index.js";
export class SpellNotFound extends Data.TaggedError("SpellNotFound")<{
readonly unitId: Branded.UnitID;
readonly spellId: number;
}> {}
export class CastFailed extends Data.TaggedError("CastFailed")<{
readonly reason: string;
readonly spell: Entities.Spell.Spell;
readonly caster?: Entities.Unit.Unit;
}> {}
Error Union Types
Group related errors:
export type RotationError =
| NoChargesAvailable
| SpellNotFound
| SpellOnCooldown
| UnitNotFound;
export type CombatLogError = QueueEmpty | HandlerError | EventValidationError;
Naming Conventions
- Error class:
{Thing}{Problem}- e.g.,SpellNotFound,CastFailed - Tag: Same as class name
- Include relevant context in payload (IDs, entities, messages)
Usage in Effects
import * as Errors from "@wowlab/core/Errors";
// Failing with error
yield *
Effect.fail(
new Errors.SpellNotFound({
unitId,
spellId,
}),
);
// In function signature
const cast = (
spellId: number,
): Effect.Effect<CastResult, Errors.SpellNotFound | Errors.SpellOnCooldown> =>
Effect.gen(function* () {
// ...
});
Instructions
- Identify what can fail
- Design payload with useful context
- Create error class with TaggedError
- Add to union type if applicable
- Update function signatures to include error
スコア
総合スコア
60/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です