explain-entity

explain-entity is a skill for Claude Code, Codex from cosai-oasis/secure-ai-tooling. It costs 141 tokens per session (1,100 once invoked), scanned A, original, Apache-2.0.

A read-only skill that explains one CoSAI Risk Map risk, control, component, or persona in plain language. CoSAI Risk Map is a framework for describing security risks and safeguards in AI systems.

In plain words
What is it for?
Use it to learn what a specific entry means and how risks connect to controls and system components.
Why use it?
It helps newcomers understand an entry's meaning, background, and links to related entries instead of reading raw framework files.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to learn what a specific entry means and how risks connect to controls and system components.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/cosai-oasis/secure-ai-tooling/explain-entity
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add cosai-oasis/secure-ai-tooling --skill explain-entity
Clone the repo
git clone --depth 1 https://github.com/cosai-oasis/secure-ai-tooling

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for explain-entity

README.md
[![agentmods](https://agentmods.dev/badge/skills/cosai-oasis/secure-ai-tooling/explain-entity/github.svg)](https://agentmods.dev/skills/cosai-oasis/secure-ai-tooling/explain-entity)
Your own site
<a href="https://agentmods.dev/skills/cosai-oasis/secure-ai-tooling/explain-entity"><img src="https://agentmods.dev/badge/skills/cosai-oasis/secure-ai-tooling/explain-entity/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for explain-entity

Your own site · 80×15
<a href="https://agentmods.dev/skills/cosai-oasis/secure-ai-tooling/explain-entity"><img src="https://agentmods.dev/badge/skills/cosai-oasis/secure-ai-tooling/explain-entity.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 141 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,100 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00141 $0.01100
Opus 5.5 $0.00056 $0.00440
Sonnet 5.5 $0.00028 $0.00220
Haiku 4.5 $0.00014 $0.00110

Measured 13d ago against content hash 05531596f410, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

explain-entity scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

scripts/skills/explain-entity/SKILL.md · 47 lines

How it starts

The opening of the file, as written. The whole thing — 47 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Explain Entity

Give a framework newcomer a clear, plain-language explanation of a single risk / control / component / persona — what it is, why it matters, its classical roots, and how it connects to the rest of the map. Read-only.

Key structural fact: risks do not reference components directly. A risk's components are always derived, through the controls that address it — risk → controls (controls.yaml, the control's own components field) → components — never a direct link, and never presented as where the risk "manifests."

Audience and voice

Security-literate, new to CoSAI-RM. Plain language; explain the framework's structure terms as you use them; link every related entity id so the reader can drill in.

How to answer

  1. Resolve the entity. Find it by id or name across risk-map/yaml/{risks,controls,components,personas}.yaml (grep). If a name matches several, list the candidates and ask which — or explain the closest and say so.
  2. Read its full definition — risk: shortDescription + longDescription + examples; control: description + guidance; component: description + edges + category; persona: description + responsibilities + identificationQuestions. For a risk or a component, also grep controls.yaml for the controls in play (below).
  3. Explain plainly:
    • What it is — one plain sentence.
    • Why it matters / what it's for.
    • Classical roots — consult the classical-lexicon skill for the established concept it extends (a control's PEP / least-privilege grounding; a risk's classical analog such as confused deputy). Bridge classical→AI.
    • Relationships (the map connections), by type:
      • risk → every control in its own controls field, listed as addressing it whatever that control's components sentinel (a components: none control still addresses the risk; at most note that it contributes no component below); the personas it impacts; and the components its addressing controls apply to — a derived set (risk → controls → components; the corpus has no structured risk→component link), not where the risk "manifests." Separately, surface every control whose risks field is all from the controls side — the risk's own field won't list them — labelled universal (addresses every risk), never merged into the risk's own control list.
      • control → the risks it addresses, the components it applies to (or, when its components field is all or none, say so instead of listing components), and the personas who implement it.
      • component → its edges (to/from), and the controls whose components list contains its id, and, through them, the risks those controls address. List the universal (components: all) controls once, separately, labelled universal — never folded into the component's own controls, and never expand their risks: all coverage into a risk list. If the component has no component-specific controls today, say so plainly, as a measured statement about the current corpus, and point to explore-exposure for its exposure — do not import a neighbour's controls, reached by any edge, or a lexicon-row's candidates; that derivation is explore-exposure's job, not this skill's.
      • persona → the risks that impact it, the controls it implements, its ISO 22989 / EU AI Act mapping.
  4. Link ids for every related entity.

Read the full file on GitHub · 47 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 13d ago Changed 05531596f410
  2. 15d ago First seen · 47 lines · 141 tokens per session scan A 5de249bb5864

Subscribe to this mod's changes

explain-entity is a skill published in the GitHub repository cosai-oasis/secure-ai-tooling (100 stars, last pushed today), licensed Apache-2.0. It adds 141 tokens to every session and 1,100 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-01.

Related

Other skills, from other repositories

svc-mobile-android

Android APK static analysis — OWASP Mobile Top 10, Retrofit API audit, transport security, smali reading, component export, auth flow analysis. Use when target is an APK/Android app. Triggers - APK, Android, mobile app, decompiled, smali, jadx, apktool.

s0ld13rr/pentestcode · 66 tokens

svc-pivoting

Turn a foothold into a RELIABLE pivot (SOCKS tunnel + persistent shell) so internal volume never rides a fragile stateless RCE. Use the moment you have code-exec on a dual-homed/edge host and need to reach an internal segment. Triggers - dual-homed host, "not reachable from my box", internal CIDR behind a foothold…

s0ld13rr/pentestcode · 103 tokens

web-auth-bypass-idor

Broken access control - IDOR, privilege escalation, JWT abuse, mass assignment, forced browsing - for web apps and APIs. Use on any multi-user or role-based app with object IDs, tokens, or admin functionality. Triggers - /api/users/ , /orders/ , ?account=/uid=/doc=, JWT (eyJ...), role/isAdmin field, admin panel, "403…

s0ld13rr/pentestcode · 97 tokens

web-deserialization

Insecure deserialization to RCE for web apps. Use when the app deserializes attacker-controlled data - cookies/tokens/hidden fields/params that are serialized blobs, VIEWSTATE, Java/PHP/.NET/Python/Node apps. Triggers - base64 starting rO0AB or hex AC ED 00 05 (Java), PHP serialize O-prefix, VIEWSTATE, python pickle…

s0ld13rr/pentestcode · 98 tokens

web-lfi-traversal

Path traversal / Local File Inclusion detection→file-read→RCE for web apps. Use when a param names a file/path/page/template/lang/download, or a response embeds file contents. Triggers - file=/page=/path=/template=/lang=/download=/include= param, ../, %2e%2e, "no such file", directory listing, download endpoint.

s0ld13rr/pentestcode · 83 tokens

web-sqli

SQL injection detection→exploitation→proof for web apps and APIs. Use when a parameter reaches a DB query, when input triggers a SQL error / boolean or time differential, or during VULN-ASSESSMENT/EXPLOITATION on a web target. Triggers - sql syntax error, ORA-/MySQL/psql/SQLite error string, ' or 1=1, order by…

s0ld13rr/pentestcode · 100 tokens