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.
npx skills add LerianStudio/ring --skill declaring-plugin-permissionsgit clone --depth 1 https://github.com/LerianStudio/ringWrote 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.
[](https://agentmods.dev/skills/lerianstudio/ring/declaring-plugin-permissions)<a href="https://agentmods.dev/skills/lerianstudio/ring/declaring-plugin-permissions"><img src="https://agentmods.dev/badge/skills/lerianstudio/ring/declaring-plugin-permissions.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00177 | $0.04124 |
| Opus 5 | $0.00088 | $0.02062 |
| Sonnet 5 | $0.00035 | $0.00825 |
| Haiku 4.5 | $0.00018 | $0.00412 |
Grade A, and why
ring:declaring-plugin-permissions 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 4d 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.
How it starts
The opening of the file, as written. The whole thing — 304 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Declaring Plugin Permissions
Drive a Lerian plugin team through authoring permissions.yaml — the client-side,
SEMANTIC declaration the plugin PUBLISHES at boot under the access-manager
inversion. This is an interactive workflow: follow the steps in order and use
AskUserQuestion to gather every choice. Do not free-hand a manifest.
Overview
Schema authority: lib-auth/v3 auth/declaration/manifest.go (>= v3.4.0-beta.1),
mirrored server-side by plugin-access-manager identity/pkg/model/declaration.go.
The reconciler validates this exact shape at boot and refuses a bad manifest.
THE CRITICAL INVARIANT: every (resource, action) pair in the manifest MUST
exactly match a real AuthClient.Authorize(service, resource, action) guard in the
plugin (lib-auth auth/middleware/middleware.go). If they diverge, authz silently
breaks — the guard demands a permission the manifest never declared. Adopting the
semantic standard therefore means the route guards AND the manifest move together.
- CANONICAL model (semantic, complies):
br-sisbajud(internal/auth/declaration/permissions.yaml). - ANTI-EXAMPLE (HTTP verbs, do NOT copy):
midaz-fees— its guards passAuthorize("plugin-fees","estimates","post"). Legacy. Never emit verb actions.
When to use
- A plugin must publish its own permissions at boot (inversion) — authoring a new
permissions.yaml. - Fixing or migrating a plugin whose guards/manifest use HTTP verbs to the semantic standard.
Skip when
- The plugin has no
Authorize(...)guards / no RBAC surface. - Only the wiring is needed and the manifest already exists — point to
authdecl.WireFromEnvand stop.
The naming standard (non-negotiable)
The schema doc comment says verbatim: "The action is SEMANTIC (create/read/update/delete), never an HTTP verb."
| HTTP verb (FORBIDDEN) | Semantic action (REQUIRED) |
|---|---|
| post | create |
| get | read |
| put / patch | update |
| delete (method) | delete / remove |
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.
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.
- 4d ago First seen · 304 lines · 177 tokens per session scan A 130b9b652433
ring:declaring-plugin-permissions is a skill published in the GitHub repository LerianStudio/ring (211 stars, last pushed 19d ago), licensed Apache-2.0. It adds 177 tokens to every session and 4,124 once invoked, about $0.0009 per session on Opus 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-09-03.
Other skills, from other repositories
code-review
Plan-Forge-tuned comprehensive code review — runs public-surface diff, forge analysis, architecture / security / testing / patterns checks, plus Plan-Forge-specific gates (ACI compliance, dual-shell parity, branch model). Use before merging features or at the end of a phase. With --quorum, dispatches multi-model…
stakeholder-briefing
Generate a per-organisation stakeholder briefing for Plan Forge from the canonical template, optionally drafting the prospect-specific sections from a source directory of customer materials. Use when an internal champion needs to walk a colleague or VP through the decision to adopt Plan Forge.
forge-quench
Systematically reduce .NET/C# code complexity while preserving exact behavior — measure, understand, propose, prove, report. Use after a feature is complete and tests pass, when code works but is harder to maintain than it should be.
ui-scaffold
Scaffold a new Blazor page with proper layering — service interface, page component (markup + code-behind split), DTO, validation, error handling, and bUnit test. Enforces architecture-principles + blazor-fluent-ui conventions. Use when adding any new UI surface to a Blazor Server app.
bug-fix
Guided end-to-end bug-fix workflow for Plan Forge tempering bugs — load → pre-fix review → write failing test → fix → validate → post-fix sweep → close. Composes /code-review, /clean-code-review, /forge-quench, and /test-sweep around the forgebug tool surface so a fix never closes without a regression check.
security-audit
Comprehensive .NET security audit — OWASP vulnerability scan, NuGet vulnerability check, secrets detection, and combined severity report.