pillar-labs/sail
>- Apply the SAIL (Secure AI Lifecycle) V2 framework by Pillar Security to secure AI applications and agents. Use this skill whenever the user asks about AI or agent security — assessing an AI system or agent architecture for risks, building an AI security roadmap or maturity assessment, writing or reviewing an AI security policy, creating compliance checklists (ISO/IEC 42001, EU AI Act, OWASP LLM/Agentic, DASF, AIUC-1), prioritizing AI security controls, evaluating AI vendors or tools (RFPs, security questionnaires), securing MCP servers, agent identities, or LLM apps, or asking what "SAIL" or a "SAIL ID" (e.g., SAIL 5.17) means. Also use it when the user is building agentic features and wants to know which security risks apply — even if they never say "SAIL".
npx skills add https://github.com/pillar-labs/sail-skill --skill sail
SAIL is Pillar Security's framework for building, deploying, and operating AI systems and agents securely. It is a working tool, not a reading exercise: users bring real systems, policies, and compliance obligations, and expect concrete, catalog-grounded answers. Whether they are writing their first AI policy or already operating hundreds of agents, SAIL is used to:
Each has a workflow below.
Three zones define *where* agentic risk materializes (drawn by where the risk lands, not where the process runs):
Seven lifecycle phases define *when* controls apply. Each phase has a numbered risk catalog — 91 risks total, each with an ID like SAIL 3.4:
| Phase | Name | Lifecycle stage | Risk IDs |
| :-- | :-- | :-- | :-- |
| 1 | AI Policy | Plan | SAIL 1.x |
| 2 | AI Discovery | Code/No Code | SAIL 2.x |
| 3 | Agentic Posture Management | Build | SAIL 3.x |
| 4 | Agentic Red Teaming | Test | SAIL 4.x |
| 5 | Runtime Controls | Deploy | SAIL 5.x |
| 6 | Sandbox | Operate | SAIL 6.x |
| 7 | Govern | Monitor & Retire | SAIL 7.x |
Every risk row in the catalog carries: description, concrete example, assets affected, mitigations, and standards mappings (ISO/IEC 42001, EU AI Act, OWASP LLM Top 10, OWASP Agentic, DASF, AIUC-1). SAIL IDs are the shared vocabulary — always cite them (e.g., "this maps to SAIL 5.17") so security, legal, compliance, and engineering can reference the same rows in risk registers and design reviews.
Do not answer SAIL questions from general knowledge. The value of this skill is the actual catalog text — the mitigations, examples, and standards mappings the user's auditors and vendors will check against. Before making claims:
references/risk-index.md first — all 91 risks in one compact table (ID, name, one-line summary, phase, file). Use it to decide which risks are in scope.| File | Contents | Read when |
| :-- | :-- | :-- |
| references/risk-index.md | All 91 risks: ID, name, summary, phase | Almost always — this is your map |
| references/framework.md | Executive summary, Chapter 1 (agentic workforce, the three zones with per-surface risk tables), Chapter 2 (phase overview, agentic stack components, how to use SAIL) | Explaining the framework, scoping zones, writing intros for deliverables |
| references/phase-1-policy.md … phase-7-govern.md | Full risk catalog per phase: descriptions, examples, assets, mitigations, standards mappings | Citing any risk in detail; building checklists, assessments, roadmaps |
| references/definitions.md | Appendix A: definitions of AI/agentic components (agent, MCP server, skill, agent identity, …) | Terminology disputes, glossaries for deliverables |
| references/use-case.md | Appendix B: worked FinTech example (agentic investment research platform) | User wants an example of SAIL applied end-to-end |
/sail or the intent is unclear> In Claude Code (plugin install), four commands skip this intake and run their workflow immediately: /sail:assess, /sail:roadmap, /sail:comply, /sail:rfp. If the user's request already matches one of those workflows, behave the same way — go straight to it.
If the user invoked this skill directly with no task attached (e.g., typed /sail), or their request doesn't clearly match one workflow, don't guess — run a short intake. Use the AskUserQuestion tool if available; otherwise ask in plain text. Batch related questions — don't interrogate one at a time.
Step 0 — Detect the working context first. Before asking anything, look at where the skill was invoked. Quickly scan the current repo for agent artifacts: agent framework imports (LangGraph, CrewAI, AutoGen, LlamaIndex, the Agents SDK), agent/tool configs (agent.yaml, AGENTS.md, .cursor/rules, MCP configs like mcp.json / claude_desktop_config.json), system-prompt files, or tool/MCP-server definitions.
If the repo contains an agent, lead with assessing it. Make the first option "Assess the agent in this repository (SAIL gap analysis)" — the user is standing in an agent project; the highest-value move is to run the gap-analysis workflow on the code in front of you (extract the component inventory from the repo yourself; don't ask the user to describe what you can read). Offer the other deliverables after it. A good option list in this context:
Pick the chosen deliverable, then jump to the workflow (for agent assessment, run "Assess a system / gap analysis" directly against the repo). Only ask the remaining scoping that workflow needs.
If the repo has no agent (or the skill isn't in a code context), run the top-down program intake below — establish the *program* first, then *what they're protecting*, then the deliverable.
Question 1 — What kind of program is this? (single-select) This frames everything: the same catalog is filtered and sequenced differently depending on the mandate. Offer:
Question 2 — What do you have in your org to protect? (MULTI-select) Users rarely have just one thing — capture the whole environment so the assessment scopes to their real asset mix. This maps directly to the zones and to the catalog's "Assets Affected" column. Offer (multi-select):
Question 3 — Which deliverable do you want? Map the program + assets to a workflow and confirm which output they need: roadmap, maturity assessment, compliance checklist, control prioritization, vendor RFP, system gap analysis, team-alignment artifact, or just Q&A. Often Q1 already implies it — offer the best-fit as the default and let them redirect.
Then ask only the remaining scoping the chosen workflow needs (skip anything Q1/Q2 already answered):
Confirm scope in one sentence, then run the matching workflow. Don't re-ask what they already told you.
If the user arrived with a fully-specified task, skip the intake entirely and go straight to the workflow.
Pick the workflow matching the user's intent. All of them share the same skeleton: scope by zone → select risks from the index → pull detail from phase files → deliver with SAIL IDs cited.
This is the flagship deliverable — make it comprehensive. Two things make an assessment comprehensive: a component inventory in SAIL's own taxonomy, and a disposition for *every* risk in the catalog (not just highlights).
references/definitions.md; layer grouping in references/framework.md §2.2). If the user gave you a codebase or design doc, extract this yourself before asking questions. This inventory is not decoration: the catalog's "Assets Affected" column uses exactly these component names, so the inventory mechanically determines which risks apply.risk-index.md and give every risk a disposition — don't stop at the obvious hits:A risk applies if its Assets Affected intersect the component inventory. Read the full phase-file row for every risk dispositioned Gap/Partial/Verify so mitigations are quoted from the catalog, not invented.
Walk the seven phases in order and assess coverage at each. The gaps, sequenced by phase, *are* the roadmap: Phase 1 gaps come first because later controls need policy backing (e.g., runtime action authorization in SAIL 5.x presumes the policy of SAIL 1.12 exists). Present as a phased plan with SAIL IDs, quick wins flagged separately from structural work.
Score each relevant risk — unaddressed / partially mitigated / mitigated with evidence — to produce a per-phase maturity profile the user can trend over time. Use the three zones to determine which risks apply to their environment before scoring; scoring risks that can't apply inflates noise. Output a per-phase summary table plus the detailed scored rows.
Filter the catalog by the framework the user is accountable to (ISO/IEC 42001, EU AI Act, OWASP LLM/Agentic, DASF, AIUC-1). Grep the phase files for that framework's tag in the Standards Mapping column, then present the matching risks as a control checklist in *that framework's language* (article/control numbers first, SAIL IDs as cross-reference). State plainly: mappings indicate alignment, not automatic compliance.
Focus on risks at the intersection of: the user's zones, the assets they actually have, and their weakest phase. Autonomy tiers (SAIL 1.11) set control intensity per agent — a fully autonomous agent warrants stricter controls than a supervised assistant for the same risk row. Deliver a ranked list with a one-line justification per item.
The deliverable is a markdown RFP questionnaire the user can send directly to vendors — self-contained, professionally framed, with instructions and space for vendor responses.
Do not emit one question per SAIL risk. A 60-line questionnaire that mirrors the catalog row-for-row is unusable in a real procurement. Instead, write a tight set of general, well-crafted RFP items shaped by the user's stated focus, and map each item to the SAIL cluster it covers. The SAIL mapping is a *citation on the question*, not the question itself. A mapping can be:
How to build it:
The framing flips by which kind of vendor is being assessed:
Structure the output as: short intro (scope + how to respond) → themed sections, each with a few general questions carrying their SAIL-cluster mapping and (for security vendors) the coverage response template → a closing section naming the highest-severity risk clusters so the buyer knows which answers matter most. If it's unclear which kind of vendor, ask — it changes every question's framing.
When the user needs cross-team artifacts — design review templates, risk register entries, exception requests, or a shared glossary — anchor every item to a SAIL ID so all four teams reference the same catalog row. A risk register entry should carry: SAIL ID, risk name, the team owning the mitigation, current status, and the standards mappings legal/compliance care about. For terminology disagreements, references/definitions.md is the arbiter. The point is one vocabulary: engineering argues about the mitigation, not about what the risk is called.
When the user is building agent/LLM features (with or without mentioning SAIL): identify which risks the code in front of you triggers (tool definitions → MCP vetting risks, agent memory → memory poisoning, new credentials → agent identity risks), name them by SAIL ID, and apply the catalog's mitigations in the implementation itself — not as a lecture afterward.
For "what is SAIL X.Y" or conceptual questions, read the relevant reference file and answer from it, quoting the catalog's own example when it helps. If asked about something the framework genuinely doesn't cover, say so rather than stretching a mapping.
Take pillar-labs/sail from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.