关注我的公众号:【编程朝花夕拾】,可获取首发内容。

01 引言
AI编程已经慢慢普及,各大自媒体、博主、UP主都在聊AI编程这件事。简单来讲就是使用好的模型通过,自然语言完成对模型的命令,自动完成代码编写以及问题的解决。
但是,在测试过程中AI怎么知道我的项目结构或者说新创建的类应该放在哪个包下。已有的项目我们可以通过AI理解,新项目就有点无所是从了。由于大部分开发都是团队协作,规范很重要。于是,想通过Skills的方式来规范项目结构。
02 安装Skills
创建skills的时候,我们可以直接通过AI生成。但是现成的skills我们也要使用。
anthropics提供了很对实用的skills,涉及doc、pdf、pdf、web等。

其中一个辅助技能skill-creator专门为我们创建标准的skills。
项目地址:github.com/anthropics/...
我们将需要的技能安装到自己的变成助手上即可使用。我这里使用的是OpenCode,完全兼容claudeCode。
由于我这里使用的OpenCode的桌面端,我将手动下载是所有的skills,并复制到C:/Users/{user.name}/.claude/skills下。

我们检查是否已经安装成功。
通过/的方式就可以看到已经安装的skills

03 创建skills
3.1 下达任务
同样我们通过提示词的方式。
markdown
我要创建一个skills,对于java包路径的规范,如基础包为com.simonking,后面的跟下项目名,如boot-skills,最后的包名为com.simonking.boot.skills
包的具体类:
常量类包:constant
枚举类包:enums
参数传输类包:dto
数据库映射包:model
接口包:service
实现类:service/impl
工具类:util
控制类:controller
配置类:config
异常类:exception
消息类:mq
拦截器:interceptor
过滤器:filter
数据展示层:vo
数据库交互层:mapper
注意:
1、包路径如果重复自动去重
为了清楚的知道AI是否会使用skill-creator,我们使用plan模式。在该模式下,AI不能修改任何文件。
我们可以看到,确实加载了skill-creator。

3.2 确认问题
分析完之后,AI有几个问题需要向我们确认。

我们需要按照标号回答问题:
markdown
1、基础包固定,项目根据当前工程名称获取,有具体类时才生成对应的包,或者项目中需要增加时按需增加
2、包名全部小写,尽量用单数形式,如果与关键词冲突使用复数形式代替
3、前后两个包名重复时去重,如boot.boot -> boot
4、需要
3.3 build模式创建
如果没有问题,这个时候就可以打开build模式,进行创建了。

AI执行了三个任务,这个时候,我们只需要等到结果即可。
创建完成之后,我们会发现skills默认安装在了全局变量下:
C:/Users/{user.name}/.claude/skills/java-package-convention/

3.4 验证
创建完成之后,AI给出了四个测试用例,会问我们要不要测试验证,我们验证一下:

验证结果

到这里我们的skills就已经穿创建成功了。
04 项目测试
创建的skills名称AI取名为java-package-convention。
skills实战有没有效果,我们还需要实际验证。我们通过一个小项目测试一下,同样切换为Plan模式。
4.1 下达任务
提示词:
markdown
创建一个springboot项目,完成用户的查询功能。

4.2 确认问题
提示词:
markdown
1、是的
2、用户字段包括id、username、password、age
3、mysql + MyBatis Plus
4、是的
5、核心代码文件
确认问题,然后切换为build模式
4.3 项目测试

我们可以看到AI制定了8个任务,我们静等结果即可。
创建完成之后,我们可以看到项目结构:

非常符合我的要求。
由于skills的名字java-package-convention太长,我重名为java-pkg-gen
java-pkg-gen我已经上传到GitHub上,有需要的自取。
GitHub地址:github.com/simonking-w...
05 小结
AI编程可能最大的挑战就是不稳定,无论是切换模型还是AI幻觉等,可以通过skills的方式一定程度上可以得到改善。