用途:本技能是面向 markdown-format 钩子的“检查为主”设置流程——check 负责检查并报告,apply 负责解决。插件本身不持有消费项目配置,规则来自仓库自带的 markdownlint 配置,唯一可调项是原生 userConfig 开关。
动作路由:无参数或 check 只执行检查;apply 先检查再给修复;apply install-lint 额外授权在消费仓库安装依赖。给定动作后全程非交互,不再提问。
check(只读):以钩子脚本(${CLAUDE_PLUGIN_ROOT}/hooks/markdown-format.sh)为准,先读它再逐项用 Bash 探查,输出 PASS/FAIL/INFO 表,每个 FAIL 给一行修复建议,不改动任何内容。当插件开关被禁用时,所有前置缺失由 FAIL 降级为 INFO(钩子在 enabled 门禁处即退出)。探查项:Bash 版本对照 README 要求的下限;jq 用 command -v jq,缺失则钩子跳过并每会话提示一次;markdownlint-cli2 须按钩子同样的解析路径与符号链接校验解析,且以 --version 确认可执行,解析成功但执行失败仍记 FAIL;消费方 markdownlint 配置按钩子的配置回溯(从被编辑文件目录向上到仓库根,跳过 node_modules),报告根配置、嵌套配置及其目录范围,并提示风险配置的信任边界;报告 ${user_config.markdown_format_enabled} 的有效值(未展开或空表示默认 true);钩子注册以 /plugin → Installed 确认。
apply(幂等):先跑 check,再对每个 FAIL 给出解决方式,未经明确同意不安装任何东西。apply install-lint 用仓库自身包管理器把 markdownlint-cli2 加为 devDependency,选择顺序为锁文件(pnpm-lock.yaml→pnpm add -D,yarn.lock→yarn add -D,bun.lock/bun.lockb→bun add -d,package-lock.json 或 npm-shrinkwrap.json→npm install --save-dev),无锁文件时看 package.json 的 packageManager,两者皆无才用 npm;无 package.json、多个锁文件或锁文件与 packageManager 冲突时停止并给指引,不猜测、不引入竞争性锁文件。Yarn 仓库不推断 linker,运行 yarn config get nodeLinker:pnp(未设置时 Berry 默认)跳过安装并给指引,node-modules/pnpm 或 Yarn Classic 则安装。任何修复后重跑对应探查并报告真实结果。缺 jq/Bash 只给平台安装指引,本技能不装系统包;开关关闭指向 /plugin configure markdown-format,headless 需先 claude plugin uninstall 再以 --config 重装,本技能不写用户设置或 pluginConfigs;无配置时仅在明确要求下建议创建最小 .markdownlint-cli2.jsonc。全部通过后再跑 apply 不做改动,报告已配置。
限制与不做之事:不运行格式化器;只做 --version 存活探测,不 lint、不修复、不触碰仓库内容;不写插件缓存、Claude Code 用户设置或 pluginConfigs;check 不下载任何内容,仅在明确请求 apply install-lint 时在消费仓库联网。