4.2 KiB
name, description, license
| name | description | license |
|---|---|---|
| mosaic-plugin-gantt | Query and analyze project timelines, task dependencies, and schedules from Mosaic Stack's Gantt/Project API | MIT |
This skill enables querying project timelines, task dependencies, critical path analysis, and project status from Mosaic Stack's API.
Overview
The Mosaic Stack provides project management capabilities with support for:
- Project timelines with start/end dates
- Task dependencies and scheduling
- Task status tracking (NOT_STARTED, IN_PROGRESS, PAUSED, COMPLETED, ARCHIVED)
- Priority levels (LOW, MEDIUM, HIGH, URGENT)
- Project status (PLANNING, ACTIVE, ON_HOLD, COMPLETED, ARCHIVED)
API Endpoints
Base URL: Configured via MOSAIC_API_URL environment variable (default: http://localhost:3000/api)
Projects
GET /api/projects- List all projects with paginationGET /api/projects/:id- Get project details with tasks
Tasks
GET /api/tasks- List all tasks with optional filters- Query params:
projectId,status,priority,assigneeId,page,limit
- Query params:
Authentication
Requests require authentication headers:
X-Workspace-Id: Workspace UUID (fromMOSAIC_WORKSPACE_IDenv var)Authorization: Bearer token (fromMOSAIC_API_TOKENenv var)
Usage Patterns
Query Project Timeline
When the user asks to "show project X timeline" or "what's the status of project Y":
- List projects to find the matching project (by name or ID)
- Get full project details including tasks
- Present timeline information with task dates and status
Check Task Dependencies
When asked "what blocks task X" or "what are the dependencies for task Y":
- Search tasks to find the target task
- Check
metadata.dependenciesfield (array of task IDs) - Fetch blocking tasks and present the dependency chain
Get Project Status Overview
When asked for "project status" or "project overview":
- Get project with task count
- Calculate status distribution (completed/in-progress/not-started)
- Identify tasks approaching or past due dates
- Present summary statistics
Identify Critical Path
When asked to "find critical path" or "identify blockers":
- Get all project tasks with dependencies
- Build dependency graph from
metadata.dependencies - Calculate longest path through dependencies
- Identify tasks with no slack time (critical tasks)
Data Models
Project
{
id: string;
name: string;
description?: string;
status: 'PLANNING' | 'ACTIVE' | 'ON_HOLD' | 'COMPLETED' | 'ARCHIVED';
startDate?: Date;
endDate?: Date;
color?: string;
tasks?: Task[];
_count: { tasks: number; events: number };
}
Task
{
id: string;
title: string;
description?: string;
status: 'NOT_STARTED' | 'IN_PROGRESS' | 'PAUSED' | 'COMPLETED' | 'ARCHIVED';
priority: 'LOW' | 'MEDIUM' | 'HIGH' | 'URGENT';
dueDate?: Date;
completedAt?: Date;
projectId?: string;
assigneeId?: string;
metadata: {
startDate?: Date;
dependencies?: string[]; // Array of task IDs
[key: string]: any;
};
}
Helper Scripts
Use gantt-api.sh for API queries:
# List all projects
./gantt-api.sh projects
# Get project by ID
./gantt-api.sh project <project-id>
# Get tasks for a project
./gantt-api.sh tasks <project-id>
# Find critical path
./gantt-api.sh critical-path <project-id>
# Get dependency chain for a task
./gantt-api.sh dependencies <task-id>
PDA-Friendly Language
When presenting information, use supportive, non-judgmental language:
- "Target passed" instead of "OVERDUE" or "LATE"
- "Approaching target" for near-deadline tasks
- "Paused" not "BLOCKED" or "STUCK"
- Focus on what's accomplished and what's next, not what's behind
Implementation Notes
-
Environment Setup: Ensure
.envhas required variables:MOSAIC_API_URL- API base URLMOSAIC_WORKSPACE_ID- Workspace UUIDMOSAIC_API_TOKEN- Authentication token
-
Error Handling: API returns 401 for auth errors, 404 for not found
-
Pagination: Projects and tasks are paginated (default 50 items/page)
-
Dependencies: Task dependencies are stored in
metadata.dependenciesas array of task IDs -
Date Handling: Start dates may be in
metadata.startDateor fall back tocreatedAt