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/geminilight/mindos/plugin-core-builtin-migrationnpx skills add GeminiLight/MindOS --skill plugin-core-builtin-migrationgit clone --depth 1 https://github.com/GeminiLight/MindOSWhat 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.00086 | $0.01834 |
| Opus 5 | $0.00043 | $0.00917 |
| Sonnet 5 | $0.00017 | $0.00367 |
| Haiku 4.5 | $0.00009 | $0.00183 |
Grade A, and why
plugin-core-builtin-migration 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 3d 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 — 178 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Plugin Core Built-in Migration
把单个插件改造成“稳定、默认、不可缺席”的产品能力,并沉淀可复用迁移步骤。
适用场景:
- 某插件已经成为核心体验(例如 TODO、CSV、配置、变更中心)
- 旧插件入口要退役,但历史数据要可迁移
- 需要避免“某页面漏 import 导致插件空列表”这类注册漂移
目标定义(先对齐)
在本项目中,“完全内置”建议同时满足:
- 注册稳定:渲染器注册有且仅有一个客户端根入口(推荐
SidebarLayout/ShellLayout) - 默认可用:
manifest.builtin = true - 不可禁用(如需真正 core):
manifest.core = true(registry会强制启用) - 可观测可维护:插件页、设置页、文档、测试一致
- 历史兼容:旧入口数据有迁移方案,不丢内容
- 表层语义清晰:区分“插件(可管理)”和“应用内建能力(不在插件面板展示)”
质量闸门(必走)
每次执行本 Skill 时,默认同时应用以下质量视角(按顺序):
-
产品设计视角(
product-designer)- 检查信息层级、任务路径、主次操作、反馈时机
- 明确“主路径 3 步内可完成”,避免迁移后流程变长
-
UI/UX 视角(
ui-design-patterns)- 检查按钮层级、交互一致性、空状态/错误状态/加载状态
- 禁止无意义下划线链接滥用;主 CTA 与次级 CTA 视觉层级明确
- 深色模式可读性必须通过(按钮文字对比、tag 对比、focus 可见)
-
实现质量视角
- 迁移逻辑幂等(重复执行不重复导入)
- 注册机制单点化(禁止多处散落 import 造成漂移)
- 避免仅服务端注册导致客户端
0/0空列表- 兼容代码失败不阻断主流程(best-effort + 可观测)
- 验证视角
- 最少通过:core/API 回归测试 + lint
- UI 变更至少进行一次人工检查(亮色/暗色)
若任一步不满足,迁移不得判定完成。
执行流程(通用)
Step 1) 盘点现状与边界
先确认插件的四类事实来源:
- 代码入口:
packages/web/components/renderers/<plugin>/manifest.ts - 注册入口:
packages/web/lib/renderers/index.ts(自动生成) - 使用入口:
resolveRenderer()调用链(如ViewPageClient) - 展示入口:插件面板/设置页(优先使用
getPluginRenderers())
并回答:
- 该插件是否应 core(不可关闭)?
- 是否存在旧文件协议/旧入口(如
Agent-Diff.md)需要迁移?
Step 2) 升级插件声明
在 manifest 中设置:
builtin: true(内置)core: true(若要完全内置且不可关闭)appBuiltinFeature: true(若是“应用内建能力”且不应出现在插件管理面板)match保持明确,避免误匹配
如果插件要被替换/下线:
- 删除旧 renderer 文件
- 重新生成
packages/web/lib/renderers/index.ts
Step 3) 统一注册机制(防漂移)
必须收敛为单点初始化(客户端):
- 在客户端根组件(推荐
SidebarLayout)引入@/lib/renderers/index - 移除其他页面/组件分散 import(避免重复与遗漏并存)
验收标准:
- 任意路由进入插件页,插件列表不应出现
0/0的假空状态 - 在“应用内建能力”模式下,被标记能力应从插件面板消失但渲染仍正常
Step 4) 历史兼容迁移(关键)
如果旧插件依赖旧文件格式:
- 在核心数据层实现“懒迁移”:
- 首次读取时自动导入旧格式
- 写入新格式(结构化 JSON)
- 迁移后清理旧入口文件(防止双写和重复导入)
- 提供一次性脚本(离线/手动修复):
scripts/migrate-*.js
Step 5) UI/UX 对齐
- 插件页:状态、可开关策略与 core 语义一致
- 设置页:显示 builtin/core 标签逻辑一致
- 若设为
appBuiltinFeature:在插件页/设置页/首页 Extensions 一致隐藏 - 新主流程页面补齐筛选、空状态、加载、已读等基本交互
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.
- 3d ago First seen · 178 lines · 86 tokens per session scan A 4db21974f550
plugin-core-builtin-migration is a skill published in the GitHub repository GeminiLight/MindOS (662 stars, last pushed 7d ago), licensed MIT. It adds 86 tokens to every session and 1,834 once invoked, about $0.0004 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-30.
Other skills, from other repositories
acontext-installer
Install Acontext, Login & Init Acontext Project, Add Skill Memory to Agent.
design-taste-frontend
Anti-slop frontend skill for landing pages, portfolios, and redesigns. The agent reads the brief, infers the right design direction, and ships interfaces that do not look templated. Real design systems when applicable, audit-first on redesigns, strict pre-flight check.
stitch-design-taste
Semantic Design System Skill for Google Stitch. Generates agent-friendly DESIGN.md files that enforce premium, anti-generic UI standards — strict typography, calibrated color, asymmetric layouts, perpetual micro-motion, and hardware-accelerated performance.
image-to-code
Elite website image-to-code skill for Codex. For visually important web tasks, it must first generate the design image(s) itself, deeply analyze them, then implement the website to match them as closely as possible. In Codex, it must prefer large, readable, section-specific images instead of tiny compressed boards…
imagegen-frontend-mobile
Elite mobile app image-generation skill for creating premium, app-native screen concepts and flows. Designed for iOS, Android, and cross-platform mobile products. Prioritizes clean hierarchy, comfortably readable text, strong multi-screen consistency, controlled color palettes, non-generic creative direction, textured…
imagegen-frontend-web
Elite frontend image-direction skill for generating premium, conversion-aware website design references. CRITICAL OUTPUT RULE — generate ONE separate horizontal image FOR EVERY section. A landing page with 8 sections produces 8 images. Never compress multiple sections into one image. Enforces composition variety (not…