{"skill":{"slug":"inspirai-bp","displayName":"InspirAI Best Practices","summary":"最佳实践管理 - 记录验证通过的解决方案，跨项目复用，避免重复踩坑。Triggers: '最佳实践', 'best practice', '经验记录', '解决方案', '踩坑记录', 'bp capture', 'bp apply', 'bp search'.","description":"---\nname: inspirai-bp\ndescription: \"最佳实践管理 - 记录验证通过的解决方案，跨项目复用，避免重复踩坑。Triggers: '最佳实践', 'best practice', '经验记录', '解决方案', '踩坑记录', 'bp capture', 'bp apply', 'bp search'.\"\nversion: 1.0.0\nlicense: MIT\n---\n\n# inspirai-bp - 最佳实践管理\n\n记录验证通过的解决方案，跨项目复用，避免重复踩坑。\n\n## 数据目录\n\n所有最佳实践存储在 `$HOME/.inspirai/best-practices/` 下：\n\n```\n$HOME/.inspirai/best-practices/\n├── index.json              # 索引文件\n├── wechat/\n│   ├── scan-login.md\n│   └── mini-auth.md\n├── typescript/\n│   └── strict-config.md\n└── k8s/\n    └── rolling-update.md\n```\n\n---\n\n## bp capture - 记录最佳实践\n\n交互式引导记录新的最佳实践。\n\n### 使用方式\n\n```\nbp capture            # 开始交互式记录\n```\n\n### 执行步骤\n\n#### Step 1: 初始化数据目录\n\n```bash\nBP_DIR=\"$HOME/.inspirai/best-practices\"\nINDEX_FILE=\"$BP_DIR/index.json\"\n\nmkdir -p \"$BP_DIR\"\n\n# 如果 index.json 不存在，创建初始结构\nif [ ! -f \"$INDEX_FILE\" ]; then\n    echo '{\"version\":1,\"practices\":{}}' > \"$INDEX_FILE\"\nfi\n```\n\n#### Step 2: 收集基本信息\n\n使用 AskUserQuestion 依次询问：\n\n**问题 1：标题**\n```\n请输入最佳实践的标题（简洁描述方案）：\n示例：微信扫码登录方案、K8s 滚动更新配置\n```\n\n**问题 2：分类**\n\n先读取现有分类：\n```bash\ncat \"$INDEX_FILE\" | jq -r '.practices[].category' | sort -u\n```\n\n```\n请选择分类：\n- wechat（已有 3 个实践）\n- typescript（已有 2 个实践）\n- k8s（已有 5 个实践）\n- 新建分类...\n```\n\n**问题 3：标签**\n```\n请输入标签（用逗号分隔，用于搜索匹配）：\n示例：登录, 扫码, OAuth, 微信\n```\n\n#### Step 3: 收集内容\n\n依次引导填写：\n\n**问题描述：**\n```\n请简述遇到的问题场景（1-3 句话）：\n```\n\n**解决方案：**\n```\n请描述解决方案的关键步骤（可以是编号列表）：\n```\n\n**关键代码（可选）：**\n```\n请粘贴关键代码片段（可选，直接回车跳过）：\n```\n\n**注意事项（可选）：**\n```\n有什么需要特别注意的坑吗？（可选，直接回车跳过）：\n```\n\n**相关链接（可选）：**\n```\n有参考文档链接吗？（可选，直接回车跳过）：\n```\n\n#### Step 4: 生成 ID 和文件\n\nID 生成规则：`{category}-{slug}`\n- slug 从标题生成，取关键词，用连字符连接\n- 示例：标题 \"微信扫码登录方案\" -> ID \"wechat-scan-login\"\n\n```bash\nCATEGORY=\"wechat\"\nSLUG=\"scan-login\"\nID=\"${CATEGORY}-${SLUG}\"\nFILE_PATH=\"$BP_DIR/$CATEGORY/$SLUG.md\"\nDATE=$(date +%Y-%m-%d)\n\nmkdir -p \"$BP_DIR/$CATEGORY\"\n```\n\n#### Step 5: 写入文档\n\n生成 Markdown 文件：\n\n```markdown\n---\nid: {id}\ntitle: {title}\ncategory: {category}\ntags: [{tags}]\ncreated: {date}\nupdated: {date}\n---\n\n## 问题\n\n{problem}\n\n## 解决方案\n\n{solution}\n\n## 关键代码\n\n{code}\n\n## 注意事项\n\n{notes}\n\n## 相关链接\n\n{links}\n```\n\n#### Step 6: 更新索引\n\n读取 `index.json`，添加新条目：\n\n```json\n{\n  \"practices\": {\n    \"{id}\": {\n      \"title\": \"{title}\",\n      \"category\": \"{category}\",\n      \"tags\": [\"{tag1}\", \"{tag2}\"],\n      \"file\": \"{category}/{slug}.md\",\n      \"created\": \"{date}\",\n      \"updated\": \"{date}\"\n    }\n  }\n}\n```\n\n写回 `index.json`。\n\n#### Step 7: 确认完成\n\n```\n已记录最佳实践：\n\nID: {id}\n标题: {title}\n分类: {category}\n标签: {tags}\n文件: {file_path}\n\n使用 bp apply {id} 可随时查看和应用此实践\n```\n\n---\n\n## bp apply - 应用最佳实践\n\n读取指定的最佳实践，提供查看或应用选项。\n\n### 使用方式\n\n```\nbp apply <id>         # 应用指定 ID 的实践\n```\n\n### 执行步骤\n\n#### Step 1: 验证 ID 存在\n\n```bash\nBP_DIR=\"$HOME/.inspirai/best-practices\"\nINDEX_FILE=\"$BP_DIR/index.json\"\n\n# 读取 index.json，检查 practices[id] 是否存在\n# 如果不存在，提示并退出\n```\n\n**ID 不存在时：**\n\n```\n未找到 ID 为 \"xxx\" 的最佳实践\n\n使用 bp search <keyword> 搜索\n或使用 bp list 浏览所有实践\n```\n\n#### Step 2: 读取实践文档\n\n```bash\n# 从 index.json 获取文件路径\nFILE_PATH=\"$BP_DIR/{category}/{slug}.md\"\ncat \"$FILE_PATH\"\n```\n\n#### Step 3: 展示内容并提供选项\n\n展示文档完整内容后，使用 AskUserQuestion 询问：\n\n```\n已加载「{title}」\n\n请选择操作：\n- 直接开始实现（根据方案步骤指导实现）\n- 复制到项目文档（生成到 docs/references/{id}.md）\n- 仅查看，稍后再说\n```\n\n#### Step 4: 执行用户选择\n\n**直接开始实现：**\n- 展示解决方案步骤\n- 逐步引导用户实现\n\n**复制到项目文档：**\n```bash\nmkdir -p docs/references\ncp \"$FILE_PATH\" \"docs/references/{id}.md\"\necho \"已复制到 docs/references/{id}.md\"\n```\n\n**仅查看：**\n- 结束，不做额外操作\n\n---\n\n## bp search - 搜索最佳实践\n\n根据关键词在标题和标签中搜索匹配的最佳实践。\n\n### 使用方式\n\n```\nbp search <keyword>           # 单关键词搜索\nbp search <kw1> <kw2>         # 多关键词搜索（AND 逻辑）\n```\n\n### 执行步骤\n\n#### Step 1: 检查数据目录\n\n```bash\nBP_DIR=\"$HOME/.inspirai/best-practices\"\nINDEX_FILE=\"$BP_DIR/index.json\"\n\nif [ ! -f \"$INDEX_FILE\" ]; then\n    echo \"尚未记录任何最佳实践。使用 bp capture 开始记录。\"\n    exit 0\nfi\n```\n\n#### Step 2: 读取索引并搜索\n\n读取 `index.json`，对每个实践检查：\n1. 标题是否包含关键词\n2. 标签数组是否包含关键词\n\n匹配规则：\n- 不区分大小写\n- 多关键词时，所有关键词都需匹配（AND 逻辑）\n- 按匹配度排序（标题匹配 > 标签匹配）\n\n#### Step 3: 格式化输出\n\n**找到匹配时：**\n\n```\n搜索 \"微信 登录\" - 找到 2 个匹配：\n\n1. [wechat-scan-login] 微信扫码登录方案\n   标签: 登录, 扫码, OAuth, 微信\n   分类: wechat | 更新: 2026-01-28\n\n2. [wechat-mini-auth] 小程序静默登录\n   标签: 登录, 小程序, 微信\n   分类: wechat | 更新: 2026-01-25\n\n使用 bp apply <id> 查看详情并应用\n```\n\n**无匹配时：**\n\n```\n搜索 \"xyz\" - 未找到匹配\n\n建议：\n- 尝试更短或不同的关键词\n- 使用 bp list 浏览所有分类\n```\n\n---\n\n## bp list - 列出最佳实践\n\n列出已记录的最佳实践，支持按分类筛选。\n\n### 使用方式\n\n```\nbp list              # 显示分类统计\nbp list <category>   # 列出指定分类下的实践\n```\n\n### 执行步骤\n\n#### Step 1: 检查数据目录\n\n```bash\nBP_DIR=\"$HOME/.inspirai/best-practices\"\nINDEX_FILE=\"$BP_DIR/index.json\"\n\nif [ ! -f \"$INDEX_FILE\" ]; then\n    echo \"尚未记录任何最佳实践。使用 bp capture 开始记录。\"\n    exit 0\nfi\n```\n\n#### Step 2: 读取索引\n\n```bash\ncat \"$INDEX_FILE\"\n```\n\n#### Step 3: 格式化输出\n\n**无参数时 - 显示分类统计：**\n\n```\n最佳实践统计：\n\n分类          数量\n─────────────────\nwechat        3\ntypescript    2\nk8s           5\n─────────────────\n总计          10\n\n使用 bp list <category> 查看具体分类\n```\n\n**带参数时 - 列出该分类下的实践：**\n\n```\n[wechat] 分类下的最佳实践：\n\nID                    标题                    更新时间\n───────────────────────────────────────────────────────\nwechat-scan-login     微信扫码登录方案        2026-01-28\nwechat-mini-auth      小程序静默登录          2026-01-25\nwechat-pay            微信支付集成            2026-01-20\n\n使用 bp apply <id> 查看详情并应用\n```\n\n**分类不存在时：**\n\n```\n未找到分类 \"xxx\"\n\n已有分类：wechat, typescript, k8s\n\n使用 bp list 查看所有分类\n```\n\n---\n\n## bp update - 更新最佳实践\n\n加载已有实践，引导更新内容。\n\n### 使用方式\n\n```\nbp update <id>        # 更新指定 ID 的实践\n```\n\n### 执行步骤\n\n#### Step 1: 验证 ID 存在\n\n```bash\nBP_DIR=\"$HOME/.inspirai/best-practices\"\nINDEX_FILE=\"$BP_DIR/index.json\"\n\n# 读取 index.json，检查 practices[id] 是否存在\n```\n\n**ID 不存在时：**\n\n```\n未找到 ID 为 \"xxx\" 的最佳实践\n\n使用 bp search <keyword> 搜索\n或使用 bp list 浏览所有实践\n```\n\n#### Step 2: 读取现有内容\n\n```bash\nFILE_PATH=\"$BP_DIR/{category}/{slug}.md\"\ncat \"$FILE_PATH\"\n```\n\n展示当前内容给用户。\n\n#### Step 3: 询问更新内容\n\n```\n当前内容已加载。请描述需要更新的内容：\n\n你可以：\n- 补充新的注意事项\n- 更新解决方案步骤\n- 添加代码片段\n- 修正错误信息\n\n请输入更新内容：\n```\n\n#### Step 4: 应用更新\n\n根据用户描述，修改文档相应部分。\n\n更新 frontmatter 中的 `updated` 字段：\n```yaml\nupdated: {today}\n```\n\n#### Step 5: 更新索引\n\n更新 `index.json` 中对应条目的 `updated` 字段。\n\n#### Step 6: 确认完成\n\n```\n已更新「{title}」\n\n更新时间: {date}\n文件: {file_path}\n\n使用 bp apply {id} 查看更新后的内容\n```\n\n---\n\n## bp delete - 删除最佳实践\n\n确认后删除指定的最佳实践。\n\n### 使用方式\n\n```\nbp delete <id>        # 删除指定 ID 的实践\n```\n\n### 执行步骤\n\n#### Step 1: 验证 ID 存在\n\n```bash\nBP_DIR=\"$HOME/.inspirai/best-practices\"\nINDEX_FILE=\"$BP_DIR/index.json\"\n\n# 读取 index.json，检查 practices[id] 是否存在\n```\n\n**ID 不存在时：**\n\n```\n未找到 ID 为 \"xxx\" 的最佳实践\n\n使用 bp list 浏览所有实践\n```\n\n#### Step 2: 显示实践信息并确认\n\n```\n即将删除：\n\nID: {id}\n标题: {title}\n分类: {category}\n创建时间: {created}\n\n此操作不可恢复！确认删除吗？\n- 确认删除\n- 取消\n```\n\n#### Step 3: 执行删除\n\n**用户确认后：**\n\n```bash\n# 删除文档文件\nrm \"$BP_DIR/{category}/{slug}.md\"\n\n# 检查分类目录是否为空，为空则删除\nif [ -z \"$(ls -A $BP_DIR/{category})\" ]; then\n    rmdir \"$BP_DIR/{category}\"\nfi\n```\n\n从 `index.json` 中移除对应条目，写回文件。\n\n#### Step 4: 确认完成\n\n```\n已删除「{title}」\n```\n\n**用户取消时：**\n\n```\n已取消删除操作\n```\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":471,"installsAllTime":18,"installsCurrent":1,"stars":0,"versions":1},"createdAt":1773583630703,"updatedAt":1778491925219},"latestVersion":{"version":"1.0.0","createdAt":1773583630703,"changelog":"Initial release - 最佳实践管理","license":"MIT-0"},"metadata":null,"owner":{"handle":"alexxxiong","userId":"s17e7cgyesfsxqax7wb080fe1n8857ak","displayName":"alexxiong","image":"https://avatars.githubusercontent.com/u/45865830?v=4"},"moderation":null}