CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cpg-analysis

Deep code property graph analysis with Joern CPG (AST+CFG+PDG) and CodeQL for control flow, data flow, taint analysis, and security auditing

59

Quality

74%

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/cpg-analysis/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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, highly actionable body with concrete queries, tool tables, and a clear tiered workflow. The main weaknesses are a padded acronym-glossary diagram that explains concepts Claude already knows, and CodeQL examples that are not fully self-contained.

Suggestions

Cut the ASCII box defining AST/CFG/CDG/DDG/PDG — Claude already knows these acronyms — and drop or compress the Purpose paragraph that repeats the frontmatter description.

Make the second CodeQL example executable: add the missing import and replace the undefined "RedirectSink" with a real sink class or a comment noting it must be defined per codebase.

Embed the CPG-status check as an explicit validation step inside the combined workflow (e.g., "0. VERIFY: get_cpg_status before any Tier 2 query") rather than only mentioning it in the anti-patterns table.

DimensionReasoningScore

Conciseness

The body is mostly efficient (dense tables, concrete queries), but includes unnecessary explanation Claude already knows — the ASCII box defining "AST = Abstract Syntax Tree (structure)", "CFG = Control Flow Graph (execution paths)", etc. — and a Purpose paragraph that restates the frontmatter. This matches anchor 3's "mostly efficient but includes some unnecessary explanation or could be tightened"; it is not 4 because the glossary diagram and purpose paragraph are clearly trimmable padding.

3 / 5

Actionability

Concrete, executable guidance throughout: copy-paste CPGQL queries ("cpg.method(\"login\").callOut.code.l"), full CodeQL taint queries, MCP config JSON, and install commands ("~/.claude/install-graph-tools.sh --joern"). It falls short of anchor 5 because of minor gaps — the second CodeQL example omits its import and uses an undefined "RedirectSink" class, so it is not directly executable as written.

4 / 5

Workflow Clarity

The combined workflow gives a clear five-step sequence (SCOPE → STRUCTURE → FLOW → SECURITY → REPORT) with per-tier tools, and the anti-patterns table supplies checkpoints like "Always verify CPG is built and current before querying" (get_cpg_status) and "scope with Tier 1 first". Not anchor 5 because validation is stated as guidance rather than embedded as explicit validation steps in the workflow itself — minor gaps matching anchor 4.

4 / 5

Progressive Disclosure

The body is well-organized with clear sections (tier selection, per-tier tool tables, queries, combined workflow, anti-patterns), and no bundle files exist so all content lives inline appropriately for a ~220-line skill. It matches anchor 4's "good structure; most content is appropriately placed; minor organization gaps" — the query catalogs and MCP config snippets could arguably be split into reference files, keeping it below anchor 5.

4 / 5

Total

15

/

20

Passed

Description

70%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 specific, tool-anchored description that clearly states what the skill does with concrete analysis types, though it lacks an explicit 'Use when...' trigger clause in the description field itself. Distinctiveness is excellent thanks to named tools.

Suggestions

Append an explicit trigger clause to the description, e.g. "Use when the user asks for taint analysis, security audits, tracing data flow between functions, or mentions Joern or CodeQL" — this would raise completeness from 3 to 5.

Add a few natural synonyms users might say, such as "vulnerability scanning" or "static security analysis", to broaden trigger-term coverage.

Optionally mention dead-code detection and refactoring impact analysis to close the minor coverage gaps in the action list.

DimensionReasoningScore

Specificity

The description lists several concrete actions — "control flow, data flow, taint analysis, and security auditing" — and names the specific tools (Joern CPG, CodeQL). It falls short of anchor 5 because coverage has minor gaps (e.g., dead-code detection, refactoring impact, supported languages are not mentioned), matching anchor 4's "several specific actions; minor gaps in coverage".

4 / 5

Completeness

The "what" is clear (deep CPG analysis with Joern/CodeQL for flow and taint analysis), but the description field itself contains no "Use when..." clause or equivalent trigger guidance — the trigger guidance lives in a separate `when-to-use` frontmatter field, which per the judging guidelines caps completeness at 3 ("clear 'what' but 'when' is missing"). It is not 2 because the "what" is concrete and multi-faceted, not vague.

3 / 5

Trigger Term Quality

Natural trigger phrases users would say are present: "control flow", "data flow", "taint analysis", "security auditing", plus tool names "Joern" and "CodeQL". Not anchor 5 because common synonyms like "vulnerability scanning", "static analysis", or "security audit" are missing; not anchor 3 because the term coverage goes well beyond a single generic keyword.

4 / 5

Distinctiveness Conflict Risk

Naming "Joern CPG (AST+CFG+PDG)" and "CodeQL" carves out a clear niche with distinct triggers; these tool-specific terms are unlikely to collide with other skills. This matches anchor 5's "clear niche with distinct triggers; minimal conflict risk".

5 / 5

Total

16

/

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

alinaqi/maggy

Path

skills/cpg-analysis/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.