Files
stack/packages/skills/gantt/SKILL.md
Jason Woltje 12abdfe81d feat(#93): implement agent spawn via federation
Implements FED-010: Agent Spawn via Federation feature that enables
spawning and managing Claude agents on remote federated Mosaic Stack
instances via COMMAND message type.

Features:
- Federation agent command types (spawn, status, kill)
- FederationAgentService for handling agent operations
- Integration with orchestrator's agent spawner/lifecycle services
- API endpoints for spawning, querying status, and killing agents
- Full command routing through federation COMMAND infrastructure
- Comprehensive test coverage (12/12 tests passing)

Architecture:
- Hub → Spoke: Spawn agents on remote instances
- Command flow: FederationController → FederationAgentService →
  CommandService → Remote Orchestrator
- Response handling: Remote orchestrator returns agent status/results
- Security: Connection validation, signature verification

Files created:
- apps/api/src/federation/types/federation-agent.types.ts
- apps/api/src/federation/federation-agent.service.ts
- apps/api/src/federation/federation-agent.service.spec.ts

Files modified:
- apps/api/src/federation/command.service.ts (agent command routing)
- apps/api/src/federation/federation.controller.ts (agent endpoints)
- apps/api/src/federation/federation.module.ts (service registration)
- apps/orchestrator/src/api/agents/agents.controller.ts (status endpoint)
- apps/orchestrator/src/api/agents/agents.module.ts (lifecycle integration)

Testing:
- 12/12 tests passing for FederationAgentService
- All command service tests passing
- TypeScript compilation successful
- Linting passed

Refs #93

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-03 14:37:06 -06:00

3.9 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)

Projects

  • GET /projects - List all projects with pagination
  • GET /projects/:id - Get project details with tasks

Tasks

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

Trigger Phrases & Examples

Query project timeline:

  • "Show me the timeline for [project name]"
  • "What's the status of [project]?"
  • "Give me an overview of Project Alpha"

Check task dependencies:

  • "What blocks task [task name]?"
  • "What are the dependencies for [task]?"
  • "Show me what's blocking [task]"

Project status overview:

  • "Project status for [project]"
  • "How is [project] doing?"
  • "Summary of [project]"

Identify critical path:

  • "Find the critical path for [project]"
  • "What's the critical path?"
  • "Show me blockers for [project]"
  • "Which tasks can't be delayed in [project]?"

Find upcoming deadlines:

  • "What tasks are due soon in [project]?"
  • "Show me tasks approaching deadline"
  • "What's due this week?"

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 (e.g., http://localhost:3000, no /api suffix)
    • 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