CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/saga-transaction-tests

Build saga transaction tests - orchestration vs choreography variants, per-step compensating-action verification, partial-failure scenarios (Step 3 fails → Steps 1+2 must compensate), idempotency of compensations, outbox pattern for atomic DB-update + message-publish. Per microservices.io/saga; tests guard against ACD-without-Isolation anomalies. Use when a business transaction spans two or more services and the compensating paths for a mid-sequence failure have no coverage, or right after compensation logic changes.

68

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A solid, well-structured testing guide: concrete parametrized code for every scenario, a clear step sequence, and an anti-patterns checklist that closes the loop. Consistent minor gaps — placeholder code, no test-failure feedback loop, and an all-inline layout at ~215 lines — hold each dimension just below the top anchor.

Suggestions

Tighten conciseness: drop the opening saga-definition quote and redundant restatements like 'Compensations that aren't idempotent → double-refund, double-release' — the step headings and tests already convey both.

Make the remaining code fully executable by replacing placeholder fragments such as 'INSERT INTO orders ...' and 'items=[...]' with complete statements so examples are copy-paste ready.

Add a brief feedback-loop step after Step 4: what to do when a compensation test fails or flakes (e.g., verify compensation ordering, check for non-idempotent compensations, use the Step 8 timeout test to diagnose hangs).

DimensionReasoningScore

Conciseness

The body is efficient — tables and code dominate, and the anti-patterns table packs five checks into a few lines — but there is minor over-explanation to trim: the opening saga definition/ACD framing restates what Claude already knows, and lines like 'Compensations that aren't idempotent → double-refund, double-release' repeat what the Step 5 heading and test already establish. This fits the efficient-with-minor-trimmings anchor, not the every-token-earns-its-place anchor.

4 / 5

Actionability

Every step ships concrete pytest code with parametrized failure injection, mock setup, and assertions, so guidance is mostly executable. A few examples remain schematic — 'INSERT INTO orders ...' and 'items=[...]' placeholders in Steps 6–7 — which are minor gaps against the copy-paste-ready anchor.

4 / 5

Workflow Clarity

The 1→8 sequence is clear and well-ordered, Step 1 gives explicit default-and-exception guidance ('Default: orchestration... Step 7 covers that path'), and the anti-patterns table maps each failure mode to a step. It falls short of anchor 5 because there is no feedback loop — no guidance on what to do when a compensation test fails, is flaky, or when a step's compensation cannot be written. The destructive/batch cap does not apply since this is test authoring, not a mutating operation.

4 / 5

Progressive Disclosure

Sections are well-organized with a clearly signaled one-level-deep References list (microservices.io link plus sibling skills), and no bundle files exist to verify or misplace. At ~215 lines all examples are inline; the Step 6–7 example sets would fit naturally in reference files, which is a minor organization gap rather than a structural one.

4 / 5

Total

16

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: it states concrete capabilities with a concrete failure example, gives an explicit and specific 'Use when' trigger clause, and occupies a distinct niche. The only weakness is modest synonym coverage in trigger terms.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete capabilities — 'per-step compensating-action verification, partial-failure scenarios (Step 3 fails → Steps 1+2 must compensate), idempotency of compensations, outbox pattern for atomic DB-update + message-publish' — with a worked example, giving comprehensive coverage rather than minor gaps. It is written in third person ('Build saga transaction tests'), so no voice penalty applies.

5 / 5

Completeness

It explicitly answers both questions: what ('Build saga transaction tests - orchestration vs choreography variants, per-step compensating-action verification...') and when ('Use when a business transaction spans two or more services and the compensating paths for a mid-sequence failure have no coverage, or right after compensation logic changes'). This matches the anchor-5 example's what-plus-concrete-when structure.

5 / 5

Trigger Term Quality

Good keyword coverage with natural terms users would say: 'saga', 'orchestration vs choreography', 'compensating', 'partial-failure', 'outbox'. A few common synonyms are missing — 'distributed transaction', 'rollback', '2PC' — which keeps it below the comprehensive-with-synonyms anchor. It is clearly above anchor 3, which requires missing common variations.

4 / 5

Distinctiveness Conflict Risk

The niche is clear and the triggers are distinct — 'outbox pattern', 'compensating-action verification', 'orchestration vs choreography' would not plausibly fire a generic or sibling skill, matching the minimal-conflict-risk anchor.

5 / 5

Total

19

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Reviewed

Table of Contents