# dev-skill **Repository Path**: u7u7-sjh/dev-skill ## Basic Information - **Project Name**: dev-skill - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-07-24 - **Last Updated**: 2026-07-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🧰✨ DIY Agent Skills · 你的 AI 技能小屋 > ฅ՞•ﻌ•՞ฅ 欢迎来到这间小小的 AI 技能屋!把常用研发能力装进工具箱,需要时轻轻一喊,它们就会跑来帮忙啦~ 🪄💫 这是一个只收录个人维护技能的轻量仓库。每个 Skill 都有自己的拿手好戏,既能独立出场,也能组队完成设计、开发、审查和测试任务 🤝✨ 所有示例均使用中性命名,不依赖组织专用平台、私有域名、内部凭据或本机绝对路径,可以放心阅读和分享 🌱 ## 🧩 技能小队集合 先来认识一下住在这里的小伙伴们吧!每一位都有清晰分工,不会一窝蜂抢活干 🐾 | 小队 | Skill | 拿手好戏 | |---|---|---| | 🛠️ Development | `brainstorming` | 💭 开发前澄清需求、比较方案并确认设计 | | 🛠️ Development | `app-scanner` | 🔍 扫描多应用工作区并提取业务能力 | | 🛠️ Development | `sdd-dev-workflow` | 🧭 从需求出发,扫描代码并生成技术方案、Plan 与 Tasks | | 🛠️ Development | `ai-pair-programmer` | 🤝 分析代码库、实现改动并完成验证 | | 🧪 Review | `author-final-review` | 👤 审查指定作者的最终代码状态 | | 🧪 Review | `code-review` | 🛡️ 检查代码质量、安全、性能和架构风险 | | 🧪 Review | `integration-test` | 🎯 根据变更风险设计集成测试用例 | | 🧪 Review | `full-review` | 📦 汇总代码审查、影响分析和测试设计 | | 🧪 Review | `team-cr` | 👥 为多人代码审查会议生成讨论清单 | | 🎨 Visualization | `diagram-creation` | 🗺️ 创建流程图、架构图、时序图和学习路线 | | ⚙️ Platform | `git-worktree` | 🌿 创建和管理 Git worktree | | ⚙️ Platform | `skill-usage-tracker` | 📊 记录和查看本地技能使用统计 | 想看看它们什么时候会自动出现、彼此怎么组队?详细触发方式与依赖关系都藏在 [skills/README.md](skills/README.md) 里啦 📚✨ ## 🗺️ Skill 冒险路线 一项需求从“小脑洞”成长为“放心交付”,通常会沿着下面这条路线一路升级打怪 🎮🌟 ```mermaid flowchart LR IDEA(["需求或问题"]) --> DISCOVERY{"需求和方案是否清晰?"} DISCOVERY -- 否 --> DESIGN["brainstorming
探索目标与方案"] DISCOVERY -- 是 --> SDD["sdd-dev-workflow
需求 → 技术方案 → Plan → Tasks"] DESIGN --> SDD SDD --> CONTEXT{"是否为多应用工作区?"} CONTEXT -- 是 --> SCAN["app-scanner
补充应用与依赖证据"] CONTEXT -- 否 --> EVIDENCE["扫描当前仓代码
建立真实工程证据"] SCAN --> READY["开发准备包
requirements / design / plan / tasks"] EVIDENCE --> READY READY --> BUILD["ai-pair-programmer
明确授权后实现与验证"] BUILD --> REVIEW{"需要哪类保障?"} REVIEW --> AUTHOR["author-final-review"] REVIEW --> CODE["code-review"] REVIEW --> TEST["integration-test"] AUTHOR --> REPORT["full-review
按需汇总"] CODE --> REPORT TEST --> REPORT REPORT --> TEAM["team-cr
多人审查时使用"] 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; ``` ## 🚀 三分钟快速开工 准备好你的小背包了吗?选中自己的操作系统,跟着命令走一遍,很快就能召唤技能小队啦 🎒✨ ### 🍎🐧 macOS / Linux 在仓库根目录念出这三条“小咒语”: ```bash make audit-skills make install-dry-run make install ``` - `make audit-skills`:先给技能小队点个名,检查数量、重名和功能重叠 🔍 - `make install-dry-run`:排练一次安装计划,不创建或替换软链接 🎭 - `make install`:正式同步 `config/profiles/diy.skills` 中的技能 🎉 ### 🪟💙 Windows PowerShell 5.1+ Windows 小伙伴不需要额外安装 `make` 或 Git Bash,在仓库根目录依次执行下面两步就好啦: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 preview powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 install ``` - `preview`:先偷偷看一眼安装计划,不修改任何文件 👀 - `install`:使用目录 Junction 同步技能,不要求管理员权限或开启开发者模式 🪄 - 如果当前 PowerShell 已允许本地脚本,也可以直接执行 `.\install.ps1 preview` 和 `.\install.ps1 install`,少敲一点字更轻松 🐇 看到完成提示后,重新打开客户端,就可以愉快地召唤技能啦 🎊 安装器只处理本机已检测到的客户端;未安装的客户端会乖乖跳过,不会乱动其他目录 🐾 ## 🔄✨ 技能同步魔法 macOS/Linux 使用 `scripts/install_team_bundle.sh`,Windows 使用 `scripts/install_team_bundle.ps1`。两个安装器都会拿着 profile 清单逐个确认 `SKILL.md`,再自动叫上 `depends_on` 里的依赖伙伴,最后把源码目录链接到客户端技能目录 🧙‍♀️🔗 源码只住在仓库这一间“小屋”里,客户端通过软链接或 Junction 来串门 🏠 修改仓库文件后,各客户端就能直接读到最新内容,不需要到处复制好多份~ ```mermaid flowchart LR PROFILE["config/profiles/diy.skills
默认同步清单"] SOURCE["skills/category/skill-name
唯一源码"] INSTALLER["Bash / PowerShell 安装器
选择、校验、冲突处理"] 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`,通过 .NET `UserProfile` 获取当前用户目录,例如 `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` | ### 🍎🐧 Make 命令小抄 以下命令适用于 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 缓存 | 是 | ### 🪟💙 Windows PowerShell 命令小抄 | 命令 | 作用 | 是否修改文件或链接 | |---|---|---| | `.\install.ps1 preview` | 预览默认 profile 的同步结果 | 否 | | `.\install.ps1 install` | 同步默认 profile | 是 | | `.\install.ps1 install -Force` | 强制覆盖冲突目标 | 是,高风险 | | `.\install.ps1 uninstall` | 卸载本仓库创建的 Junction | 是 | | `.\install.ps1 preview -Profile ` | 预览指定 profile | 否 | Windows 首版先把常用 profile 流程照顾得稳稳当当 🫶 暂不支持 Bash 安装器的交互选择、重命名安装和自动写回 profile。 ### 🧙‍♂️ Bash 安装器魔法参数 参数有点多也别慌,先让脚本自己递上说明书: ```bash bash scripts/install_team_bundle.sh --help ``` | 参数 | 说明 | |---|---| | `--profile ` | 使用 `config/profiles/.skills`,默认 `diy` | | `--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 # 交互选择本次同步项 bash scripts/install_team_bundle.sh --profile diy --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 ``` ## 🧭✨ 同步冒险 SOP 安全同步就像闯关:先检查、再预演、确认无误后才正式出发。一路按箭头走,就不容易踩坑啦 🗺️🐾 ```mermaid 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; ``` 同步结束后,可以抽查几个软链接,看看技能有没有顺利抵达新家 🔍🏠 ```bash readlink "$HOME/.cursor/skills/brainstorming" readlink "$HOME/.claude/skills/brainstorming" readlink "$HOME/.codex/skills/brainstorming" ``` 预期结果应指向当前仓库中的 `skills/development/brainstorming`。如果某个客户端尚未安装或没有被检测到,对应链接缺席也是正常的,它只是还没来上班而已 💤 ## 🧹🌙 让技能下班:卸载与删除 ### 💤 普通卸载 普通卸载只是让技能暂时下班:移除指向本仓库的客户端软链接,但源码和 profile 都会乖乖留在原地 🏠 ```bash make uninstall ``` Windows 使用: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 uninstall ``` 普通卸载是停止使用技能的首选方式。安装器会认真核对软链接目标,不会误删不属于本仓库的同名目录,安全感满满 🛡️✨ ### ⚠️ 危险操作:永久删除源码 这里不是让技能“下班”,而是会真的搬空房间。`scripts/remove_skills.sh` 默认会同时执行三件事:删除客户端软链接、删除仓库中的 skill 源码、从 profile 中移除对应条目。执行前必须使用 `--dry-run`,并在执行后检查 `git diff`。 ```mermaid 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 bash scripts/remove_skills.sh --help ``` 下面是带着安全护盾的示例 🛡️ ```bash # 预览删除一个 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 回退点,否则不要使用。危险按钮不可以因为好奇就随便按! ## 🛠️🌟 Skill 维护 SOP 想邀请新伙伴入住,或者帮旧伙伴搬家时,请按这份清单逐项确认 🏡📋 1. 将源码放在 `skills///`,并提供有效的 `SKILL.md`。 2. 检查 frontmatter 中的 `name`、`description` 和 `depends_on`。 3. 更新 `config/profiles/diy.skills` 和技能索引文档。 4. 运行 `make audit-skills`、`make install-dry-run` 和相关脚本检查。 5. 扫描凭据、私有地址、生产数据和本机绝对路径。 6. 查看 `git diff`,确认只包含预期改动后再提交。 ## 🧺✨ 仓库日常维护 偶尔帮技能小屋打扫一下,它就能一直保持轻巧又精神: ```bash 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 使用统计看板](docs/assets/skill-usage-dashboard.jpg) 软乎乎的淡彩卡片会把调用总量、活跃 Skill 和最近使用时间轻轻装好,谁最勤快一眼就能发现~ 🧁✨ 使用频率榜只展示 TOP 10,热闹但不拥挤! ### 🍎🐧 macOS / Linux ```bash # 读取真实统计 make dashboard # 用 500 次模拟调用预览完整效果 make dashboard-mock # 想让数据更热闹一点也可以 MOCK_COUNT=800 make dashboard-mock ``` ### 🪟💫 Windows PowerShell ```powershell # 读取真实统计 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 为什么提示脚本被禁止运行? 别紧张,这是 Windows 执行策略在认真守门 🛡️ 可以仅为本次进程使用 `powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 preview`,无需永久修改系统执行策略。 ### 🧪 如何验证 Windows 安装器? 在原生 Windows PowerShell 5.1 或 PowerShell 7 中执行: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File .\tests\windows-installer.tests.ps1 ``` 测试只在系统临时目录搭建一个“小舞台” 🎭 并覆盖 dry-run、依赖补齐、Junction、冲突、强制覆盖和安全卸载。 非 Windows 开发机安装 PowerShell 7 后,可以追加 `-DryRunOnly` 验证 profile 和依赖逻辑,但 Junction 场景仍需在原生 Windows 运行。 ### 🎭 为什么 dry-run 显示冲突但没有覆盖? 因为它只是在认真彩排,不会真的动手修改已有目标~先确认目标归属,再选择 `--skill-conflict skip`、`rename` 或显式覆盖策略。 ### 🔄 修改 skill 后需要重新安装吗? 正常情况下不需要。客户端会沿着软链接直接读取仓库源码,改完立刻就能看到新内容 ✨ 只有移动目录、修改 skill 名称或链接丢失时才需要重新同步。 ### 🐣 profile 外的新 skill 为什么没有自动安装? 它还没有拿到正式入队名额~非交互模式只同步 profile。使用 `--interactive` 选择额外 skill,并按需使用 `--persist-extra always` 写回 profile。 ## 🏡📦 技能小屋结构 ```text . ├── 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、脚本路径和依赖说明。 保持小而美、可复用、可放心分享,让这间技能小屋一直热热闹闹地运转下去吧 ฅ՞•ﻌ•՞ฅ ✨