CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

angular-security

Harden Angular apps against XSS, CSP violations, and unauthorized access. Use when implementing XSS protection, Content Security Policy, or auth guards in Angular.

58

Quality

73%

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/angular/angular-security/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

50%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 covers genuinely useful Angular security guidance (sanitization defaults, trust-marking discipline, HttpOnly cookies, nonce CSP) and points to a real reference file with executable pipe/iframe examples. It is weakened by triple-stated guidance, filler sections ("Priority: P0", "Canonical response anchors"), no executable code in the body itself, and a broken second reference.

Suggestions

Delete the 'Canonical response anchors' section ("Additional task-grounded exact anchors: {{ content }}") and the empty 'Priority: P0 (CRITICAL)' heading — they add noise and confuse navigation.

Consolidate the duplicated guidance: merge the Anti-Patterns section and the 'CSP and secret checklist' into Guidelines so each rule (secrets, localStorage, nonce, trust-marking) is stated once.

Fix or remove the dangling 'common/security-standards' reference — either make it a real path under references/ or drop it — and add one executable example (e.g., a functional authGuard with inject(Router).createUrlTree(['/login'])).

DimensionReasoningScore

Conciseness

The body is compact and mostly rule-dense, but guidance is restated across sections: "no secrets in source/bundle" appears in Guidelines ("Never store API keys"), Anti-Patterns ("Never embed API keys"), and the checklist ("Do not put API keys... in the compiled bundle"); localStorage and trust-marking guidance are likewise each repeated 2-3 times, and the "Canonical response anchors" section ("Additional task-grounded exact anchors: {{ content }}") is pure filler. Mostly efficient but needs tightening, matching anchor 3 rather than 2 since no background concepts are over-explained.

3 / 5

Actionability

Concrete API names are given inline ("DomSanitizer.sanitize(SecurityContext.HTML, content)", "inject(Router).createUrlTree(['/login'])", "canActivate: [authGuard]", "script-src 'nonce-{nonce}'"), but there are no complete, executable code snippets in the body — e.g., no guard implementation, no interceptor example, and "Configure CSP headers on server" is high-level. Some concrete guidance, incomplete execution detail — anchor 3, not 4 (which requires mostly executable, copy-paste-ready guidance).

3 / 5

Workflow Clarity

As a reference-style skill it is organized by topic (Principles, Guidelines, Anti-Patterns, checklist), and the CSP/secret checklist provides verification points. However the empty "Priority: P0 (CRITICAL)" heading is unexplained, the trailing "Canonical response anchors" section is incoherent filler, and there is no ordered sequence or validation loop for applying the guidance (e.g., reviewing trust-marking calls). Structure present with clarity gaps — anchor 3.

3 / 5

Progressive Disclosure

One reference is well-signaled and one level deep ([Security Best Practices](references/security-best-practices.md), which exists in the bundle), but the second reference "common/security-standards" is not a markdown link, has no file in the bundle, and gives no path — a dangling pointer. Organization is present but references are not consistently clear, matching anchor 3 rather than 4.

3 / 5

Total

12

/

20

Passed

Description

87%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 description: it states a clear scope in third person, includes an explicit 'Use when...' clause with concrete trigger phrases, and is well-differentiated from adjacent skills. The only soft spot is that the 'what' relies on one umbrella verb ("harden") plus area names rather than enumerating several distinct actions.

DimensionReasoningScore

Specificity

"Harden Angular apps against XSS, CSP violations, and unauthorized access" names the Angular security domain with three concrete sub-capabilities (XSS, CSP, auth/access control). Not a 5 because "harden" is a single umbrella verb rather than multiple distinct concrete actions (e.g., sanitize, configure headers, add guards).

4 / 5

Completeness

Explicitly answers both: what ("Harden Angular apps against XSS, CSP violations, and unauthorized access") and when ("Use when implementing XSS protection, Content Security Policy, or auth guards in Angular") with concrete trigger phrases. Clearly matches the level-5 anchor rather than 4, where the 'when' would be less specific.

5 / 5

Trigger Term Quality

"XSS protection, Content Security Policy, or auth guards in Angular" are natural phrases a user would say. Missing common variations like "sanitization", "DomSanitizer", or "route guards" (which only appear in frontmatter metadata, not the description), so not comprehensive enough for a 5.

4 / 5

Distinctiveness Conflict Risk

"Angular" + XSS/CSP/auth guards carves out a clear niche with distinct triggers; a generic web-security or frontend skill would rarely be confused with it. Minimal conflict risk, matching the level-5 anchor.

5 / 5

Total

18

/

20

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.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

14

/

16

Passed

Repository

HoangNguyen0403/agent-skills-standard

Path

skills/angular/angular-security/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.