一键导入
axon-ivy-java-data
Rules and patterns for Java model classes, enums, DTOs, and persistence (Ivy.repo() or JPA/SQL) in Axon Ivy projects.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Rules and patterns for Java model classes, enums, DTOs, and persistence (Ivy.repo() or JPA/SQL) in Axon Ivy projects.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Rules and best practices for Axon Ivy HTML Dialog implementations including PrimeFaces, PrimeFlex, CSS, JS, and Ivy components.
Rules and patterns for the `com.axonivy.utils.persistence` library — the Axon Ivy community helper around JPA. Covers `AuditableIdEntity`, `AuditableIdDAO`, `CriteriaQueryContext`, and `UpdateQueryContext`. Use whenever Java code in `src/` reads or writes data through a DAO that extends `AuditableIdDAO` or an entity that extends `AuditableIdEntity`.
Rules and patterns for creating, editing, reviewing, and fixing Axon Ivy workflow processes (.p.json files). Use this when working with any .p.json file — including checking existing processes for errors, reviewing script code, or fixing IvyScript issues.
Verification checklist for Axon Ivy process files (.p.json). Use this whenever a .p.json file is created, modified, or reviewed — either after axon-ivy-process skill, or when a user asks to check, verify, or fix a process file for errors.
Master router skill for all requirement clarification, create story, development, review, and testing tasks. Detects user intent and orchestrates the correct path using specialized skills and parallel subagents.
Rules and patterns for sending email from an Axon Ivy project. Covers sender / recipient resolution, subject and body templating, attachments, and the recommended builder pattern for one mail type per class. Use whenever Java code or a process step composes or sends an email.
| name | axon-ivy-java-data |
| description | Rules and patterns for Java model classes, enums, DTOs, and persistence (Ivy.repo() or JPA/SQL) in Axon Ivy projects. |
src/Employee, LeaveRequest)@Description annotations for AI/LLM extraction modelsaxon-ivy-repository - For persistence with Ivy.repo()| Type | Location |
|---|---|
| Model Class | src/package/model/ |
| Enum | src/package/model/ |
| DTO | src/package/dto/ |
Employee, LeaveRequest, ProjectStatus)employeeName, startDate)EntityStatus.IN_PROGRESS)hr.onboarding.model)All model classes used in process data (referenced from .d.json fields or passed through SubProcessCall/DialogCall) must implement Serializable. Without it, the Ivy engine cannot serialize process state.
import java.io.Serializable;
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
// ...
}
java.util.List, java.util.Map, java.util.Set — they are pre-imported in IvyScript (but you DO need them in regular Java source files under src/)java.util.UUID when generating IDsjava.time.LocalDate / java.time.LocalDateTime for date fields — do not use java.util.Dateid in the constructor (typically UUID.randomUUID().toString())EntityStatus.NEW)List fields to new ArrayList<>() to avoid null checks downstreampublic class Project implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private List<String> tags;
private ProjectStatus status;
public Project() {
this.id = UUID.randomUUID().toString();
this.tags = new ArrayList<>();
this.status = ProjectStatus.NEW;
}
}
File: src/package/model/Entity.java
package package.model;
import java.util.UUID;
public class Entity {
private String id;
private String name;
private EntityStatus status;
public Entity() {
this.id = UUID.randomUUID().toString();
this.status = EntityStatus.NEW;
}
// Getters and Setters
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public EntityStatus getStatus() { return status; }
public void setStatus(EntityStatus status) { this.status = status; }
@Override
public String toString() {
return "Entity [id=" + id + ", name=" + name + "]";
}
}
File: src/package/model/EntityStatus.java
package package.model;
public enum EntityStatus {
NEW("New"),
IN_PROGRESS("In Progress"),
COMPLETED("Completed"),
CANCELLED("Cancelled");
private final String description;
EntityStatus(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
public boolean isCompleted() {
return this == COMPLETED;
}
public boolean isCancelled() {
return this == CANCELLED;
}
public boolean isActive() {
return this != COMPLETED && this != CANCELLED;
}
}
public class Project {
private String projectId;
private String name;
private String description;
public Project() {
this.projectId = UUID.randomUUID().toString();
}
// Fluent builder methods
public Project name(String name) {
this.name = name;
return this;
}
public Project description(String description) {
this.description = description;
return this;
}
// Standard getters/setters...
}
ONLY use if this project depend on the smart-workflow project or LangChain4j by checking the pom.xml.
For models used with AI/LLM processing:
package package.model;
import dev.langchain4j.model.output.structured.Description;
@Description("Brief description for AI context")
public class Candidate {
@Description("Unique identifier")
private String id;
@Description("Full name of the candidate")
private String name;
@Description("List of technical skills")
private List<String> skills;
}