CtrlK
BlogDocsLog inGet started
Tessl Logo

adding-activity-logging

Adds or changes activity logging (the audit trail) for a Django model in PostHog. Use when a model's writes must show in the Activity side panel or the advanced activity logs, when adding ModelActivityMixin, an ActivityScope, a model_activity_signal receiver, an activity describer, or field exclusions, when auditing which write paths of a model are logged, or when a change is missing from the activity log. Covers the receiver-module convention, writes the signal cannot see (QuerySet.update, bulk_create), the actor outside requests, and product models on a separate database. Trigger terms - activity log, audit log, audit trail, ModelActivityMixin, log_activity, changes_between, activity describer, who changed this.

75

Quality

94%

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

88%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.

The body is a tight, actionable multi-step workflow with explicit verification and a debugging feedback loop, assuming Claude's competence throughout. Its only weak spots are placeholder substitution in commands and a body that is dense rather than a lightweight overview pointing to references.

Suggestions

Consider moving the deeper 'Debugging a missing row' checklist and the bulk-write recipe into a references file, keeping SKILL.md as a leaner overview that points one level deep.

Where commands use '<name>' placeholders, add a one-line note on how to resolve them (e.g., 'replace <name> with the product slug') to push actionability toward fully copy-paste-ready.

Add a brief inline confirmation checkpoint after Step 2 (e.g., 'confirm the class name appears in both ActivityScope definitions before wiring') to match the validation rigor of the Verify section.

DimensionReasoningScore

Conciseness

Lean and efficient throughout — it assumes Django/signals competence ('The mixin hooks save() and delete(). It does not see QuerySet.update()...') and never explains concepts Claude already knows; every line is actionable.

5 / 5

Actionability

Provides concrete executable commands (rg, hogli test, ruff check) and specific code patterns, but commands and class definitions use '<name>' placeholders requiring substitution, leaving a minor gap from fully copy-paste-ready.

4 / 5

Workflow Clarity

Clear 9-step sequence with an explicit 'Verify' section of validation commands and a 'Debugging a missing row' feedback loop ordered by distinct cause — explicit checkpoints and error recovery for a batch/destructive operation.

5 / 5

Progressive Disclosure

Well-organized into clearly headed steps with one-level-deep references to docs/internal/activity-logging.md and reference implementation files, all clearly signaled; no bundle files exist, and structure is good but the body is fairly dense rather than a pure overview.

4 / 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.

The description is a strong example: it states concrete capabilities, an explicit 'Use when' clause with multiple trigger scenarios, and a dedicated trigger-terms list. It is specific, complete, and distinct with no notable gaps.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'Adds or changes activity logging', 'adding ModelActivityMixin, an ActivityScope, a model_activity_signal receiver, an activity describer, or field exclusions', 'auditing which write paths' — with comprehensive coverage of the skill's scope.

5 / 5

Completeness

Clearly answers both 'what' ('Adds or changes activity logging (the audit trail) for a Django model in PostHog') and 'when' ('Use when a model's writes must show in the Activity side panel...') with concrete trigger phrases.

5 / 5

Trigger Term Quality

Explicit 'Trigger terms' list covers natural phrases and synonyms users would say — 'activity log, audit log, audit trail, ModelActivityMixin, log_activity, changes_between, activity describer, who changed this'.

5 / 5

Distinctiveness Conflict Risk

Narrow PostHog/Django activity-logging niche with highly specific trigger terms (ModelActivityMixin, ActivityScope, changes_between) makes conflict with other skills minimal.

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

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.