authorization skillA
authorization is agent-read markdown (skill) from nahid-sparktales/agent-dispatcher: Decide what an authenticated caller may do — pick the permission model, put the check at one enforcement point close to the data, and default to deny. Use when adding roles or permissions, scoping data per tenant or per owner, building an admin-only path, reviewing an endpoint that trusts a client-supplied id, or when someone reports seeing data that is not theirs. Not for establishing identity (that is authentication), and hiding a control in the UI is never the enforcement..
Indexed from public GitHub and served as immutable, content-addressed versions. Install it pinned to an exact SHA-256 with the mdr CLI, and every file is verified against the hash recorded here before it reaches your agent. The deterministic audit below grades the latest version, and the same file always earns the same grade.
What the file says
# Authorization Authentication says who is calling. Authorization says what that caller may do to **this** resource. Being logged in is not a permission, and a hidden button is not a check — the request still leaves the browser exactly the same way. ## When this fires A rule of the form "only X may do Y to Z" is being added, changed, or doubted. Roles, admin areas, per-owner or per-tenant data, sharing, feature gating that carries money or privacy. Also fires on any report that a caller reached a resource they should not have. ## Procedure 1. **Write the rule as one sentence:** *who* may do *what action* to *which resource*, under *what condition*. If it will not fit in a sentence, either the model is wrong or there are two rules. Do this before opening an editor — most authorization bugs are unwritten rules. 2. **Choose the smallest model the rules need.** A handful of fixed roles → a role check. Rules that read the resource (owner, tenant, state, amount) → an attribute or ownership check. "A may see it because B shared it" → a relationship check. Do not stand up a policy engine for three roles; do not fake relationships with an ever-growing enum. …
Read the whole file at its exact version.
How to install
mdr add nahid-sparktales/agent-dispatcher/authorization@git:20260919.a0d4f55mdr add nahid-sparktales/agent-dispatcher/authorization@sha256:43f86b25e0007433Pin to a label to follow the author's releases, or to a sha256 to freeze the exact bytes forever. Either way the resolved hash is written to mdr.lock, and mdr install reproduces it on any machine.
[](https://markdownregistry.com/a/art_sp5ukl5jent5nqsi)
1 badge views in 30 days
Versions
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (6487 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
nahid-sparktales/agent-dispatcher · 49 stars · license MIT · pushed 2026-09-23 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_sp5ukl5jent5nqsi GET https://markdownregistry.com/api/v1/resolve?ref=nahid-sparktales/agent-dispatcher/authorization GET https://markdownregistry.com/api/v1/blob/43f86b25e0007433419a7b6ebd314c47e19760af9b7225664ada0e18c043689d
Your agent does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.