4 种 = Hook 确定性拦截 · Skill 语义触发 · MCP 工具 按需调用 · Slash 人工命令
每个 plugin / MCP 是做什么的,以及它在你写代码时——由什么触发、何时介入、怎么接力。
3 个插件 + 2 个 MCP 实例,各自的职责边界。先用「形态」给它们定调。
运行时谁来决定「现在该谁上」——Hook / Skill / MCP 工具 / Slash 四种触发逻辑。
理解了这四种调度方式,整套体系就不再是黑盒。
用 /plugin install 安装。内部装两种东西:Skill(给 AI 的行为指引)+ Hook(挂在工具生命周期的确定性脚本)。
team-standards 团队开发规范project-coding-profiles 项目编码画像yoooni-daily-plugin Yoooni 日常工具箱(含一键安装)
用 claude mcp add 注册常驻进程(stdio),对外暴露一组工具。AI 需要时主动调用、按需取数,不灌满上下文。
domain-knowledge 业务公共认知库cross-topology 跨项目拓扑库即 Hook 钩子(确定性·机械拦截) Skill 技能(语义·LLM 判断) MCP 工具(按需·Agent 主动调) Slash 命令(人工·用户显式)四种
PreToolUse 工具调用前按 matcher 自动跑,可放行/警告/硬阻断。绕不过的防护栏。
把你的意图和技能描述比对,命中就加载这份「作业手册」。无需敲命令。
需要业务/拓扑认知时主动查。渐进披露:search→get→related。
你主动敲的 /命令(如 /plugin install):最确定(敲啥执行啥、无歧义),但用得最少——日常你大多是自然语言提需求(那是触发 Skill / 让 AI 调 MCP,不算 Slash)。多用于安装注册等一次性动作。
用户键入 /命令 或直接打字提需求——整件事的触发源,人指挥 AI。
AI 上下文里已就位:每个技能"何时用"的描述 + 可调外部工具清单。Hook 则由宿主从 hooks.json 注册,AI 看不见。
命中意图 → 载入该 Skill 全文照做;需要业务/拓扑 → 主动调 MCP(先 search 摘要、再 get 正文)。
AI 每次"即将 Write/Edit/Bash" → 宿主在落盘前自动跑 hook:放行 / 警告 / exit 2 阻断。绕不过。
hooks.json 登记 → 模型请求 Bash / Write → 命中 matcher → 执行前 spawn 脚本、stdin 喂 JSON(命令/路径/内容)→ 脚本判定 → exit 2 拦 / exit 0 放
Co-Authored-By: Claude <noreply@anthropic.com> → 正则命中 → exit 2,commit 被拦,stderr 提示回灌、让模型删署名重提。
=warn / off 旁路兜底。
下达需求「做这个 / 改那个」——一切的起点,人发号施令。
员工内化的本领 / 招式书:先知道「我会哪些招」,命中场景就放对应招(先设计、按规范…)。
随时打电话查的资料库 / 外援专家:业务真理、DDL、跨项目地图,缺料就查、不瞎编。
不在员工身上,是公司装在流程上的关卡:他每次「交付 / 动手」前都要过安检,不合规当场拦、绕不过。
check-git-commit-skill(提交规范检查)、check-commit-no-ai-signature(AI 署名拦截)check-design-doc(设计文档检查)、check-backend-kg-readiness(知识图谱预读)、check-comment-density(注释红线)、check-sql-ddl-readiness(写 SQL 前核对 DDL)design-doc-required(先出设计文档)、coding-standards-common(通用编码规范)、git-commit-standards(提交规范)、daily-work-log(工作日志)…warn / block / off 环境变量调档同事最反感「一改代码就被硬拦」。所以新规则默认 warn(只提示、放行),命中时悄悄记一笔,攒一段数据再决定要不要升 block——拦不拦,用数字说话。
4 道 warn hook 命中即放行,同时本地记一行——只写本地、绝不阻断编辑。
ts/user/rule/mode/tool/file,best-effort,失败也不影响放行/拦截。
计划任务 / SessionStart 顺手同步,每人一文件、无写冲突。
聚合出命中排行 / warn-block 占比 → 用数据决定升不升 block。
规则命中 Top · 谁命中最多 · warn vs block · 按 hook / 插件。命中量大且集中 → 真痛点,可升 block;分散且多为一次性 → 疑似误报,先优化判定。
每条规则三档:warn(默认提示)/ block(硬拦)/ off(关)。环境变量即时切,无需改代码。
check-file-encoding(编码守护):防 GBK 存量被 UTF-8 重存致乱码check-frontend-controls(前端控件红线):拦原生 alert/confirm/promptencoding-guard(编码守护指引:GBK↔UTF-8 回环)、module-scaffold(新模块脚手架:说"加个模块"自动生成骨架)profile.json 的 rootMarkers 命中、且只查本次新增内容才触发业务公共认知:计价/状态/流程/规则。「换代码重写也成立」的业务真理。
search_knowledge → get_knowledge → get_related;reload_knowledge 热加载跨项目拓扑:调用链 / 数据流 / 接口契约 / 服务依赖。「当前怎么连」的实现级地图。
DOMAIN_KB_DIR 指向本仓库知识根yoooni-install-team-tools:一键拉取+构建+注册前面四件套(team-standards / coding-profiles / domain-knowledge / cross-topology)design-doc-required 自动介入:先别写码,产出设计文档、定位代码坐标。
调 domain-knowledge:search("计价") → 取「计价口径」「成本构成」,不用你逐条口述。
调 cross-topology:看计价涉及哪些项目/接口,改动会牵动谁。
PreToolUse·Write 触发多道 hook:设计文档?读过知识图谱?GBK 会乱码?前端用了原生弹窗?不合规 → 阻断。
coding-standards-common + encoding-guard:分层、GBK 编码回环、命名规范。
PreToolUse·Bash → check-git-commit-skill:大改没走提交规范 skill 就拦下。
daily-work-log 记日志;新业务规则回写 domain-knowledge 即时生效——下次别人直接复用。
claude mcp add(2 个 MCP 实例)+ claude plugin install(2 个插件)一把梭,幂等——已装的自动跳过、不重装。MCP 必须 clone(跑本地 dist/server.js + knowledge);插件不 clone,走市场由 Claude Code 自取。
yoooni-daily-plugin 那一下;装完插件重启会话生效。更新别重跑安装——交给「更新公司套件」skill。
'--' 要带引号(否则变参 -e 吞掉 node 路径报错);插件名须带 @marketplace 全限定(裸名 not found)。
引擎指向 project-domain-knowledge/knowledge · 业务真理(稳定少改)
同引擎 + DOMAIN_KB_DIR 指向 cross-project-topology/knowledge · 拓扑(随代码变)
一次 marketplace add + install,从此它当"管家"。
每天后台 git pull + 必要时重建 MCP 仓 + claude plugin update 自动更新插件,不阻塞会话。
每 4 小时自动同步 MCP + 插件,Claude Code 没开也保持最新。
marketplace update + plugin update 自动跑完,重启会话即加载新版。
业务知识 / DDL / 引擎跑本地文件,git pull + 重建即最新,零操作。
走 claude plugin CLI(marketplace update + update)脚本代跑,更新后重启会话生效,不再需要手敲 slash。