Files
stack/packages/skills/gantt/SKILL.md
2026-01-29 21:18:14 -06:00

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 pagination
  • GET /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

Authentication

Requests require authentication headers:

  • X-Workspace-Id: Workspace UUID (from MOSAIC_WORKSPACE_ID env var)
  • Authorization: Bearer token (from MOSAIC_API_TOKEN env var)

Usage Patterns

Query Project Timeline

When the user asks to "show project X timeline" or "what's the status of project Y":

  1. List projects to find the matching project (by name or ID)
  2. Get full project details including tasks
  3. 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":

  1. Search tasks to find the target task
  2. Check metadata.dependencies field (array of task IDs)
  3. Fetch blocking tasks and present the dependency chain

Get Project Status Overview

When asked for "project status" or "project overview":

  1. Get project with task count
  2. Calculate status distribution (completed/in-progress/not-started)
  3. Identify tasks approaching or past due dates
  4. Present summary statistics

Identify Critical Path

When asked to "find critical path" or "identify blockers":

  1. Get all project tasks with dependencies
  2. Build dependency graph from metadata.dependencies
  3. Calculate longest path through dependencies
  4. 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

  1. Environment Setup: Ensure .env has required variables:

    • MOSAIC_API_URL - API base URL
    • MOSAIC_WORKSPACE_ID - Workspace UUID
    • MOSAIC_API_TOKEN - Authentication token
  2. Error Handling: API returns 401 for auth errors, 404 for not found

  3. Pagination: Projects and tasks are paginated (default 50 items/page)

  4. Dependencies: Task dependencies are stored in metadata.dependencies as array of task IDs

  5. Date Handling: Start dates may be in metadata.startDate or fall back to createdAt