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 agentmods add skills/vod-studio/violet/permission-pointsnpx skills add VOD-Studio/violet --skill permission-pointsgit clone --depth 1 https://github.com/VOD-Studio/violetWrote 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/vod-studio/violet/permission-points)<a href="https://agentmods.dev/skills/vod-studio/violet/permission-points"><img src="https://agentmods.dev/badge/skills/vod-studio/violet/permission-points.svg" alt="Measured on agentmods" height="20"></a>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 | $0.00052 | $0.00890 |
| Opus 5 | $0.00026 | $0.00445 |
| Sonnet 5 | $0.00010 | $0.00178 |
| Haiku 4.5 | $0.00005 | $0.00089 |
Grade A, and why
permission-points 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 5d 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.
What it actually says
权限点设计规范
权限点格式 module:action:module 为名词,action 多词用连字符。格式与校验正则以仓库的权限实体源码为唯一真相(grep ParseCode / 权限码正则定位),不在此复述。
粒度判断树
按序判定:
- 有独立后台页面的 module,先按页面性质分两支:
- 有独立管理对象(存在 CRUD 语义的资源,如文章/评论/用户)→ 必建
view(页面可见性 + 读接口共用)。 - 纯聚合只读页(无管理对象,如后台概览/统计总览)→ 跟随所在区域门禁(如
admin:access),不单独建点。裁决标准是受众:已持区域门禁者看聚合数字不构成最小权限违规(无被迫升权);仅当预期出现独立受众角色(如只读运营只看统计、不进其他管理页)时才建xxx:view,属 additive 拆分(第 4 条)。
- 有独立管理对象(存在 CRUD 语义的资源,如文章/评论/用户)→ 必建
- 写操作默认合用一个
manage——前提:所有角色对该 module 的写操作总是同时授予,无拆分需求。 - 出现具体授权差异(存在「能 X 不能 Y」的角色需求)时才拆:
- CRUD 语义用标准动词
create/update/delete; - 业务语义用精确动词(
publish/approve/ban等),不硬套 CRUD。
- CRUD 语义用标准动词
- 拆分是 additive(新权限点 seed 给原有角色,授权只增不减);合并是 breaking(需回收已授权限)。宁粗勿细,等需求出现再拆。
manage遮蔽实际能力——一旦某 module 出现部分授予需求,立即拆成显式动词,不往manage上叠语义。
新增权限点同步清单
- 常量:权限码预定义常量表(domain 层;项目无此表则建立)加新码。
- 迁移:新建 add-permission 迁移,以仓库最近一个同类迁移为模板(INSERT 权限 + 挂 menu/分组 + seed 默认角色,均带幂等保护)。
- 后端引用:路由权限中间件与应用层校验一律引用常量,不写字符串字面量。
- 前端:后台导航配置的权限数组 + 页面内权限门控 hook / guard。
四层全部落地才算完成;漏前端会让无权限用户看到入口,漏迁移会让常量指向不存在的权限点。
鉴权位置
- 路由权限中间件管模块入口(整组端点的粗门禁)。
- 「作者本人 or 持某权限」的双轨判断放应用层 service:路由不挂中间件,service 内校验放行作者或权限持有者。
删除权限点
功能下线时反向清理,迁移按外键依赖顺序:先删角色关联,再删孤立分组节点,最后删权限点行;{up,down}.sql 成对。确认路由与应用层无引用后删常量,构建验证;前端导航与门控调用点同步移除。
拆分 manage(判断树第 5 条)= 先按同步清单新增动词权限点并 seed 给原有角色,引用点全部切换后,旧 manage 若无消费方按上述流程删除。
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.
- 5d ago First seen · 43 lines · 52 tokens per session scan A 987498911db1
permission-points is a skill published in the GitHub repository VOD-Studio/violet (3 stars, last pushed yesterday), licensed MIT. It adds 52 tokens to every session and 890 once invoked, about $0.0003 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-08-31.
Other skills, from other repositories
openspec-sync-specs
Sync delta specs from a change to main specs. Use when the user wants to update main specs with changes from a delta spec, without archiving the change.
testing-the-mcp-server
Test the libtmux-go MCP server end to end — drive the real binary over raw JSON-RPC, run the exhaustive advertised-schema gate, and point installed agent CLIs (Claude, Codex, Cursor, Gemini, grok, agy, opencode) at a local build. Use when verifying the server beyond go test, checking a branch works in a real client…
dark-memory
Use for governance, memory, drift detection, and audit trail via dark-memory-mcp. Covers 52 canonical + 3 red-team tools across 16 namespaces: session lifecycle, agentmemory CRUD+search, vibe-flow spec/artifact publish + drift, LLM-as-judge, delegation+mindset, research, observability, error observatory, governance…
audit-network-security
../../../.github/skills/audit-network-security/SKILL.md.
ddd-go-backend
Build production-ready Go backend services following DDD-layered architecture. Covers project scaffolding, config (Viper), database (GORM + MySQL/PostgreSQL), object storage (S3/MinIO), OAuth2 + JWT auth, OpenTelemetry tracing + Jaeger visualization, Zap logging, middleware patterns, and API routing. Use when creating…
openspec-update-change
Update an OpenSpec change by revising its existing planning artifacts and keeping them coherent with one another. Use when the user wants to revise a change's plan, fold new decisions into it, or reconcile its artifacts after an edit. Never edits code.