CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/fake-clock-testing

Fake clocks / freeze time in tests across every mainstream runtime: freezegun (Python), Jest fake timers + Sinon @sinonjs/fake-timers (JS/TS), timecop (Ruby), java.time.Clock / InstantSource injection (JVM), .NET TimeProvider / FakeTimeProvider, and libfaketime (LD_PRELOAD for any native binary). Covers the language-agnostic discipline - inject or patch the clock, freeze vs tick vs advance vs set-system-time semantics, teardown so fake clocks never leak between tests - plus the shared anti-pattern table (real sleep under a frozen clock, leaked clock state, timezone-dependent assertions). Per-library setup, API, and CI recipes live in references/{python,js,ruby,jvm,dotnet,libfaketime}.md. Use when tests need deterministic control of now(), timers, or timeouts in any language, or when choosing the right fake-clock tool for a stack.

93

Quality

93%

Does it follow best practices?

Impact

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

86%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 well-structured, concise skill body that pairs a shared conceptual framework (two mechanism families, four clock operations, anti-pattern table) with one concrete worked example and clean delegation of per-library recipes to references. Minor gap: only one runtime has full inline executable code.

Suggestions

Add a second short copy-paste example for the most common non-.NET stack (e.g. Python freezegun freeze + tick) so the canonical pattern is executable inline for at least two runtimes.

Clarify the `references/leap-seconds.md` pointer — that file is not in this skill's references/ bundle; either scope it explicitly as belonging to the companion `dst-transition-reference` skill or remove the path.

DimensionReasoningScore

Conciseness

Lean body that assumes Claude's competence — tables for tool selection and anti-patterns, no padding about what clocks or timers are, and every section (four operations, worked example, limitations) earns its tokens.

5 / 5

Actionability

One fully executable copy-paste worked example (.NET FakeTimeProvider) plus concrete per-library API names in the four-operations list and anti-pattern fixes, but only one stack has complete inline code — the rest delegate to references/, a minor gap for the common cases.

4 / 5

Workflow Clarity

Clear freeze→advance→assert→restore sequence with an explicit teardown checkpoint ('Always in an after-each hook... never at the end of the test body') and boundary-both-sides assertions; not a destructive/batch operation so no cap applies, but there is no explicit validate→fix→retry feedback loop.

4 / 5

Progressive Disclosure

Clear overview in SKILL.md with well-signaled one-level-deep references (tool-selection and References tables link to references/{python,js,ruby,jvm,dotnet,libfaketime}.md, all of which resolve), appropriately splitting per-library detail from shared discipline.

5 / 5

Total

18

/

20

Passed

Description

100%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 dense but precise description that names the capability, the runtimes, the discipline, and the trigger conditions. It is somewhat long, but every clause carries signal and it uses third-person voice throughout.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'inject or patch the clock', 'freeze vs tick vs advance vs set-system-time semantics', 'teardown so fake clocks never leak' — across six runtimes, giving comprehensive coverage rather than vague description.

5 / 5

Completeness

Explicitly states both what ('Fake clocks / freeze time in tests across every mainstream runtime...') and when ('Use when tests need deterministic control of now(), timers, or timeouts in any language, or when choosing the right fake-clock tool for a stack').

5 / 5

Trigger Term Quality

Natural phrases users would say ('freeze time', 'fake clocks', 'deterministic control of now(), timers, or timeouts') plus synonyms and library names (freezegun, Jest, timecop, libfaketime) give comprehensive keyword coverage.

5 / 5

Distinctiveness Conflict Risk

A narrow, specific niche (fake clocks in test suites) with distinct triggers and a clearly bounded toolset, giving minimal overlap risk with unrelated skills.

5 / 5

Total

20

/

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Reviewed

Table of Contents