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 j5ik2o/okite-ai --skill aggregate-transaction-boundarygit clone --depth 1 https://github.com/j5ik2o/okite-aiWrote 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/j5ik2o/okite-ai/aggregate-transaction-boundary)<a href="https://agentmods.dev/skills/j5ik2o/okite-ai/aggregate-transaction-boundary"><img src="https://agentmods.dev/badge/skills/j5ik2o/okite-ai/aggregate-transaction-boundary/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/j5ik2o/okite-ai/aggregate-transaction-boundary"><img src="https://agentmods.dev/badge/skills/j5ik2o/okite-ai/aggregate-transaction-boundary.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00283 | $0.02887 |
| Opus 5 | $0.00142 | $0.01443 |
| Sonnet 5 | $0.00057 | $0.00577 |
| Haiku 4.5 | $0.00028 | $0.00289 |
Grade A, and why
aggregate-transaction-boundary 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 11d 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 — 258 lines — stays where its author put it; the contents beside it link to each section on GitHub.
集約とトランザクション境界
集約は強い整合性境界である。ユースケースで複数集約を更新する場合は結果整合性を使う。
核心原則
1トランザクション = 1集約。これを逸脱してはならない。
集約の定義そのものが「強い整合性の境界」である。複数集約を単一トランザクションに含めることは、集約の定義からの逸脱であり、モジュラリティとスケーラビリティを破壊する。
権威ある定義
エリック・エヴァンス(DDD原典)
複数の集約にまたがるルールはどれも、常に最新の状態にあるということが期待できない。イベント処理やバッチ処理、その他の更新の仕組みを通じて、他の依存関係は一定の時間内に解消できる。
ヴァーン・ヴァーノン(実践ドメイン駆動設計)
ひとつの集約上でコマンドを実行するときに、他の集約のコマンドも実行するようなビジネスルールが求められるのなら、その場合は結果整合性を使うこと。
Lightbend Academy
トランザクションは複数の集約ルートを費やすべきではありません。
トランザクションは複数のエンティティにまたがりますか? この質問の答えがイエスならば、間違った集約ルートを持っていると言えるでしょう。
アンチパターン:ユースケースをトランザクション境界にする
問題のあるコード
class CreateTaskUseCase(
private val taskRepository: TaskRepository,
private val taskReportRepository: TaskReportRepository,
) {
@Transactional // ← 複数集約を1トランザクションに閉じ込めている
fun execute(taskName: String) {
val task = Task(taskName)
taskRepository.insert(task)
val taskReport = TaskReport(task)
taskReportRepository.insert(taskReport)
}
}
なぜ問題か:
- 集約の定義違反: 集約は強い整合性境界。複数集約を1トランザクションにすると、実質的に1つの巨大な整合性境界を作っている
- スケーラビリティの阻害: 集約Aと集約Bの更新が常にセットになり、後のスケーリングやサーバ分散が困難になる
- 異種DB環境で不可能: 集約ごとに異なるデータストアを使う場合、同一トランザクションは実装不可能
- マイクロサービスへの発展を阻害: 集約を別サービスに分離できなくなる
修正後のコード
class CreateTaskUseCase(
private val taskRepository: TaskRepository,
private val taskReportRepository: TaskReportRepository,
) {
fun execute(taskName: String) {
// 集約ごとに独立したトランザクション
val task = Task(taskName)
taskRepository.insert(task)
val taskReport = TaskReport(task)
taskReportRepository.insert(taskReport)
}
}
そもそもモデリングの問題ではないか
複数集約を同一トランザクションで更新したくなる場合、まずモデリングを見直すべきである。
判断フロー
2つの集約を常に一緒に更新する必要がある
↓
Task : TaskReport の関係は?
├─ 1:1 → 同一集約に統合を検討
│ 例: Task(taskReport: TaskReport)
│ → 1トランザクションで問題なし
│
├─ 1:N(少量) → 要件調整で小規模化できないか検討
│ → 可能なら同一集約に統合
│
├─ 1:N(大量) → 別集約 + 結果整合性
│ → ドメインイベントで連携
│
└─ TaskReportは純粋なクエリ要件か?
├─ YES → CQRS: リードモデルとして構築
│ → 集約ではなくプロジェクションで対応
└─ NO → ドメイン知識を持つ → 独立集約 + 結果整合性
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.
- 11d ago First seen · 258 lines · 283 tokens per session scan A ed502f61fba8
aggregate-transaction-boundary is a skill published in the GitHub repository j5ik2o/okite-ai (81 stars, last pushed 4mo ago), licensed MIT. It adds 283 tokens to every session and 2,887 once invoked, about $0.0014 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-01.
Other skills, from other repositories
triage-contributor-pr
Triage open pull requests from external contributors to prisma/prisma and produce a per-PR verdict with evidence. Use when a maintainer asks to triage, evaluate, assess, or review the queue of incoming contributor PRs, to decide whether a fork PR is safe to run CI on, to check whether a PR is in scope for its version…
review-implement-phase
Implements triaged review actions, commits focused fixes, and posts Done plus resolves threads. Use when the user wants only the implementation phase of the review-framework workflow.
review-triage-phase
Produces canonical review actions from fetched review state and renders action markdown. Use when the user wants only triage/action-planning for the review-framework workflow.
no-bare-casts
Writing as in TypeScript or TSX production code, modifying a file that contains a bare as cast, silencing a type error with a cast, encountering as unknown as, or reviewing a cast site.
review-prs
Review a GitHub pull request in the googleapis/mcp-toolbox repo against the team's reviewer checklist: PR title/description conventions, linked issue, logic errors and unhandled edge cases, breaking changes, test coverage, docs updates, security (input handling), and new dependencies. Use whenever a maintainer asks…
migration-review
Review database migration files when a change adds or modifies paths under migrations/. Use it before merge to collect forward, rollback, locking, and data-safety evidence.