一键导入
write-module-readme
Write or update a module-level README.md. Triggers on "모듈 README", "모듈 설명 작성", "서브모듈 README".
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Write or update a module-level README.md. Triggers on "모듈 README", "모듈 설명 작성", "서브모듈 README".
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Improve comments and docs so they capture non-obvious intent, caller-visible contracts, invariants, and why-context; prune comments that only restate code. Use whenever writing or modifying code (any new or edited source file), not just on explicit cleanup requests. Triggers on "주석 정리", "주석 다듬기", "comment cleanup", "prune comments", "의도 정리", "clarify code intent", "intent comments", "contract docs", "API contract comments".
Write or update Java class-level Javadoc that documents responsibility, caller-visible boundaries, invariants, and thread-safety. Use when modifying API-facing or boundary-owning Java types, SPI and extension types, factories or coordinators that choose policy or workflow, abstract/interface contracts, or behavior-bearing core domain types whose responsibility, invariants, lifecycle, or threading are not obvious.
Write or update Java method-level Javadoc that documents caller-visible contracts, preconditions, postconditions, exceptions, externally visible side effects, and performance constraints. Use when modifying API, SPI, extension, or reused internal Java methods whose caller-visible or durable internal contract is non-obvious or not encoded by signatures, annotations, validation, or inherited documentation.
Write or update Java package-info.java documentation that defines package responsibility, durable boundaries, optional non-responsibilities, package-wide invariants, and extension points. Use when adding, renaming, moving, or splitting packages; changing responsibility across package boundaries; or creating/updating package-info.java for API-facing or shared packages with durable ownership rules.
Write unit tests following London School (mockist) TDD style.
Rebase current branch onto latest main/master.
| name | write-module-readme |
| description | Write or update a module-level README.md. Triggers on "모듈 README", "모듈 설명 작성", "서브모듈 README". |
write-module-readme <module-path> (no path → cwd)
# event-router
Route domain events to registered handlers with retry and dead-letter support.
## Why
The monorepo had three modules each implementing their own dispatch-and-retry loop.
This module extracts that shared concern so consumers only declare handlers.
## Boundaries
- Routes events, does not produce them.
- Retry is per-handler. Circuit breaking is the caller's responsibility.
- No persistence — dead-letter is the caller's problem.
# hash-id
Generate URL-safe, collision-resistant short IDs from UUIDs.
## Why
Multiple services needed human-readable IDs for logs and URLs.
Standard base64 includes characters that break URL parsing.
# db-migrate
Run and rollback database migrations in order.
## Why
ORM auto-migration silently dropped columns in production.
This module enforces explicit, versioned, reversible migrations.
## Constraints
- Migrations must be idempotent — re-running a migration must not fail.
- No down migration is generated automatically. Authors must write both up and down.
- Requires an advisory lock. Two instances cannot migrate concurrently.
# event-router
## Architecture
EventRouter class receives events through the `dispatch()` method.
It iterates over registered handlers and calls `handler.handle(event)`.
Failed handlers are retried up to 3 times with exponential backoff.
Dead-lettered events are emitted via the `onDeadLetter` callback.
## API
- `EventRouter.register(eventType, handler)` — register a handler
- `EventRouter.dispatch(event)` — dispatch an event
- `EventRouter.onDeadLetter(callback)` — set dead-letter callback
## File Structure
- `router.ts` — main router class
- `retry.ts` — retry logic
- `types.ts` — type definitions
This is bad because:
ls.