CtrlK
BlogDocsLog inGet started
Tessl Logo

adding-ingestion-warnings

How to add a new ingestion warning type to the event ingestion pipeline. Use when emitting a new warning from nodejs ingestion code (emitIngestionWarning, captureIngestionWarning, pipeline `warnings` arrays, `drop()` with warnings), when adding a warning type, category, or severity, or when a typecheck error says a string is not assignable to IngestionWarningType. Covers the INGESTION_WARNING_TYPES registry (the single source of truth for type, category, and severity), the details-key conventions that ClickHouse v2 materializes into columns, debouncing, and the downstream surfaces to keep in sync (v1 UI map, resolving-ingestion-warnings skill, docs, v2 API).

76

Quality

96%

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

92%

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

The content is highly actionable and tightly written for a complex cross-language domain, with clear sequenced workflows and validation via CI tests. Progressive disclosure is the weakest dimension since no bundle exists and some dense detail is inline rather than split into a reference file.

Suggestions

Extract the Rust transport/Kafka-configuration detail (WARNINGS_KAFKA_* constants, producer setup) into a references/rust-emit.md file and link to it from a brief overview line, letting SKILL.md stay a lean hub.

Consider a short 'Quick start' summary at the top listing the minimal register->emit->commit-artifact steps before the registry rationale, so the common path is visible without scrolling.

DimensionReasoningScore

Conciseness

The body is dense and almost every token earns its place — registry-as-source-of-truth, emit paths, the details-key table, debouncing, Rust generation, and rollout order — with no padding about concepts Claude already knows; the one long Rust Kafka-config paragraph conveys non-obvious irreversible-detail.

3 / 3

Actionability

Provides exact file paths, copy-pasteable code (Warning::new(...).with_detail(...).into_row(...)), precise pnpm commands, a details-key-to-column table, and named constants — fully executable guidance.

3 / 3

Workflow Clarity

Clear numbered sequences (register -> emit -> update surfaces; register -> regenerate -> add from_tag arm) with explicit deploy-order guidance and CI feedback checkpoints (no-drift test, equality-weld test) that catch divergence.

3 / 3

Progressive Disclosure

No bundle files exist, so there is no progressive file structure to navigate; cross-references are one-level-deep source links rather than a reference tree, and content like the full Rust Kafka config lives inline where a separate reference could keep the overview leaner.

2 / 3

Total

11

/

12

Passed

Description

100%

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, trigger-rich, and clearly distinguishes the skill's niche with both what and when guidance. It uses third person and includes a literal typecheck-error trigger that a user would naturally encounter.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — emitting warnings via named APIs (emitIngestionWarning, captureIngestionWarning, drop()), adding a type/category/severity, and fixing a specific typecheck error — rather than vague language.

3 / 3

Completeness

Explicitly answers what (add a new ingestion warning type) and when via a clear 'Use when...' clause covering both emission scenarios and the typecheck-error signal.

3 / 3

Trigger Term Quality

Strong natural triggers including the literal error phrasing 'a string is not assignable to IngestionWarningType' plus 'emitIngestionWarning'/'captureIngestionWarning' and 'adding a warning type, category, or severity', matching what a user would actually say.

3 / 3

Distinctiveness Conflict Risk

The ingestion-warning registry niche is narrow and the typecheck-error trigger is unique to this skill, making conflict with other skills unlikely.

3 / 3

Total

12

/

12

Passed

Validation

87%

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

Validation14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 5 suspicious

Warning

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

14

/

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.