CtrlK
BlogDocsLog inGet started
Tessl Logo

sast-graphql

Detect GraphQL injection vulnerabilities in a codebase using a three-phase approach: recon (confirm GraphQL usage and find unsafe operation document assembly sites), batched verify (trace user input to those sites in parallel subagents, up to 3 candidate sites each), and merge (consolidate batch results). Requires sast/architecture.md (run sast-analysis first). Outputs findings to sast/graphql-results.md. If no GraphQL technology is found in Phase 1, later phases are skipped. Use when asked to find GraphQL injection, unsafe GraphQL document construction, or operation string injection bugs.

72

Quality

88%

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

The canonical home for this skill is sast-graphql in utkusen/sast-skills

SKILL.md
Quality
Evals
Security

Quality

Content

85%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 and clearly sequenced with proper gating for a batch workflow, but it is a long monolithic file that inlines prompt templates and an example library rather than splitting them into reference files.

Suggestions

Move the Phase 1 and Phase 2 subagent prompt templates into reference files (e.g. references/phase1-recon-prompt.md, references/phase2-batch-prompt.md) and link to them from the body to reduce inline length.

Extract the 'Vulnerable vs. Secure Examples' section into references/examples.md, keeping only a single representative snippet inline in SKILL.md.

De-duplicate the 'what GraphQL injection is NOT' guidance and the Gate 1/Gate 2 conditions, which currently appear in the main body, inside the Phase 2 prompt, and in Important Reminders.

DimensionReasoningScore

Conciseness

Largely lean, domain-specific guidance (IS/IS-NOT scope, vulnerable vs. secure examples) that earns its tokens, but the 'what it is NOT' list and the Phase-1 gates are restated inside the Phase 2 subagent prompt and again in Important Reminders.

4 / 5

Actionability

Provides copy-paste-ready subagent prompt templates with exact output markdown schemas, a concrete batching procedure (8 sites -> 3 batches), and executable vulnerable/secure code examples for Node.js and Python.

5 / 5

Workflow Clarity

Three phases are explicitly sequenced with Gate 1 and Gate 2 validation checkpoints, parallel batch launch, and intermediate-file cleanup; the batch operation has real validation, so the destructive/batch cap does not apply.

5 / 5

Progressive Disclosure

Well-sectioned but a ~350-line monolithic SKILL.md with no bundle files; the large Phase 1/Phase 2 prompt templates and the vulnerable/secure examples library are inlined where one-level-deep reference files would aid navigation.

3 / 5

Total

17

/

20

Passed

Description

92%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 strong, specific description that clearly communicates capability, prerequisites, outputs, and trigger conditions in third person. Trigger-term coverage is solid but could add synonyms.

DimensionReasoningScore

Specificity

Lists multiple concrete actions across three named phases (recon, batched verify, merge) with sub-tasks like 'find unsafe operation document assembly sites' and 'trace user input to those sites in parallel subagents, up to 3 candidate sites each'.

5 / 5

Completeness

Explicitly answers both what it does (three-phase GraphQL injection detection with prerequisites and outputs) and when to use it via a clear 'Use when asked to find...' clause with concrete triggers.

5 / 5

Trigger Term Quality

Provides natural trigger phrasings ('GraphQL injection', 'unsafe GraphQL document construction', 'operation string injection bugs') but lacks synonyms or file-extension variants a user might also say.

4 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (operation-document GraphQL injection) and explicitly disambiguates from resolver SQL/NoSQL injection covered by other SAST skills, minimizing wrong-skill triggering.

5 / 5

Total

19

/

20

Passed

Validation

100%

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

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
utkusen/sast-skills
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.