ฅ՞•ﻌ•՞ฅ 欢迎来到这间小小的 AI 技能屋!把常用研发能力装进工具箱,需要时轻轻一喊,它们就会跑来帮忙啦~ 🪄💫
这是一个只收录个人维护技能的轻量仓库。每个 Skill 都有自己的拿手好戏,既能独立出场,也能组队完成设计、开发、审查和测试任务 🤝✨ 所有示例均使用中性命名,不依赖组织专用平台、私有域名、内部凭据或本机绝对路径,可以放心阅读和分享 🌱
先来认识一下住在这里的小伙伴们吧!每一位都有清晰分工,不会一窝蜂抢活干 🐾
| 小队 | Skill | 拿手好戏 |
|---|---|---|
| 🛠️ Development | brainstorming |
💭 开发前澄清需求、比较方案并确认设计 |
| 🛠️ Development | app-scanner |
🔍 扫描多应用工作区并提取业务能力 |
| 🛠️ Development | sdd-dev-workflow |
🧭 从需求出发,扫描代码并生成技术方案、Plan 与 Tasks |
| 🛠️ Development | ai-pair-programmer |
🤝 分析代码库、实现改动并完成验证 |
| 🛠️ Development | developer-resume-writer |
✍️ 根据项目或现有简历,整理项目简介和项目亮点 |
| 🧪 Review | author-final-review |
👤 审查指定作者的最终代码状态 |
| 🧪 Review | code-review |
🛡️ 检查代码质量、安全、性能和架构风险 |
| 🧪 Review | integration-test |
🎯 根据变更风险设计集成测试用例 |
| 🧪 Review | full-review |
📦 汇总代码审查、影响分析和测试设计 |
| 🧪 Review | team-cr |
👥 为多人代码审查会议生成讨论清单 |
| 🎨 Visualization | diagram-creation |
🗺️ 创建流程图、架构图、时序图和学习路线 |
| ⚙️ Platform | skill-usage-tracker |
📊 记录和查看本地技能使用统计 |
想看看它们什么时候会自动出现、彼此怎么组队?详细触发方式与依赖关系都藏在 skills/README.md 里啦 📚✨
一项需求从“小脑洞”成长为“放心交付”,通常会沿着下面这条路线一路升级打怪 🎮🌟
flowchart LR
IDEA(["需求或问题"]) --> DISCOVERY{"需求和方案是否清晰?"}
DISCOVERY -- 否 --> DESIGN["brainstorming<br/>探索目标与方案"]
DISCOVERY -- 是 --> SDD["sdd-dev-workflow<br/>需求 → 技术方案 → Plan → Tasks"]
DESIGN --> SDD
SDD --> CONTEXT{"是否为多应用工作区?"}
CONTEXT -- 是 --> SCAN["app-scanner<br/>补充应用与依赖证据"]
CONTEXT -- 否 --> EVIDENCE["扫描当前仓代码<br/>建立真实工程证据"]
SCAN --> READY["开发准备包<br/>requirements / design / plan / tasks"]
EVIDENCE --> READY
READY --> BUILD["ai-pair-programmer<br/>明确授权后实现与验证"]
BUILD --> REVIEW{"需要哪类保障?"}
REVIEW --> AUTHOR["author-final-review"]
REVIEW --> CODE["code-review"]
REVIEW --> TEST["integration-test"]
AUTHOR --> REPORT["full-review<br/>按需汇总"]
CODE --> REPORT
TEST --> REPORT
REPORT --> TEAM["team-cr<br/>多人审查时使用"]
classDef start fill:#E8F5E9,stroke:#2E7D32,color:#1B5E20,stroke-width:2px;
classDef design fill:#E3F2FD,stroke:#1976D2,color:#0D47A1,stroke-width:2px;
classDef build fill:#FFF3E0,stroke:#F57C00,color:#E65100,stroke-width:2px;
classDef review fill:#F3E5F5,stroke:#8E24AA,color:#4A148C,stroke-width:2px;
class IDEA start;
class DISCOVERY,DESIGN,SDD,CONTEXT,SCAN,EVIDENCE,READY design;
class BUILD build;
class REVIEW,AUTHOR,CODE,TEST,REPORT,TEAM review;
准备好你的小背包了吗?选中自己的操作系统,跟着命令走一遍,很快就能召唤技能小队啦 🎒✨
在仓库根目录念出这三条“小咒语”:
make audit-skills
make install-dry-run
make installmake audit-skills:先给技能小队点个名,检查数量、重名和功能重叠 🔍make install-dry-run:排练一次安装计划,不创建或替换软链接 🎭make install:正式同步config/profiles/diy.skills中的技能 🎉
Windows 小伙伴不需要额外安装 make 或 Git Bash,在仓库根目录依次执行下面两步就好啦:
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 preview
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 installpreview:先偷偷看一眼安装计划,不修改任何文件 👀install:使用目录 Junction 同步技能,不要求管理员权限或开启开发者模式 🪄- 如果当前 PowerShell 已允许本地脚本,也可以直接执行
.\install.ps1 preview和.\install.ps1 install,少敲一点字更轻松 🐇
看到完成提示后,重新打开客户端,就可以愉快地召唤技能啦 🎊 安装器只处理本机已检测到的客户端;未安装的客户端会乖乖跳过,不会乱动其他目录 🐾
Codex、Claude Code、Cursor 等支持终端操作的 AI IDE,都可以直接把下面的提示词交给 AI。它会先检查本地仓库与未提交改动,再拉取远端、审计 profile,并且只预演 Codex 的安装计划:
https://github.com/u7-u7/dev-skills 这是skill管理仓库,帮我拉下来并通过脚本 同步skill到codex
确认预演中的目标都属于该仓库后,可继续让 AI 完成同步并检查软链接:
继续只同步到 Codex。仅当冲突目标是该仓库已管理的软链接时覆盖;遇到普通目录或不属于该仓库的链接时保留并报告。
执行完成后,核对 ~/.codex/skills.union 和 ~/.codex/skills 中的链接均指向当前 dev-skills 仓库,并说明结果。
要把新的个人 skill(例如面试准备)纳入管理仓库时,把其 Git 地址或本地目录补到提示词里,并要求 AI 将它放到合适分类、更新 config/profiles/diy.skills 与索引文档,再运行审计和 Codex 预演。
macOS/Linux 使用 scripts/install_team_bundle.sh,Windows 使用 scripts/install_team_bundle.ps1。两个安装器都会拿着 profile 清单逐个确认 SKILL.md,再自动叫上 depends_on 里的依赖伙伴,最后把源码目录链接到客户端技能目录 🧙♀️🔗
源码只住在仓库这一间“小屋”里,客户端通过软链接或 Junction 来串门 🏠 修改仓库文件后,各客户端就能直接读到最新内容,不需要到处复制好多份~
flowchart LR
PROFILE["config/profiles/diy.skills<br/>默认同步清单"]
SOURCE["skills/category/skill-name<br/>唯一源码"]
INSTALLER["Bash / PowerShell 安装器<br/>选择、校验、冲突处理"]
CURSOR["用户目录/.cursor/skills"]
CLAUDE["用户目录/.claude/skills"]
CODEX1["用户目录/.codex/skills.union"]
CODEX2["用户目录/.codex/skills"]
PROFILE --> INSTALLER
SOURCE --> INSTALLER
INSTALLER -->|"软链接 / Junction"| CURSOR
INSTALLER -->|"软链接 / Junction"| CLAUDE
INSTALLER -->|"软链接 / Junction"| CODEX1
INSTALLER -->|"软链接 / Junction"| CODEX2
classDef profile fill:#E1F5FE,stroke:#0288D1,color:#01579B,stroke-width:2px;
classDef source fill:#E8F5E9,stroke:#388E3C,color:#1B5E20,stroke-width:2px;
classDef script fill:#FFF8E1,stroke:#F9A825,color:#F57F17,stroke-width:2px;
classDef target fill:#F3E5F5,stroke:#8E24AA,color:#4A148C,stroke-width:2px;
class PROFILE profile;
class SOURCE source;
class INSTALLER script;
class CURSOR,CLAUDE,CODEX1,CODEX2 target;
不用亲手填写用户名,安装器会自己找到你的用户目录,像一只认路的小信鸽 🕊️
- Windows 安装器要求
$env:OS为Windows_NT,通过 .NETUserProfile获取当前用户目录,例如C:\Users\<用户名>。 - macOS/Linux 安装器使用
$HOME,例如/Users/<用户名>或/home/<用户名>。 - 在 macOS/Linux 上误运行
install.ps1会直接终止,并提示改用 Bash 安装器。
| 客户端 | macOS / Linux | Windows |
|---|---|---|
| Cursor | $HOME/.cursor/skills |
C:\Users\<用户名>\.cursor\skills |
| Claude Code | $HOME/.claude/skills |
C:\Users\<用户名>\.claude\skills |
| Codex | $HOME/.codex/skills.union、$HOME/.codex/skills |
C:\Users\<用户名>\.codex\skills.union、C:\Users\<用户名>\.codex\skills |
以下命令适用于 macOS/Linux,想做什么直接来这里翻牌子 🎴
| 命令 | 作用 | 是否修改文件或链接 |
|---|---|---|
make install-dry-run |
预览默认 profile 的同步结果 | 否 |
make install |
同步默认 profile | 是 |
make install-force |
强制覆盖冲突目标 | 是,高风险 |
make uninstall |
卸载本仓库创建的技能软链接 | 是 |
make audit-skills |
审计数量、重名和功能重叠 | 否 |
make remove-skills-dry-run |
交互预览源码删除计划 | 否 |
make remove-skills |
交互执行源码删除 | 是,高风险 |
make stats |
查看本地技能使用统计 | 否 |
make dashboard |
打开本地统计看板 | 否 |
make dashboard-mock |
用 500 次内存 Mock 数据预览看板 | 否 |
make dashboard-test |
运行看板服务自动化测试 | 否 |
make clean |
清理 Python 缓存 | 是 |
| 命令 | 作用 | 是否修改文件或链接 |
|---|---|---|
.\install.ps1 preview |
预览默认 profile 的同步结果 | 否 |
.\install.ps1 install |
同步默认 profile | 是 |
.\install.ps1 install -Force |
强制覆盖冲突目标 | 是,高风险 |
.\install.ps1 uninstall |
卸载本仓库创建的 Junction | 是 |
.\install.ps1 preview -Profile <name> |
预览指定 profile | 否 |
Windows 首版先把常用 profile 流程照顾得稳稳当当 🫶 暂不支持 Bash 安装器的交互选择、重命名安装和自动写回 profile。
参数有点多也别慌,先让脚本自己递上说明书:
bash scripts/install_team_bundle.sh --help| 参数 | 说明 |
|---|---|
--profile <name> |
使用 config/profiles/<name>.skills,默认 diy |
--targets <list> |
仅同步指定客户端:cursor、claude、codex |
--interactive |
在终端中选择本次同步的技能 |
--no-interactive |
不询问,按 profile 全量处理 |
--dry-run |
只打印计划,不落地 |
--uninstall |
卸载本仓库拥有的软链接,不删除源码 |
--skill-conflict overwrite|skip|rename|ask |
同名 skill 的处理策略 |
--conflict ask|overwrite|skip |
已选目标存在时的替换策略 |
--persist-extra ask|always|never |
是否把交互追加的 skill 写回 profile |
--force |
不询问并覆盖已有目标,仅在确认目标归属后使用 |
常见搭配已经帮你配好啦:
# 交互选择本次同步项
bash scripts/install_team_bundle.sh --profile diy --interactive
# 仅同步到 Codex
bash scripts/install_team_bundle.sh --profile diy --targets codex --no-interactive
# 同名时保留现有项
bash scripts/install_team_bundle.sh --profile diy --skill-conflict skip
# 同名时使用 skill-name__dev-skill 形式安装
bash scripts/install_team_bundle.sh --profile diy --skill-conflict rename
# 选择未收录的 skill,并自动写回 profile
bash scripts/install_team_bundle.sh --profile diy --interactive --persist-extra always安全同步就像闯关:先检查、再预演、确认无误后才正式出发。一路按箭头走,就不容易踩坑啦 🗺️🐾
flowchart TD
START(["开始同步"]) --> PULL["更新仓库并检查工作区"]
PULL --> AUDIT["make audit-skills"]
AUDIT --> PASS{"审计通过?"}
PASS -- 否 --> FIX["修复 SKILL.md、依赖或 profile"]
FIX --> AUDIT
PASS -- 是 --> DRY["make install-dry-run"]
DRY --> CONFLICT{"存在冲突?"}
CONFLICT -- 否 --> INSTALL["make install"]
CONFLICT -- 是 --> OWNER{"确认目标属于本仓库?"}
OWNER -- 否 --> SAFE["使用 skip 或 rename"]
OWNER -- 是 --> REPLACE["确认后覆盖"]
SAFE --> VERIFY["检查输出与软链接"]
REPLACE --> VERIFY
INSTALL --> VERIFY
VERIFY --> DONE(["同步完成"])
classDef start fill:#E8F5E9,stroke:#2E7D32,color:#1B5E20,stroke-width:2px;
classDef check fill:#E3F2FD,stroke:#1976D2,color:#0D47A1,stroke-width:2px;
classDef decision fill:#FFF8E1,stroke:#F9A825,color:#F57F17,stroke-width:2px;
classDef warning fill:#FFEBEE,stroke:#D32F2F,color:#B71C1C,stroke-width:2px;
classDef action fill:#F3E5F5,stroke:#8E24AA,color:#4A148C,stroke-width:2px;
class START,DONE start;
class PULL,AUDIT,DRY,VERIFY check;
class PASS,CONFLICT,OWNER decision;
class FIX,REPLACE warning;
class INSTALL,SAFE action;
同步结束后,可以抽查几个软链接,看看技能有没有顺利抵达新家 🔍🏠
readlink "$HOME/.cursor/skills/brainstorming"
readlink "$HOME/.claude/skills/brainstorming"
readlink "$HOME/.codex/skills/brainstorming"预期结果应指向当前仓库中的 skills/development/brainstorming。如果某个客户端尚未安装或没有被检测到,对应链接缺席也是正常的,它只是还没来上班而已 💤
普通卸载只是让技能暂时下班:移除指向本仓库的客户端软链接,但源码和 profile 都会乖乖留在原地 🏠
make uninstallWindows 使用:
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 uninstall普通卸载是停止使用技能的首选方式。安装器会认真核对软链接目标,不会误删不属于本仓库的同名目录,安全感满满 🛡️✨
这里不是让技能“下班”,而是会真的搬空房间。scripts/remove_skills.sh 默认会同时执行三件事:删除客户端软链接、删除仓库中的 skill 源码、从 profile 中移除对应条目。执行前必须使用 --dry-run,并在执行后检查 git diff。
flowchart TD
START(["需要移除 skill"]) --> TYPE{"只停止本机使用?"}
TYPE -- 是 --> UNINSTALL["make uninstall"]
TYPE -- 否 --> SCOPE["用 --skills 或 --group 限定范围"]
SCOPE --> DRY["先执行 --dry-run"]
DRY --> REVIEW{"删除计划正确?"}
REVIEW -- 否 --> CANCEL["停止并调整参数"]
REVIEW -- 是 --> CLEAN{"Git 工作区可回退?"}
CLEAN -- 否 --> CANCEL
CLEAN -- 是 --> REMOVE["执行删除,不使用 --force"]
REMOVE --> AUDIT["make audit-skills"]
AUDIT --> DIFF["检查 git diff 与 profile"]
DIFF --> DONE(["完成"])
classDef start fill:#E8F5E9,stroke:#2E7D32,color:#1B5E20,stroke-width:2px;
classDef decision fill:#FFF8E1,stroke:#F9A825,color:#F57F17,stroke-width:2px;
classDef safe fill:#E3F2FD,stroke:#1976D2,color:#0D47A1,stroke-width:2px;
classDef danger fill:#FFEBEE,stroke:#D32F2F,color:#B71C1C,stroke-width:2px;
classDef verify fill:#F3E5F5,stroke:#8E24AA,color:#4A148C,stroke-width:2px;
class START,DONE start;
class TYPE,REVIEW,CLEAN decision;
class UNINSTALL,SCOPE,DRY safe;
class CANCEL,REMOVE danger;
class AUDIT,DIFF verify;
动手前先把帮助说明认真看完:
bash scripts/remove_skills.sh --help下面是带着安全护盾的示例 🛡️
# 预览删除一个 skill 的完整影响
bash scripts/remove_skills.sh --skills code-review --dry-run --no-interactive
# 只移除 Codex 软链接,不删除源码
bash scripts/remove_skills.sh --skills code-review --targets codex --unlink-only --dry-run
# 预览删除 review 分类中的全部源码、链接和 profile 条目
bash scripts/remove_skills.sh --group review --dry-run --no-interactive
⚠️ --repo-only会删除源码,--force还可能删除不属于本仓库的同名文件或目录。除非已经确认范围并具备 Git 回退点,否则不要使用。危险按钮不可以因为好奇就随便按!
想邀请新伙伴入住,或者帮旧伙伴搬家时,请按这份清单逐项确认 🏡📋
- 将源码放在
skills/<category>/<skill-name>/,并提供有效的SKILL.md。 - 检查 frontmatter 中的
name、description和depends_on。 - 更新
config/profiles/diy.skills和技能索引文档。 - 运行
make audit-skills、make install-dry-run和相关脚本检查。 - 扫描凭据、私有地址、生产数据和本机绝对路径。
- 查看
git diff,确认只包含预期改动后再提交。
偶尔帮技能小屋打扫一下,它就能一直保持轻巧又精神:
make audit-skills # 检查技能数量、重名和功能重叠
make stats # 查看本地使用统计
make sync-readme-stats # 手动刷新 README 使用统计快照
make dashboard # 打开本地统计看板
make dashboard-mock # 用 500 次内存 Mock 数据预览看板
make dashboard-test # 检查本地服务、Mock 和安全边界
make clean # 清理缓存文件想看看哪些 Skill 最近最勤快?让小看板把一串串数字变成闪闪发光的排行榜吧~ ✨🐾
软乎乎的淡彩卡片会把调用总量、活跃 Skill 和最近使用时间轻轻装好,谁最勤快一眼就能发现~ 🧁✨ 使用频率榜只展示 TOP 10,热闹但不拥挤!
# 读取真实统计
make dashboard
# 用 500 次模拟调用预览完整效果
make dashboard-mock
# 想让数据更热闹一点也可以
MOCK_COUNT=800 make dashboard-mock# 读取真实统计
py .\skills\platform\skill-usage-tracker\scripts\dashboard_server.py --open
# 用 500 次模拟调用预览完整效果
py .\skills\platform\skill-usage-tracker\scripts\dashboard_server.py --open --mock-count 500如果系统没有 py 命令,把它换成 python 就好啦。启动后访问 http://127.0.0.1:8000/dashboard/,按 Ctrl+C 可以让看板乖乖下班 🌙
真实模式会自动读取当前用户目录中的统计文件:
- macOS / Linux:
~/usage_stats.json - Windows:
$env:USERPROFILE\usage_stats.json
🔒 本地服务默认只监听 127.0.0.1,不会上传统计,也不会开放整个仓库。Mock 数据只在内存中生成,关掉服务就会消失,绝不会覆盖真实统计文件,可以放心大胆地把数字拉到几百次!
如果直接双击 HTML 以 file:// 打开,浏览器仍然不能自动读取用户目录;这时可以点击页面里的“导入本地 JSON”作为备用小门 🚪
ℹ️ “全部时间”使用准确累计值;7/30 天窗口基于每个技能最近保留的 50 条历史记录,高频技能的窗口值可能低于真实次数。
它可能只是还没被安装器认出来~先确认客户端或 CLI 已安装,再执行 make install-dry-run;Windows 则执行 .\install.ps1 preview。macOS/Linux 安装器还要求目标父目录存在。
别紧张,这是 Windows 执行策略在认真守门 🛡️ 可以仅为本次进程使用 powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 preview,无需永久修改系统执行策略。
在原生 Windows PowerShell 5.1 或 PowerShell 7 中执行:
powershell -NoProfile -ExecutionPolicy Bypass -File .\tests\windows-installer.tests.ps1测试只在系统临时目录搭建一个“小舞台” 🎭 并覆盖 dry-run、依赖补齐、Junction、冲突、强制覆盖和安全卸载。
非 Windows 开发机安装 PowerShell 7 后,可以追加 -DryRunOnly 验证 profile 和依赖逻辑,但 Junction 场景仍需在原生 Windows 运行。
因为它只是在认真彩排,不会真的动手修改已有目标~先确认目标归属,再选择 --skill-conflict skip、rename 或显式覆盖策略。
正常情况下不需要。客户端会沿着软链接直接读取仓库源码,改完立刻就能看到新内容 ✨ 只有移动目录、修改 skill 名称或链接丢失时才需要重新同步。
它还没有拿到正式入队名额~非交互模式只同步 profile。使用 --interactive 选择额外 skill,并按需使用 --persist-extra always 写回 profile。
.
├── install.ps1
├── config/
│ ├── profiles/diy.skills
│ └── skills/repository-skills.manifest.json
├── docs/plans/
├── scripts/
│ ├── install_team_bundle.sh
│ └── install_team_bundle.ps1
├── tests/
└── skills/
├── development/
├── review/
├── visualization/
└── platform/
- 🪴 只保留个人持续维护的技能,让每位伙伴都有人照顾。
- 🧸 示例必须使用中性项目名、域名和数据,公开分享也安心。
- 🔐 禁止提交 token、cookie、密码、内部地址、生产数据和本机绝对路径。
- 🧭 删除或移动技能时,同步更新 profile、README、脚本路径和依赖说明。
保持小而美、可复用、可放心分享,让这间技能小屋一直热热闹闹地运转下去吧 ฅ՞•ﻌ•՞ฅ ✨
