Borrowing it
Nothing to install: this file belongs to zhinjs/zhin. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/zhinjs/zhin/main/.github/skills/zhin-plugin-standard-development/SKILL.mdgit clone --depth 1 https://github.com/zhinjs/zhinWrote 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/zhinjs/zhin/zhin-plugin-standard-development)<a href="https://agentmods.dev/skills/zhinjs/zhin/zhin-plugin-standard-development"><img src="https://agentmods.dev/badge/skills/zhinjs/zhin/zhin-plugin-standard-development/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.
<a href="https://agentmods.dev/skills/zhinjs/zhin/zhin-plugin-standard-development"><img src="https://agentmods.dev/badge/skills/zhinjs/zhin/zhin-plugin-standard-development.svg" alt="Reviewed on agentmods" width="80" 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.00063 | $0.02879 |
| Opus 5.5 | $0.00025 | $0.01152 |
| Sonnet 5.5 | $0.00013 | $0.00576 |
| Haiku 4.5 | $0.00006 | $0.00288 |
Grade A, and why
zhin-plugin-standard-development 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 18d 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 — 193 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Zhin 插件标准开发姿势(Plugin Runtime)
把需求落成符合仓库约定的可运行插件。唯一创作面是 Plugin Runtime。
zhin runtime start 是唯一启动路径。插件即 package:package.json#zhin 声明 manifest,
plugin.ts 必须 default-export definePlugin(),否则装配抛
does not default-export a Plugin definition。
能力按命名目录发现(每个能力固定入口并 default export),不要命令式注册。
服务端命令、中间件、组件的 provider 支持 index.tsx;其他服务端能力使用 index.ts,
不能把 JSX 入口约定推广到所有能力。浏览器 pages 使用 Client Build 编译 index.tsx:
| 目录 | API |
|---|---|
commands/**/index.ts |
defineCommand()(目录路径即路由;[name] / [[name]] / [...name] / [[...name]] 传参,类型与默认值在 params 中声明) |
middlewares/<name>/index.ts |
defineMiddleware() |
handlers/<name>/index.ts |
defineHandler() |
components/<name>/index.tsx |
defineComponent() |
tools/<name>/index.ts |
defineAgentTool() |
mcps/<name>/index.ts |
defineMcp() |
schedules/<name>/index.ts |
defineSchedule();也可在 plugin.ts 注入 |
hooks/<name>/index.ts |
defineHook() |
pages/<name>/index.tsx |
definePage()(nav/ / footer/ 为布局槽) |
skills/<name>/SKILL.md |
Markdown Skill |
agents/<name>/agent.json |
Agent 元数据;提示词和边界文件与其同目录 |
DI:context.resources(Scope + Token)。清理:context.lifecycle。
JSX 创作与发送规则见 中间件与组件:
jsxImportSource: "zhin.js";能力与节点类型从 zhin.js/jsx 导入;可选展示组件从
@zhin.js/components 导入,标题、标签、值等可接受 JSXRenderable。
Command execute、入站 handle、注册组件 render 可直接返回 JSX,链结束自动回复一次。
入站 return next() 或仅 await next() 均透传;出站通过 input.replace(JSX) + next 放行,返回 void。
服务端 TSX 仅转译 JSX,不支持直接导入 .css、CSS Modules、?raw,也不包含
Sass/SCSS、Less、Stylus、PostCSS 等样式构建;使用内联 style、主题与 custom.style。
不得使用旧 renderJSX、字符串组件模板或 Satori JSX runtime。
禁止使用 usePlugin() / getPlugin() / MessageCommand / addCron(new Cron) /
declareConfig 经典路径;zhin.js/node 与 bootstrapNode 已删除且不再导出。
迁移旧代码用 migrate-zhin-plugin-runtime。
配套资产:
官方指令摘要:.github/instructions/zhin-plugin.instructions.md。
What ships with it
14 files 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.
- assets/ai-tool-template.ts 1.5 KB runs code
- assets/component-template.tsx 459 B
- assets/cron-template.ts 1.4 KB runs code
- assets/database-service-template.ts 2.4 KB runs code
- assets/event-hooks-template.ts 1.7 KB runs code
- assets/minimal-plugin-template.ts 1.9 KB runs code
- assets/model-definition-template.ts 869 B runs code
- assets/modular-plugin-entry-template.ts 2.0 KB runs code
- assets/plugin-web-entry-template.tsx 503 B
- references/database-modeling.md 2.6 KB
- references/implementation-branches.md 3.2 KB
- references/plugin-capabilities.md 3.1 KB
- references/plugin-directory-layout.md 2.8 KB
- test-prompts.json 381 B
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.
- 18d ago Changed · +13 lines 950f2838a23d
- 1mo ago Changed · +9 lines a98d1ce525ea
- 2mo ago First seen · 171 lines · 63 tokens per session scan A dce693ddd956
zhin-plugin-standard-development is a skill published in the GitHub repository zhinjs/zhin (136 stars, last pushed today), licensed MIT. It adds 63 tokens to every session and 2,879 once invoked, about $0.0003 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-08-30.
Other skills, from other repositories
wegent-knowledge
Knowledge base management and search tools for Wegent. Provides capabilities to list, create, update, and search knowledge bases and documents using RAG retrieval. Use this skill when the user wants to manage knowledge bases, documents, or search for information programmatically.
a0-development
Develop or operate Agent Zero: projects, chats, tasks, framework, tools and API/WebUI.
tech-design
A guided process for writing a backend technical design from a product requirements document or feature description. A technical design explains how a feature should work in code and services.
http_request
Make HTTP requests (GET, POST, PUT, DELETE, PATCH) to any API endpoint. Use when: the user asks to call an API, test an endpoint, fetch JSON/data from a URL, or interact with a REST API. NOT for: web scraping (use webscraper), web search (use tavilysearch), or file downloads (use curl/wget).
maf-fan-out-validator
Validates fan-out / fan-in workflow topology — detects the silent fan-in starvation pattern (handlers returning void / non-generic Task that produce no downstream message). Canonical rules + procedure for what the compiler cannot catch and the build cannot surface.
eve
Build durable backend AI agents with the eve framework. Use when creating, editing, or debugging an eve project — agent instructions, skills, tools, connections, channels, sandboxes, subagents, schedules, or evals.