VSCode配置 AI agent skills 详细步骤

VSCode配置 AI agent skills 详细步骤

在VS Code中配置“Agent Skills”,是为你的AI编程助手(如GitHub Copilot)定制可复用的专业能力包。你可以把它理解为教你助手如何执行特定任务的标准说明书

在这里插入图片描述

它主要由一个 SKILL.md 文件以及相关的脚本、示例组成。当你的需求与某个技能描述匹配时,Copilot会自动加载这个“技能包”来更精准地帮你完成任务,比如创建测试、调试工作流等

启用功能

在这里插入图片描述

技能创建位置

项目根目录个人配置文件夹中,创建一个特定的文件夹来存放你的技能包
  • 项目技能:在项目根目录创建 .github/skills/ 目录。就会作用于项目
  • 个人技能:在你电脑用户目录下创建 ~/.copilot/skills/(推荐)或 ~/.claude/skills/。作用于你电脑里所有的项目

技能编写规范

my-skill/ (技能文件夹) ├── SKILL.md # 必需:核心入口文件,包含元数据和主要指令 ‼️‼️‼️ ├── references/ 或 resources/ # 可选:参考文档(如API说明、详细政策) │ ├── advanced-guide.md │ └── api-reference.md ├── examples/ # 可选:使用示例 │ └── common-use-cases.md ├── scripts/ # 可选:可执行脚本(Python、Bash、node等) │ └── process_data.py └── templates/ 或 assets/ # 可选:输出模板、品牌资源等 └── report-template.md 

哪怕你这个技能包里啥也不放,SKILL.md必须有‼️

创建技能案例

比如用来检查vue项目代码规范的项目技能

存放目录:.github/skills/code-review/
SKILL.md:

--- name: code-review description: | Guides the review and enforcement of code style and quality standards in Vue 3 projects using ESLint, Prettier, and Vue-specific rules. Use when asked about code style, linting errors, or how to write compliant Vue code. --- # Vue 3 项目代码规范审查指南 ## 🎯 何时使用此技能 当用户的问题涉及以下方面时,应激活此技能: - 检查代码风格或规范问题 - 解释或修复ESLint/Prettier报错 - 询问Vue组件的最佳实践写法(如组件命名、Props定义、脚本顺序) - 需要自动生成符合项目规范的代码片段 ## 🔧 核心工具与配置 本项目使用以下工具链强制执行代码规范。在提供建议前,请先确认项目根目录是否存在对应配置文件。 | 工具 | 配置文件 | 主要职责 | | :--- | :--- | :--- | | **ESLint** | `.eslintrc.js` | JavaScript/TypeScript代码质量检查,识别潜在错误 | | **Prettier** | `.prettierrc` | 代码风格格式化,保持样式统一 | | **eslint-plugin-vue** | (继承自ESLint配置) | 专用于Vue 3的官方规则集 | ## 📝 重点审查内容 在审查或生成Vue代码时,请优先检查以下方面。 ### 1. 组件命名与结构 - **单文件组件命名**:使用**PascalCase**,例如 `UserProfile.vue`。 - **组件引用命名**:在模板和脚本中引用时保持PascalCase,例如 `<UserProfile />`。 - **脚本结构顺序**:建议遵循 `<script setup>`、`import`、`Props/Emits`定义、响应式数据、计算属性、生命周期钩子、方法的逻辑顺序。 ### 2. 语法与风格 - **优先使用 `<script setup>`** 语法以提高简洁性。 - **Props定义**:使用 `defineProps` 并尽可能提供详细类型定义。 - **响应式数据**:优先使用 `ref` 处理基本类型,使用 `reactive` 处理对象;在模板中正确使用 `.value`。 - **代码格式化**:确保代码遵循Prettier规则(通常是尾随逗号、单引号、2空格缩进)。 ### 3. Vue特定规则检查 确保代码遵守 `eslint-plugin-vue` 的核心规则: - **`vue/component-name-in-template-casing`**: 模板中组件名必须为PascalCase。 - **`vue/attribute-hyphenation`**: 模板中的属性名必须使用kebab-case(例如 `:user-name`)。 - **`vue/html-self-closing`**: 没有内容的标签应自闭合。 - **`vue/mustache-interpolation-spacing`**: 插值表达式 `{{ }}` 内应有空格。 ## 🛠️ 常用命令与修复建议 当用户遇到规范问题时,提供可执行的解决方案。 ### 运行检查与修复 ```bash # 检查整个项目并输出错误报告 npm run lint # 检查并自动修复可修复的问题 npm run lint:fix # 检查特定文件 npx eslint ./src/components/UserProfile.vue --ext .vue # 使用Prettier格式化所有文件 npm run format 
在这里插入图片描述

使用技能

有了技能包后,它的使用是智能且自动化的。你无需手动“打开”技能,而是通过与AI助手(如Copilot Chat)进行自然对话来触发的。整个过程就像一位熟悉你项目规范的新队友在帮你。
从触发到生效的完整过程:

在这里插入图片描述

说白了就是在VS Code中打开Copilot Chat面板直接对话:

在这里插入图片描述

怎么验证技能是否生效?
一个简单的验证方法是,问一个非常具体、且答案明确写在 SKILL.md 中的问题。
比如 :“我们项目对于Vue单文件组件的文件名,要求使用什么命名法?”
如果技能被正确加载,AI的回答会直接引用 SKILL.md 中的原文(如“使用PascalCase,例如 UserProfile.vue”),而不是一个泛泛的通用答案。

在这里插入图片描述

Read more

算法·入门篇『课堂随笔』

算法·入门篇『课堂随笔』

Zero·前言 本文章需结合 B站教学视频 共同学习与观看。 一、O(n) 1.1 分析模型基础 在分析算法复杂度之前,我们必须知道的概念: 1. 时间复杂度:算法执行所需的时间与输入规模的关系 * 白话:大概执行了多少次宏观上、可概括的代码段 2. 空间复杂度:算法执行所需的额外存储空间与输入规模的关系 * 白话:开辟了多大的空间,这个容量与输入规模的比例 常用表示法: * 大O记号(Big-O):表示算法的最坏情况或渐进上界 * Ω记号(Omega):表示算法的最好情况或渐进下界 * Θ记号(Theta):表示算法的紧确界 1.2 冒泡排序分析 voidbubble_sort(int arr[],int n){for(int i =0; i <

By Ne0inhk
C++ 容器适配器与核心数据结构精解:栈、队列、deque 底层实现与实战应用----《Hello C++ Wrold!》(17)--(C/C++)

C++ 容器适配器与核心数据结构精解:栈、队列、deque 底层实现与实战应用----《Hello C++ Wrold!》(17)--(C/C++)

文章目录 * 前言 * stack * 其中常用的接口 * stack的模拟实现 * queue * 其中常见的接口 * queue的模拟实现 * deque * 常见接口 * 容器适配器 * priority_queue * 常用接口 * priority_queue模拟实现 * 反向迭代器的模拟实现 * 仿函数(又叫函数对象) * 作业部分 * 逆波兰表达式 * 引申 前言 在 C++ 标准库的庞大体系中,数据结构是支撑高效编程的基石,而容器适配器、序列容器以及相关的算法逻辑,则是其中最具实用价值的核心内容。无论是日常开发还是算法刷题,栈(stack)、队列(queue)、优先级队列(priority_queue)这些 “常客” 的身影几乎无处不在,它们看似简单的接口背后,藏着对数据存取规则的精妙设计 —— 栈的 “先进后出” 适配递归调用、括号匹配等场景,队列的 “先进先出” 适配层序遍历、

By Ne0inhk
【算法通关指南:数据结构和算法篇】栈的实现不用愁!数组 + 变量 n,新手也能 拿捏栈实现

【算法通关指南:数据结构和算法篇】栈的实现不用愁!数组 + 变量 n,新手也能 拿捏栈实现

🔥小龙报:个人主页 🎬作者简介:C++研发,嵌入式,机器人方向学习者 ❄️个人专栏:《算法通关指南 》 ✨ 永远相信美好的事情即将发生 文章目录 * 前言 * 一、栈的概念 * 二、栈的模拟实现 * 2.1创建 * 2.2进栈 * 2.3出栈 * 2.4栈顶元素 * 2.5判空 * 2.6有效元素个数 * 2.7 所有测试代码 * 三、stack * 3.1 如何创建 * 3.2容器相关接口 * 3.2.1 size / empty * 3.2.2 push/pop * 3.2.

By Ne0inhk
数据结构【堆和链式结构】

数据结构【堆和链式结构】

堆和链式结构 * 1.堆的概念和定义 * 1.1堆 * 1.2二叉树的性质 * 2.堆的实现 * 3.实现链式二叉树 * 3.1链式二叉树的概念 * 3.2前中后遍历 * 3.3遍历(举例) 1.堆的概念和定义 1.1堆 定义:是特殊的二叉树 堆大堆小堆 大堆(大根堆):根节点最大的堆 小堆(小根堆):根节点最小的堆 * 堆中某个结点的值总是不大于或不小于其父结点的值 * 堆总是一棵完全二叉树 1.2二叉树的性质 有n个结点的二叉树,从上到下从左到右从0开始依次编号,对于编号为i的结点有以下性质 * i 结点的父结点:(i-1)/2 * i结点的左孩子结点:2i+1 * i结点的右孩子结点:2i+2 * 2i+1或2i+

By Ne0inhk