with one click
quickstart
Skill 三合一工具:生成安装入口、自动适配安装、智能检查修复
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Skill 三合一工具:生成安装入口、自动适配安装、智能检查修复
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | quickstart |
| description | Skill 三合一工具:生成安装入口、自动适配安装、智能检查修复 |
| version | 1.0.0 |
| runAs | inline |
你开源了一个项目,想让别人复制一句话丢给 AI 就能装好?或者想给已有项目生成标准安装入口?
quickstart 就是干这个的。它是一个 Skill 三合一工具:生成安装入口、自动适配安装、智能检查修复。
Install.md,任何 AI Agent 读它就知道怎么装这个 Skill用户调用 /quickstart,AI 根据输入内容灵活判断意图:
| 输入 | 行为 |
|---|---|
| 无参数 | 用 ask 列出三种模式让用户点选 |
| URL / 本地路径 / 文件 | AI 尝试读取 → 判断是不是 Skill → 走安装适配 |
| 含「检查」「check」关键词 | 走检查 |
| 含项目意图(「就这个项目」「适配」等) | 走生成 Install.md |
| 其他内容 | AI 自行理解意图,不确定则 ask 确认 |
核心原则:不硬编码匹配规则,AI 灵活理解用户意图。
运行以下命令检查环境:
git --version
curl --version
⛔ sudo 禁令:绝对禁止使用
sudo/runas/ 管理员权限执行任何命令。遇权限错误立即中断并告知用户。任一工具缺失 → 提示用户手动安装,流程结束。
根据输入内容,用对应方式获取:
⚠️ 安全提醒:如果输入是远程 URL,先提醒用户确认来源可信后再下载。非 GitHub 域名的链接尤其需要谨慎。
| 输入类型 | 获取方式 |
|---|---|
| 远程 URL(GitHub 项目链接 / 任意 .md 直链) | 见下方「URL 解析规则」 |
| 本地路径 | read_file 读取 |
| 文本内容(非 URL/路径) | 无法自动定位 → 用 ask 询问用户提供链接或路径,不要自行猜测 |
URL 解析规则: 用户给的不一定是直链,需要逐层探测:
- GitHub 项目链接 → 先试探
raw.githubusercontent.com/user/repo/main/SKILL.md,404 则试探<项目名>.md,仍 404 则git clone到临时目录.md直链 → 直接curl下载- 全部失败 → 告知用户无法获取,流程结束
下载/读取后,将内容保存在变量 {skill_content} 中。
检查 {skill_content} 是否包含有效的 Skill frontmatter:
---
name: skill-name
description: 一句话描述
runAs: inline # 或 subagent
---
检查项:
--- frontmatter 块name 字段description 字段runAs 字段如果有缺失,用 ask 询问用户补充。同一字段 ask 超过 2 次仍无效(用户未提供有效值)→ 告知用户无法继续,流程结束。
❌ 不是有效的 Skill → 告知用户,流程结束
✅ 是有效的 Skill → 进入下一步
检测当前运行环境,判断自己是什么 Agent(不限于以下):
| 常见信号 | Agent 类型 |
|---|---|
存在 install_source 工具 / .reasonix/ 目录 | Reasonix |
存在 ~/.claude/ 目录 / claude CLI | Claude Code |
存在 .cursor/rules/ 目录 / .cursorrules | Cursor |
| 以上都不匹配 | 通用兼容模式 |
AI 自行判断当前环境;如果你知道自己是什么 Agent,直接使用对应安装方式。
根据检测到的 Agent 类型,将 Skill 装到对应位置:
~/.reasonix/skills/{skill-name}/、~/.claude/skills/{skill-name}/、.cursor/rules/ 等){ "name": "{skill-name}", "url": "{source-url}" } 追加写入 known-sources.json⛔ sudo 禁令:禁止
sudo/runas提权,遇权限错误立即中断并告知用户。AI 自行决定具体安装命令,核心目标:用户能通过
/{skill-name}调用。
确认安装成功后告知用户:
✅ 安装完成! 📥 Skill
{skill-name}已装到 {Agent 类型} 你现在可以直接使用:/{skill-name}📍 安装位置:{安装路径}
flowchart TB
ENTER(["用户输入<br>/quickstart check / 检查"]) --> L1
subgraph L1[主菜单]
L1_ASK["ask 点选"]
L1_ASK --> A["🔍 全面诊断"]
L1_ASK --> B["🔧 问题定位"]
L1_ASK --> C["🔄 版本巡检"]
L1_ASK --> D["🧹 深度清洁"]
L1_ASK --> E["📋 报告管理"]
L1_ASK --> X["❌ 取消"]
end
A --> A1["全量扫描所有 Skill"]
A1 --> A2["汇总报告"]
A2 --> A3_ASK["ask 下一步"]
A3_ASK --> A3a["⚡ 一键全修"]
A3_ASK --> A3b["📋 逐项查看"]
A3a --> A3a1["自动修复 → 重装验证<br>A3→A4→A5"]
B --> B1["列表 → ask 选 Skill"]
B1 --> B2["诊断具体问题"]
B2 --> B3_ASK["ask 操作"]
B3_ASK --> B3a["🤖 自动修复"]
B3_ASK --> B3b["⏪ 版本回滚"]
B3a --> RE["重装验证 A3→A4→A5"]
C --> C1["获取源地址"]
C1 --> C1a["known-sources.json"]
C1 --> C1b["自动推导"]
C1 --> C1c["手动输入"]
C1a --> C2["对比版本"]
C1b --> C2
C1c --> C2
C2 --> C3["显示过时列表"]
C3 --> C3_ASK["ask"]
C3_ASK --> C3a["🔄 更新全部"]
C3_ASK --> C3b["📝 逐项更新"]
C3_ASK --> C3c["🙈 忽略"]
D --> D1["扫描三类问题"]
D1 --> D1a["🗑️ 残留目录"]
D1 --> D1b["⚠️ 同名冲突"]
D1 --> D1c["📦 备份文件"]
D1a --> D2_ASK["ask 确认"]
D1b --> D2_ASK
D1c --> D2_ASK
D2_ASK --> D2a["✅ 全部清理"]
D2_ASK --> D2b["📝 逐项选择"]
E --> E1_ASK["ask 操作"]
E1_ASK --> E1a["📤 导出 repair-log.md"]
E1_ASK --> E1b["📥 查看上次记录"]
E1_ASK --> E1c["📋 管理 known-sources.json"]
进入检查模式后,先弹出主菜单让用户点选:
ask(questions=[{ header: "🔧 检查", question: "请选择要执行的操作:", options: [ { label: "🔍 全面诊断", desc: "扫描所有 Skill,一次性查出全部问题" }, { label: "🔧 问题定位", desc: "选一个 Skill 单独诊断修复" }, { label: "🔄 版本巡检", desc: "检查已安装 Skill 是否有新版本" }, { label: "🧹 深度清洁", desc: "清理残留目录 / 冲突文件 / 备份" }, { label: "📋 报告管理", desc: "导出诊断报告 / 管理源列表" }, { label: "❌ 取消" }, ] }])
全量扫描所有已安装 Skill,汇总报告:
📊 全面诊断报告
┌──────────────┬────────┬──────────────────┐
│ Skill │ 状态 │ 问题 │
├──────────────┼────────┼──────────────────┤
│ quickstart │ ✅ 正常│ — │
│ soulcheck │ ⚠️ 异常│ description 缺失 │
│ xxx │ ❌ 异常│ 文件损坏 │
└──────────────┴────────┴──────────────────┘
报告后 ask 用户下一步:
ask(questions=[{ header: "诊断完成", question: "共扫描 3 个 Skill:1 正常,2 有问题。请选择操作:", options: [ { label: "⚡ 一键全修", desc: "自动修复所有可自动修复的问题" }, { label: "📋 逐项查看", desc: "逐个展示每个 Skill 的诊断详情" }, { label: "↩️ 返回主菜单" }, ] }])
扫描列表 → ask 选一个 Skill → 诊断问题(同下方 B2 诊断表):
ask(questions=[{ header: "诊断结果", question: "「{skill-name}」检测到以下问题,请选择操作:", options: [ { label: "🤖 自动修复", desc: "AI 自动补全/修正/重装" }, { label: "🛠️ 手动指定", desc: "由用户告诉怎么修" }, { label: "⏪ 版本回滚", desc: "有备份则还原到上一版本" }, { label: "↩️ 返回主菜单" }, ] }])
诊断表(通用):
| 问题 | 检测方式 | 修复方法 |
|---|---|---|
| frontmatter 缺失 | 不以 --- 开头 | ask 用户提供 name/description/runAs |
name 字段缺失 | frontmatter 中没有 name | ask 用户输入 Skill 名称 |
description 字段缺失 | frontmatter 中没有 description | ask 用户输入一句话描述 |
runAs 字段缺失或错误 | 不是 inline/subagent | ask 用户选择运行方式 |
| 安装路径不对 | Skill 文件在错误的位置 | 移动到正确的 Agent 目录 |
| 文件内容损坏 | 为空或无效 Markdown | 告知用户重新下载;如果记得原来源,引导用户从原项目重新获取;无法找回则建议用户联系原作者 |
修复规则:
sudo / runas 提权,遇权限错误立即中断✅ 完成!
{skill-name}已修复,你现在可以试试/{skill-name}
检查已安装 Skill 是否与源仓库版本一致。
版本以 SKILL.md frontmatter 中的
version字段为准。 工作流程:读取本地 SKILL.md frontmatter 的 version → 从源地址获取远程 SKILL.md 的 version → 比较两个值,不一致即为过时。
源地址获取优先级:
known-sources.json(手动维护的源列表)对比版本后显示过时列表:
ask(questions=[{ header: "版本巡检", question: "发现 2 个 Skill 有新版本,请选择操作:", options: [ { label: "🔄 更新全部", desc: "下载最新版并重新安装" }, { label: "📝 逐项选择", desc: "选哪些更新,哪些跳过" }, { label: "🙈 忽略本次" }, ] }])
更新流程:下载最新版 → 覆盖安装 → A5 验证
扫描三类问题,先列出待清理项(非破坏性预览,不执行删除):
| 类型 | 说明 |
|---|---|
| 🗑️ 残留目录 | Skill 已删除但安装目录还在的空文件夹 |
| ⚠️ 同名冲突 | 同一 Skill name 出现在多个目录(重复安装) |
| 📦 备份文件 | 之前修复留下的 .bak 旧版本文件 |
ask(questions=[{ header: "深度清洁", question: "发现 3 个可清理项,请选择操作:", options: [ { label: "👁️ 仅预览", desc: "只展示待清理项详情,不删除任何内容" }, { label: "📦 备份后清理", desc: "删除前自动复制到临时备份目录(如 /tmp/quickstart-backup/)" }, { label: "✅ 全部清理", desc: "不备份直接清理全部" }, { label: "📝 逐项选择", desc: "逐个确认是否删除" }, { label: "↩️ 返回主菜单" }, ] }])
ask(questions=[{ header: "报告管理", question: "请选择操作:", options: [ { label: "📤 导出诊断报告", desc: "生成 repair-log.md" }, { label: "📥 查看上次记录", desc: "读取已存在的 repair-log.md" }, { label: "📋 管理源列表", desc: "增删 known-sources.json 中的条目" }, { label: "↩️ 返回主菜单" }, ] }])
known-sources.json 格式:
{
"sources": [
{ "name": "quickstart", "url": "https://github.com/Kepsilent/quickstart" },
{ "name": "soulcheck", "url": "https://github.com/user/soulcheck" }
]
}
存储在 Skill 安装目录的公共位置(如 ~/.reasonix/known-sources.json),由用户或 AI 手动维护。
产物:项目根目录下的
Install.md,纯给 AI Agent 读的。
| 参数 | 行为 |
|---|---|
就这个项目 / 当前项目 | 目标 = pwd |
/绝对/路径 | 目标 = 该路径 |
| 项目名 | 在常见项目目录中查找 |
| 无参数 | ask 让用户点选或输入目录 |
生成 Install.md 必须要有项目链接,AI 按以下逻辑处理:
git remote get-url origin)→ 自动提取 GitHub 链接在项目根目录生成 Install.md,内容包含:
同时在 README.md 第一个 --- 分隔线之后注入一个「🚀 一键安装」独立板块(不要动 README 其他内容)。
Install.md 是「拼图」,SKILL.md 是「零件」—— 链接告诉 AI「去哪里买零件」。
Install.md 生成后,引导用户:
https://raw.githubusercontent.com/{用户}/{仓库}/main/Install.md发布后把 Install.md 直链丢给 AI,AI 自己读文件、自己完成安装。
AI 在目标目录找 Skill 文件时,按以下优先级:
SKILL.md---)的 .md 文件生成 Install.md 时按以下结构:
---
> 如果你是一个 AI Agent,你的任务是读取下面的链接完成安装
# {项目名}
项目链接:{项目链接}
{一句话描述}
---
## 如果你是 AI Agent
你的任务:把这个 Skill 安装到当前工作区,确保用户能直接调用 `/{skill-name}`。
## Skill 文件
位置:`SKILL.md`
名称:`{skill-name}`
## 安装步骤
1. 读取 Skill 文件,确认 frontmatter 完整
2. 根据你当前运行的 Agent 环境,将 Skill 装到对应的位置
3. 验证 `/{skill-name}` 能正常响应
---
{可选的额外说明,如功能列表、使用示例}