[ PROMPT_NODE_25054 ]
插件设置
[ SKILL_DOCUMENTATION ]
# Claude Code 插件的插件设置模式
## 概述
插件可以将用户可配置的设置和状态存储在项目目录中的 `.claude/plugin-name.local.md` 文件中。此模式使用 YAML frontmatter 进行结构化配置,并使用 markdown 内容作为提示词或附加上下文。
**关键特性:**
- 文件位置:项目根目录下的 `.claude/plugin-name.local.md`
- 结构:YAML frontmatter + markdown 正文
- 用途:项目级插件配置和状态
- 使用方式:从钩子(hooks)、命令和智能体中读取
- 生命周期:用户管理(不纳入 git,应放入 `.gitignore`)
## 文件结构
### 基本模板
markdown
---
enabled: true
setting1: value1
setting2: value2
numeric_setting: 42
list_setting: ["item1", "item2"]
---
# 附加上下文
此 markdown 正文可以包含:
- 任务描述
- 附加说明
- 反馈给 Claude 的提示词
- 文档或备注
### 示例:插件状态文件
**.claude/my-plugin.local.md:**
markdown
---
enabled: true
strict_mode: false
max_retries: 3
notification_level: info
coordinator_session: team-leader
---
# 插件配置
此插件已配置为标准验证模式。
如有疑问,请联系 @team-lead。
## 读取设置文件
### 从钩子(Bash 脚本)读取
**模式:检查存在性并解析 frontmatter**
bash
#!/bin/bash
set -euo pipefail
# 定义状态文件路径
STATE_FILE=".claude/my-plugin.local.md"
# 如果文件不存在则快速退出
if [[ ! -f "$STATE_FILE" ]]; then
exit 0 # 插件未配置,跳过
fi
# 解析 YAML frontmatter (位于 --- 标记之间)
FRONTMATTER=$(sed -n '/^---$/,/^---$/{ /^---$/d; p; }' "$STATE_FILE")
# 提取单个字段
ENABLED=$(echo "$FRONTMATTER" | grep '^enabled:' | sed 's/enabled: *//' | sed 's/^"(.*)"$/1/')
STRICT_MODE=$(echo "$FRONTMATTER" | grep '^strict_mode:' | sed 's/strict_mode: *//' | sed 's/^"(.*)"$/1/')
# 检查是否启用
if [[ "$ENABLED" != "true" ]]; then
exit 0 # 已禁用
fi
# 在钩子逻辑中使用配置
if [[ "$STRICT_MODE" == "true" ]]; then
# 应用严格验证
# ...
fi
查看 `examples/read-settings-hook.sh` 获取完整的运行示例。
### 从命令读取
命令可以读取设置文件以自定义行为:
markdown
---
description: 使用插件处理数据
allowed-tools: ["Read", "Bash"]
---
# 处理命令
步骤:
1. 检查设置文件是否存在于 `.claude/my-plugin.local.md`
2. 使用 Read 工具读取配置
3. 解析 YAML