create_issue
Create tasks, projects, or work items with hierarchical organization and dependencies in Task Trellis. Supports project-epic-feature-task structures, prerequisites for ordering, and customizable status and priority levels.
Instructions
Creates a new issue in the task trellis system
Use this tool to create new issues such as tasks, projects, or other work items within the task management hierarchy. Issues can have parent-child relationships and dependencies through prerequisites.
Available issue types and hierarchy requirements:
'project': Top-level containers, cannot have a parent
'epic': Can have no parent or a project as a parent
'feature': Can have no parent or an epic as a parent
'task': Can have no parent or a feature as a parent
Supported hierarchy structures:
Full hierarchy: project → epic → feature → task
Simplified: epic → feature → task
Simplified: feature → task
Standalone: epic
Standalone: task
Available status values:
'draft': Initial state for new issues
'open': Ready to begin work (default)
'open': Ready to begin work
'in-progress': Currently being worked on
'done': Completed successfully
'wont-do': Cancelled or decided against
Available priority values:
'high': Critical or urgent work
'medium': Standard priority (default)
'low': Nice-to-have or future work
Key aspects:
Issues support hierarchical organization via parent relationships
Prerequisites define execution order dependencies between issues
Parent-child relationships must follow the hierarchy rules above
The system validates parent types during creation
Best practices:
Use descriptive titles that clearly indicate the work to be done
Follow the hierarchy constraints for proper organization
Set appropriate status based on current work state
Define prerequisites to ensure proper task ordering
Include detailed descriptions to provide context for the work
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Type of issue to create | |
| title | Yes | Title of the issue | |
| parent | No | Parent issue ID (optional) | |
| priority | No | Priority level (defaults to 'medium') | medium |
| status | No | Status of the issue (defaults to 'open') | open |
| prerequisites | No | Array of prerequisite issue IDs (defaults to empty array) | |
| description | No | Description of the issue |
Implementation Reference
- src/tools/createObjectTool.ts:96-130 (handler)The handler function that executes the core logic of the 'create_issue' tool. It destructures the input arguments, applies defaults, type casts, and calls the TaskTrellisService.createObject method to create the new issue/object.export async function handleCreateObject( service: TaskTrellisService, repository: Repository, args: unknown, ) { const { type, title, parent, priority = "medium", status = "open", prerequisites = [], description = "", } = args as { type: string; title: string; parent?: string; priority?: string; status?: string; prerequisites?: string[]; description?: string; }; // Delegate to service layer return service.createObject( repository, type as TrellisObjectType, title, parent, priority as TrellisObjectPriority, status as TrellisObjectStatus, prerequisites, description, ); }
- src/tools/createObjectTool.ts:53-93 (schema)The input schema definition for the 'create_issue' tool, defining the expected parameters, types, descriptions, defaults, and required fields.inputSchema: { type: "object", properties: { type: { type: "string", description: "Type of issue to create", }, title: { type: "string", description: "Title of the issue", }, parent: { type: "string", description: "Parent issue ID (optional)", }, priority: { type: "string", description: "Priority level (defaults to 'medium')", default: "medium", }, status: { type: "string", description: "Status of the issue (defaults to 'open')", default: "open", }, prerequisites: { type: "array", items: { type: "string", }, description: "Array of prerequisite issue IDs (defaults to empty array)", default: [], }, description: { type: "string", description: "Description of the issue", }, }, required: ["type", "title"], },
- src/server.ts:177-188 (registration)Registration of the 'create_issue' tool (as createObjectTool) in the MCP server's listTools handler, where the tool descriptor is included in the array returned to clients.const tools: unknown[] = [ createObjectTool, updateObjectTool, getObjectTool, deleteObjectTool, listObjectsTool, appendObjectLogTool, appendModifiedFilesTool, claimTaskTool, getNextAvailableIssueTool, completeTaskTool, ];
- src/server.ts:256-257 (registration)Dispatch registration in the MCP server's CallToolRequestSchema handler switch statement, routing 'create_issue' calls to the handleCreateObject function.case "create_issue": return handleCreateObject(_getService(), repository, args);
- src/server.ts:23-23 (registration)Import of the createObjectTool descriptor and its handler from src/tools/createObjectTool.ts for use in server registration.createObjectTool,
- src/server.ts:32-32 (registration)Import of the handleCreateObject handler function.handleDeleteObject,