create-featurelisted
Install: claude install-skill structure-projects/structure-agent-rules
# 新建特性 / 子目录
> 按目录类型创建对应结构。**MUST 先询问目录类型,禁止默认按"子包"处理**。
## 前置条件
- 用户明确要新建目录 / 特性 / 功能模块
## 执行步骤
### 第 1 步:询问目录类型(MUST)
```
您要创建的目录是哪种类型?
a) 特性目录(feature directory)
- 独立功能模块,跨层组织代码
- 示例:features/user-management/{controller,service,repository}/
- 不影响现有包结构
b) 子包(subpackage)
- 在现有 Java package 下创建子包
- 示例:cn.structured.user.features.UserController
- 会影响 package 语句和 import
c) 非代码目录
- 不放 Java 源代码
- 示例:docs/、scripts/、examples/、assets/
请回复 a / b / c:
```
### 第 2 步:按类型创建
#### 类型 a:特性目录
```
features/<feature-name>/
├── README.md # 特性说明
├── controller/ # 控制器(或按语言调整)
│ └── {X}Controller.java
├── service/ # 业务逻辑
│ └── {X}Service.java
├── repository/ # 数据访问
│ └── {X}Repository.java
├── model/ # 模型
│ ├── {X}Entity.java
│ ├── {X}DTO.java
│ └── {X}VO.java
└── tests/ # 测试
└── {X}ServiceTest.java
```
**关键**:
- 跨层组织(controller / service / repository 在同一特性目录下)
- 不影响现有包结构
- 适合独立功能模块、实验性功能
#### 类型 b:子包
在现有 package 下创建子包:
```
src/main/java/cn/structured/{X}/
├── application/ # 现有
├── domain/ # 现有
└── features/ # 新增子包
└── {Y}Controller.java
```
**关键**:
- 影响 `package` 语句
- 影响 `import`
- 需要符合 Java 命名规范
#### 类型 c:非代码目录
```
<directory-name>/
└── README.md # 说明文档
```
**关键**:
- 不放 Java 源代码
- 通常放 markdown / 脚本 / 资源文件
### 第 3 步:生成 README(特性目录 / 非代码目录 MUST)
特性目录的 README.md:
```markdown
# <特性名>