CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cpp-testing

Use only when writing/updating/fixing C++ tests, configuring GoogleTest/CTest, diagnosing failing or flaky tests, or adding coverage/sanitizers.

Quality

79%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/cpp-testing/SKILL.md

The canonical home for this skill is cpp-testing in affaan-m/ECC

SKILL.md
Quality
Evals
Security

Quality

Content

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

Highly actionable: executable gtest/gmock examples, a complete CMake/CTest quickstart, and copy-paste coverage and sanitizer recipes, organized into clear sequences (TDD loop, debugging steps). The weaknesses are token efficiency — it re-explains basic GoogleTest/TDD concepts and duplicates a trivial example — and a monolithic single-file structure that inlines advanced reference material instead of splitting it out, plus a sanitizer block using global add_compile_options despite its own advice to 'Prefer target-level settings instead of global flags'.

Suggestions

Delete the duplicate basic example (TEST(CalculatorTest, AddsTwoNumbers) repeats the TDD Add example) and trim standard gtest/gmock boilerplate, keeping only project conventions Claude cannot infer (test layout, gtest_discover_tests, guardrails).

Split the Coverage pipelines, Sanitizers, and Fuzzing appendix into one-level-deep reference files (e.g., references/coverage.md) linked from SKILL.md so the main file works as an overview.

Align the sanitizer block with the skill's own 'Prefer target-level settings instead of global flags' guidance by using target_compile_options/target_link_options, and fold the GTEST_VERSION pin into a single project-policy note.

DimensionReasoningScore

Conciseness

Mostly efficient (tight bullets, no padded prose) but re-teaches concepts Claude already knows — "TDD loop: red → green → refactor (tests first, minimal fix, then cleanups)" and standard gtest fixture/mock boilerplate — and duplicates the trivial Add example ("TEST(AddTest, AddsTwoNumbers)" vs "TEST(CalculatorTest, AddsTwoNumbers)"). The "GTEST_VERSION v1.17.0" pin is time-sensitive detail outside any deprecated/policy section; this is 'some unnecessary explanation or could be tightened' (3), more than the minor instances allowed at 4 but far from the padded verbosity of 2.

3 / 5

Actionability

Fully executable, copy-paste-ready guidance covering the common cases: "cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug" through "ctest --test-dir build --output-on-failure", complete lcov and llvm-cov pipelines, sanitizer CMake options, and a working gmock example ("EXPECT_CALL(notifier, Send(\"hello\")).Times(1)"). The pseudocode stubs ("Pseudocode stub: replace UserStore/User with project types") are explicitly justified, which the rubric permits.

5 / 5

Workflow Clarity

Clear sequences with embedded gates: the RED → GREEN → REFACTOR loop, "run subset first, then full suite", and the debugging flow "1. Re-run the single failing test ... 4. Expand to full suite once the root cause is fixed". Matches 'clear sequence with most checkpoints present; minor validation gaps' — not 5 because there is no explicit error-recovery branch (e.g., 'if still failing, return to step 2') or verification checklist, and not 3 because verify-then-proceed checkpoints are present, merely implicit.

4 / 5

Progressive Disclosure

No bundle files exist and no references are used: the entire skill is a single ~320-line file with reference-grade material inlined — two full coverage toolchain walkthroughs (GCC/lcov and Clang/llvm-cov), sanitizer CMake blocks, "Optional Appendix: Fuzzing / Property Testing", and "Alternatives to GoogleTest". Good section headers keep it navigable (above 2), but content that belongs in one-level-deep reference files is inline and the under-50-line simple-skill exception does not apply, capping it at the 'could be better organized / should be separate is inline' anchor.

3 / 5

Total

15

/

20

Passed

Description

78%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 tightly scoped, trigger-focused description with concrete actions and natural terms like "flaky tests" and "sanitizers". Its main gaps are that the 'what' is only implied by the trigger list rather than stated explicitly, and a few common synonyms (gmock, unit tests) are missing.

Suggestions

Lead with a one-line what-statement (e.g., 'Provides a TDD workflow plus CMake/CTest recipes for GoogleTest-based C++ testing, coverage, and sanitizers.') before the 'Use only when...' clause so the 'what' is explicit rather than implied by triggers.

Add natural synonyms users actually say — 'unit tests', 'gmock/GoogleMock', 'test coverage in CI' — to broaden trigger coverage toward the top anchor.

DimensionReasoningScore

Specificity

Lists several concrete, domain-specific actions — "writing/updating/fixing C++ tests, configuring GoogleTest/CTest, diagnosing failing or flaky tests, or adding coverage/sanitizers" — matching the 'several specific actions; minor gaps' anchor. Not 5 because capabilities are framed purely as trigger conditions and never state what the skill delivers (TDD workflow, CMake/coverage/sanitizer recipes); not 3 because well more than 1-2 actions are named.

4 / 5

Completeness

The explicit "Use only when..." clause answers 'when' with concrete triggers (no 3-cap applies), and the action list conveys the 'what', but the what is merged into the when rather than stated as what the skill provides. Matches anchor 4 ('both present; when could be more explicit or specific' — here the what could be more explicit); not 5 because there is no separate, explicit statement of what the skill does.

4 / 5

Trigger Term Quality

Natural user phrasings like "C++ tests", "GoogleTest", "CTest", "failing or flaky tests", and "sanitizers" give good keyword coverage across every sub-topic, matching the 'good coverage; a few natural terms missing' anchor. Not 5 because common variations such as "gmock", "unit tests", or "test coverage in CI" are absent; not 3 because coverage spans the whole domain rather than only some relevant keywords.

4 / 5

Distinctiveness Conflict Risk

"Use only when" combined with pinned language and framework terms ("C++ tests", "GoogleTest/CTest", "sanitizers") carves a clear niche with minimal conflict risk — it will not trigger for non-C++ testing, general C++ feature work, or non-test tasks. Fits the 'clear niche with distinct triggers' anchor better than 4, since no meaningful overlap with closely related skills remains.

5 / 5

Total

17

/

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

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

valeriibeck-star/claude-skills

Path

skills/cpp-testing/SKILL.md

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.