name: docs-ops description: “管理Duende文档生命周期。动作: 抓取、验证、刷新、重建索引、清除缓存。” argument-hint: <action> (scrape|validate|refresh|rebuild-index|clear-cache) [options] allowed-tools: Read, Write, Bash, Glob, Grep
Duende文档操作
通过一个单一整合的技能管理Duende文档生命周期。涵盖IdentityServer、BFF、Access Token Management、IdentityModel和OidcClient文档。
参数路由
| 动作 | 描述 |
|---|---|
scrape |
从llms-full.txt抓取文档,然后刷新和验证 |
validate |
验证索引完整性和检测漂移(只读) |
refresh |
从文件系统刷新索引,无需抓取 |
rebuild-index |
清除并立即重建搜索索引 |
clear-cache |
清除搜索缓存(在下次搜索时惰性重建) |
解析$ARGUMENTS以确定动作。第一个令牌是动作关键字。剩余令牌作为选项传递给动作处理器。
动作: 抓取
从Duende llms-full.txt源抓取所有文档。这获取所有IdentityServer、BFF、Access Token Management、IdentityModel和OidcClient文档。
步骤
- 运行抓取脚本:
python "${CLAUDE_PLUGIN_ROOT}/skills/duende-docs/scripts/core/scrape_docs.py"
- 抓取完成后,重建索引:
python "${CLAUDE_PLUGIN_ROOT}/skills/duende-docs/scripts/management/rebuild_index.py"
- 验证索引:
python "${CLAUDE_PLUGIN_ROOT}/skills/duende-docs/scripts/management/manage_index.py" verify
报告每个步骤的结果。
动作: 验证
对文档索引运行验证检查,不进行任何修改。
步骤
- 运行索引验证:
python "${CLAUDE_PLUGIN_ROOT}/skills/duende-docs/scripts/management/manage_index.py" verify
- 运行完整验证并摘要:
python "${CLAUDE_PLUGIN_ROOT}/skills/duende-docs/scripts/maintenance/validate_index.py"
- 报告文档计数:
python "${CLAUDE_PLUGIN_ROOT}/skills/duende-docs/scripts/management/manage_index.py" count
报告每个验证步骤的结果,突出任何发现的问题。
动作: 刷新
刷新本地索引,无需重新从Web抓取。当手动修改文档文件或需要重建索引时使用。
步骤
- 从文件系统重建索引:
python "${CLAUDE_PLUGIN_ROOT}/skills/duende-docs/scripts/management/rebuild_index.py"
- 验证索引完整性:
python "${CLAUDE_PLUGIN_ROOT}/skills/duende-docs/scripts/management/manage_index.py" verify
- 报告文档计数:
python "${CLAUDE_PLUGIN_ROOT}/skills/duende-docs/scripts/management/manage_index.py" count
报告每个步骤的结果。
动作: 重建索引
清除并立即重建duende-docs搜索索引。这比clear-cache + 等待下次搜索更快,因为它立即触发重建。
何时使用
- 手动编辑
index.yaml或文档文件后 - 当搜索结果看起来陈旧或不正确时
- 在
git pull包含文档更改后 - 当需要立即搜索工作时
与清除缓存的区别
| 动作 | 行为 | 搜索可用性 |
|---|---|---|
clear-cache |
仅清除缓存 | 在下次搜索时重建(惰性) |
rebuild-index |
清除 + 重建 | 立即(急) |
选项
- 无选项: 显示计划并请求确认
- –force: 跳过确认并立即重建
指令
此动作清除Duende文档搜索缓存并立即重建索引。
检查当前状态
首先,检查当前缓存状态。报告缓存是否存在、是否有效以及上次构建时间。
请求确认
除非用户传递--force,否则显示重建计划以及当前缓存状态,并在继续前请求确认。解释重建需要几秒钟,在重建期间搜索将不可用。
清除并重建
一旦确认(或如果传递--force):
- 使用clear_cache.py脚本清除缓存
- 使用rebuild_index.py脚本重建索引
- 使用manage_index.py verify验证重建成功
报告结果
报告新索引统计,包括文档计数和构建时间。确认搜索现在可用。
## 索引已重建
成功重建Duende文档搜索索引。
**新索引统计:**
- 文档: X
- 构建时间: Xms
**搜索现在可用。**
错误处理
- 插件未安装: 报告"duende-ecosystem插件未找到。"
- 重建失败: 报告脚本错误
- 权限被拒绝: 报告并提供修复步骤
动作: 清除缓存
清除duende-docs搜索缓存(倒排索引)。这强制索引在下次文档搜索时重建。
何时使用
- 手动编辑
index.yaml或文档文件后 - 当搜索结果看起来陈旧或不正确时
- 在
git pull包含文档更改后 - 为释放磁盘空间
选项
- 无选项: 显示将要清除的内容并请求确认
- –force: 跳过确认并立即清除
步骤1: 解析选项
检查--force标志是否存在。
force_mode = "--force" in arguments (case-insensitive)
步骤2: 定位缓存目录
duende-docs缓存位于:
${CLAUDE_PLUGIN_ROOT}/skills/duende-docs/.cache/
或通过安装路径:
~/.claude/plugins/cache/<marketplace>/duende-ecosystem/<version>/skills/duende-docs/.cache/
步骤3: 检查缓存状态
列出缓存文件:
| 文件 | 用途 |
|---|---|
inverted_index.json |
搜索索引 |
cache_version.json |
基于哈希的有效性跟踪 |
如果缓存目录不存在或为空,报告:“缓存已清除。无需操作。”
步骤4: 确认(除非 --force)
如果非force_mode,呈现缓存清除计划:
## 缓存清除计划
**目标:** Duende文档搜索索引
| 文件 | 大小 |
|------|------|
| inverted_index.json | X.X MB |
| cache_version.json | 512 字节 |
**总计:** X.X MB
> **注意:** 搜索索引将在下次文档搜索时自动重建。
> 要立即重建,请在清除后使用`rebuild-index`动作。
**继续?** 回复"yes"以继续,或使用`--force`跳过此确认。
步骤5: 清除缓存
使用clear_cache.py脚本清除:
python "${CLAUDE_PLUGIN_ROOT}/skills/duende-docs/scripts/maintenance/clear_cache.py"
步骤6: 报告成功
## 缓存已清除
成功清除Duende文档搜索缓存。
**已清除:**
- inverted_index.json
- cache_version.json
**后续步骤:**
- 搜索索引将在下次搜索时自动重建
- 或使用`rebuild-index`动作立即重建
错误处理
- 缓存未找到: 报告"缓存已清除或插件未安装。"
- 权限被拒绝: 报告"权限被拒绝。尝试使用提升的权限运行。"
- 插件未安装: 报告"duende-ecosystem插件未找到。"