Install
openclaw skills install fullstack-project-creatorCreate standardized Java Spring Boot + Vue3 full-stack project structure
openclaw skills install fullstack-project-creatorCreate standardized Java Spring Boot + Vue3 full-stack project structure for users.
Author: @superchao9 Version: 1.0.0 License: MIT
Use this Skill when users need to create new projects or features, to generate standardized project structure and initial files.
This Skill activates when user expressions contain the following patterns:
| Pattern | Example |
|---|---|
| Create/New/Generate + Project/System/Feature | "Create a lottery project", "Generate user management system" |
| Write/Build/Develop + Project/System/Feature | "Help me write a blog project", "Build an order system" |
| Give me/Need + Project/System | "Give me a lottery project", "Need an image management feature" |
| XX Project/System/Module | "Lottery project", "User management module" (implies creation intent) |
| Simple/Complete + Project | "Simple lottery project", "Complete e-commerce system" |
Created projects must follow this structure:
{project-name}/
├── backend/ # Java Backend
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── example/
│ │ │ │ └── {project-name}/
│ │ │ │ ├── controller/ # REST API Controllers
│ │ │ │ ├── service/ # Business Logic Layer
│ │ │ │ ├── mapper/ # MyBatis Mapper
│ │ │ │ ├── entity/ # Entity Classes
│ │ │ │ ├── dto/ # Data Transfer Objects
│ │ │ │ ├── config/ # Configuration Classes
│ │ │ │ └── util/ # Utility Classes
│ │ │ └── resources/
│ │ │ ├── application.yml # Main Configuration
│ │ │ ├── application-dev.yml # Dev Environment Config
│ │ │ └── mapper/ # MyBatis XML
│ │ └── test/ # Test Code
│ ├── pom.xml # Maven Config
│ └── README.md # Backend Documentation
│
├── frontend/ # Vue3 Frontend
│ ├── src/
│ │ ├── api/ # API Interfaces
│ │ ├── assets/ # Static Resources
│ │ ├── components/ # Common Components
│ │ ├── views/ # Page Views
│ │ ├── router/ # Route Config
│ │ ├── stores/ # Pinia State Management
│ │ ├── utils/ # Utility Functions
│ │ ├── App.vue
│ │ └── main.js
│ ├── public/
│ ├── package.json
│ ├── vite.config.js
│ └── README.md
│
├── database/ # Database Scripts
│ ├── init.sql # Initialization Script
│ └── migration/ # Migration Scripts
│
├── docs/ # Project Documentation
│ ├── api.md # API Documentation
│ └── design.md # Design Documentation
│
├── docker/ # Docker Config
│ ├── Dockerfile-backend
│ ├── Dockerfile-frontend
│ └── docker-compose.yml
│
├── .gitignore
├── README.md # Project Overview
└── PROJECT.md # Project Specification
com.example.{project-name}<script setup> syntaxapi/ directoryWhen recognizing user intent to create a project:
lottery)Must ask user: "Where should the project be generated? For example:"
d:\AIWorks\fast_java_coding\generated-projects\{project-name}d:\my-projects\{project-name}~/projects/{project-name}When trying to write to user-specified path:
If insufficient permissions (cannot write):
⚠️ Cannot write to specified path [path], insufficient permissions.
Please choose:
1. [Grant folder permissions] - I will guide you on how to set permissions
2. [Generate in working directory] - Project will be generated in my workspace/generated-projects/ directory
Please enter 1 or 2:
If option 1 (Grant permissions): Provide permission setting guidance for corresponding system (see "Permission Setting Guide" below)
If option 2 (Working directory):
~/.openclaw/workspace/generated-projects/ directory existsAfter generation is complete, must output:
The following user expressions should trigger this Skill:
| User Input | Recognized Project Name | Complexity |
|---|---|---|
| "Help me create a lottery project" | lottery | Standard |
| "Generate a simple image management system" | image-manager | Simple |
| "Build a user management project" | user-management | Standard |
| "Give me an order system" | order-system | Standard |
| "Help me write a blog project" | blog | Standard |
| "Need a content publishing feature" | content-publisher | Simple |
| "Create a new e-commerce project" | ecommerce | Complete |
User: "Help me create a lottery project"
Assistant: "Okay! I'll help you create a lottery project.
Confirmation:
Where should the project be generated? For example:
d:\my-projects\lotteryd:\workspace\projects\lotteryPlease enter path:"
User: "d:\my-projects\lottery"
Assistant: "✅ Project generation complete!
📁 Project Path: d:\my-projects\lottery
📂 Project Structure:
lottery/
├── backend/ # Java Spring Boot
├── frontend/ # Vue3 Frontend
├── database/ # Database Scripts
└── README.md # Startup Instructions
🚀 Startup Steps:
mysql -u root -p < database/init.sqlcd backend && mvn spring-boot:runfrontend/index.html📋 Main Files:
backend/pom.xml - Maven Configbackend/src/.../LotteryController.java - Lottery APIfrontend/index.html - Lottery Pagedatabase/init.sql - Database Initialization"User: "d:\projects\lottery"
Assistant: "⚠️ Cannot write to specified path d:\projects\lottery, insufficient permissions.
Please choose:
Please enter 1 or 2:"
User: "2"
Assistant: "✅ Project has been generated in working directory:
📁 Project Path: C:\Users\liuchao25\.openclaw\workspace\generated-projects\lottery\
[Subsequent output of project structure, startup steps...]"
Never use hardcoded paths. Must ask user for desired generation path before each project creation.
Example inquiry:
Where should the project be generated?
- Enter absolute path, e.g.:
d:\my-projects\lottery- Or press Enter for default:
~/.openclaw/workspace/generated-projects/lottery/
When user chooses "Grant folder permissions", provide the following guidance:
Windows (PowerShell):
# Method 1: Modify folder permissions
icacls "D:\YourFolder" /grant Users:F
# Method 2: Run OpenClaw as administrator
# Right-click PowerShell → Run as administrator
Windows (GUI):
macOS/Linux:
# Modify folder permissions
chmod 755 /path/to/folder
# Or change owner
sudo chown $USER:$USER /path/to/folder
If user chooses to generate in working directory:
~/.openclaw/workspace/generated-projects/{project-name}/generated-projects directory (if not exists)| User Choice | Generation Path Example |
|---|---|
| Custom path | d:\my-projects\lottery\ |
| macOS/Linux | ~/projects/lottery/ or /home/user/projects/lottery/ |
| Default working directory | ~/.openclaw/workspace/generated-projects/lottery/ |
All database tables must include the following audit fields:
| Field Name | Description | Data Type | Nullable | Default | Constraints |
|---|---|---|---|---|---|
| creator | Creator | varchar(64) | Yes | '' | DEFAULT '' |
| create_time | Creation Time | datetime | No | CURRENT_TIMESTAMP | NOT NULL |
| updater | Updater | varchar(64) | Yes | '' | DEFAULT '' |
| update_time | Update Time | datetime | No | CURRENT_TIMESTAMP | NOT NULL, ON UPDATE CURRENT_TIMESTAMP |
| deleted | Deleted Flag | bit | No | b'0' | DEFAULT b'0', NOT NULL |
| tenant_id | Tenant ID | bigint | No | 0 | DEFAULT 0, NOT NULL |
CREATE TABLE `example_table` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'Primary Key ID',
`name` varchar(128) NOT NULL COMMENT 'Name',
-- Business fields...
-- Audit fields (must include)
`creator` varchar(64) DEFAULT '' COMMENT 'Creator',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Creation Time',
`updater` varchar(64) DEFAULT '' COMMENT 'Updater',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Update Time',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT 'Deleted Flag',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT 'Tenant ID',
PRIMARY KEY (`id`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Example Table';
@Data
public class ExampleEntity {
private Long id;
private String name;
// Business fields...
// Audit fields (must include)
private String creator;
private LocalDateTime createTime;
private String updater;
private LocalDateTime updateTime;
private Boolean deleted;
private Long tenantId;
}