CtrlK
BlogDocsLog inGet started
Tessl Logo

django-startup-time

Keep heavy imports off the django.setup() path that every process (web, celery, temporal, migrate, shell, CI) pays for. Use when touching AppConfig.ready(), wiring signal receivers, editing the lazy API router (posthog/api/rest_router.py or its __init__.py shim), deferring a heavy import, when the startup-import-budget guard fails, or when merging master into a long-lived branch that made the router lazy.

70

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

SKILL.md
Quality
Evals
Security

Quality

Content

87%

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

The body is lean, actionable, and well-structured with strong progressive disclosure that delegates detail to a single clearly signaled doc. Its weakest dimension is workflow clarity: guidance is organized as categorical defaults plus a pre-commit trap checklist rather than an explicit, staged multi-step workflow with marked validation checkpoints.

Suggestions

Promote the implicit defaults-to-traps-to-commit flow into an explicit numbered sequence with a marked validation step (e.g. 'after wiring a receiver, re-run the startup import budget test before committing') to give a clear staged workflow.

Group the trap entries that describe validate-then-adjust loops (re-measure, gc.disable re-capture, snapshot confirmation) into a dedicated 'Verify before commit' step so the feedback loops are staged rather than scattered.

DimensionReasoningScore

Conciseness

The body is dense and information-rich with no concept-explanation padding — it assumes Claude knows Django, AppConfig.ready(), and signal receivers — and defers all background detail to a single external doc, so every token earns its place.

3 / 3

Actionability

Provides concrete file paths, executable commands ('importtime', 'tuna', 'grimp', 'dmypy stop', 'gc.disable()'), and specific patterns (function-local import with '# noqa: PLC0415', PEP 562 '__getattr__' via 'importlib.import_module' with an '__all__' whitelist); as an instruction-only skill whose guidance is actionable, the absence of full copy-paste code is not penalized.

3 / 3

Workflow Clarity

A 'Traps to check before you commit' checklist with embedded validation cues exists (re-measure after wiring, reproduce in a non-router process, re-capture with gc.disable()), but there is no explicit sequenced multi-step workflow with staged validation checkpoints — the defaults-to-traps-to-commit sequence is implicit and validation is scattered across entries rather than staged.

2 / 3

Progressive Disclosure

A clear, well-organized overview (~40 lines across Defaults and Traps sections) with a single well-signaled one-level-deep reference to the detail doc ('That doc is the single source of detail; this skill is the trigger and the checklist'), appropriately splitting overview from detail with easy navigation.

3 / 3

Total

11

/

12

Passed

Description

85%

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

The description is specific, complete, and highly distinctive, with an explicit 'Use when' trigger list covering both what the skill does and when to apply it. Its main weakness is trigger-term quality: the language is heavily internal-jargon-laden with file paths and could include more natural/plain phrasing a user might actually say.

Suggestions

Add a plainer natural-language trigger phrase (e.g. 'Django startup is slow' or 'import budget / startup time regression') alongside the technical triggers so users can surface the skill with everyday wording.

Consider trimming the inline file paths ('posthog/api/rest_router.py', '__init__.py shim') from the description; they add jargon without strengthening the trigger surface.

DimensionReasoningScore

Specificity

Names multiple concrete actions in the domain — 'Keep heavy imports off the django.setup() path', 'wiring signal receivers', 'editing the lazy API router', 'deferring a heavy import' — matching the anchor that lists several specific concrete actions rather than only naming a domain.

3 / 3

Completeness

Explicitly answers both 'what' ('Keep heavy imports off the django.setup() path that every process pays for') and 'when' with an explicit 'Use when...' clause enumerating concrete triggers.

3 / 3

Trigger Term Quality

Relevant, domain-accurate keywords are present ('heavy imports', 'django.setup()', 'AppConfig.ready()', 'signal receivers', 'startup-import-budget guard'), but the description is jargon-dense with internal file paths ('posthog/api/rest_router.py', '__init__.py shim') and lacks plainer natural variations like 'django startup is slow'.

2 / 3

Distinctiveness Conflict Risk

Occupies a clear, narrow niche (Django startup import budget) with highly specific triggers (AppConfig.ready, lazy router, startup-import-budget guard) that are unlikely to overlap with other skills.

3 / 3

Total

11

/

12

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

relative_links

Relative link issues: 1 suspicious

Warning

Total

15

/

16

Passed

Repository
PostHog/posthog
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.