@boundless-oss/atlas
Version:
Atlas - MCP Server for comprehensive startup project management
396 lines • 10.6 kB
TypeScript
export interface Sprint {
id: string;
name: string;
goal: string;
status: 'active' | 'completed' | 'cancelled';
startDate: Date;
endDate: Date;
duration: number;
team: string[];
storyIds: string[];
epicIds?: string[];
capacity: number;
velocity: number;
burndownData: BurndownDataPoint[];
milestoneId?: string;
releaseId?: string;
}
import { AcceptanceCriterion, TaskDependency, TimeTracking, Attachment, Comment, CustomField, Subtask } from '../shared/task-types.js';
export interface Story {
id: string;
title: string;
description: string;
status: 'backlog' | 'todo' | 'in_progress' | 'review' | 'testing' | 'done' | 'blocked' | 'cancelled';
priority: 'low' | 'medium' | 'high' | 'critical';
storyPoints: number;
acceptanceCriteria: AcceptanceCriterion[];
assignee?: string;
epic?: string;
sprintId?: string;
createdAt: Date;
updatedAt: Date;
hoursSpent: number;
tags: string[];
dependencies: TaskDependency[];
timeTracking: TimeTracking;
attachments: Attachment[];
comments: Comment[];
customFields: CustomField[];
subtasks: Subtask[];
watchers: string[];
dueDate?: Date;
startDate?: Date;
completedAt?: Date;
blockedReason?: string;
groomedWithUserFeedback?: boolean;
acceptanceCriteriaLegacy?: string[];
relatedIssueIds?: string[];
requirementId?: string;
featureId?: string;
bugIds?: string[];
designDocumentUrl?: string;
implementationDocumentUrl?: string;
documentationStatus?: 'pending' | 'in-progress' | 'approved' | 'outdated';
documentationLastReviewed?: Date;
documentationReviewers?: string[];
}
export interface Epic {
id: string;
title: string;
description: string;
status: 'planned' | 'active' | 'completed' | 'cancelled';
priority: 'low' | 'medium' | 'high' | 'critical';
goals: string[];
owner?: string;
createdAt: Date;
updatedAt: Date;
storyIds: string[];
stories?: string[];
progress: number;
metadata?: {
estimatedEffort?: string;
hasDependencies?: boolean;
dependencyDetails?: string;
risks?: string;
targetUsers?: string;
businessValue?: string;
createdVia?: string;
};
roadmapItemId?: string;
requirementIds?: string[];
featureIds?: string[];
}
export interface SprintPlanningSession {
id: string;
sprintId: string;
date: Date;
attendees: string[];
capacity: number;
commitments: string[];
notes: string;
outcome: 'ready' | 'needs_work' | 'blocked';
}
export interface SprintRetrospective {
id: string;
sprintId: string;
date: Date;
attendees: string[];
whatWentWell: string[];
whatCanImprove: string[];
actionItems: string[];
sprintRating?: number;
}
export interface StandupReport {
id: string;
sprintId: string;
attendee: string;
date: Date;
yesterday: string[];
today: string[];
blockers: string[];
}
export interface VelocityReport {
teamName: string;
sprintsAnalyzed: number;
periodStart: Date;
periodEnd: Date;
averageVelocity: number;
highestVelocity: number;
lowestVelocity: number;
trend: 'improving' | 'declining' | 'stable';
sprintData: SprintVelocityData[];
insights: string[];
recommendations: string[];
}
export interface SprintVelocityData {
sprintName: string;
velocity: number;
completionRate: number;
startDate: Date;
endDate: Date;
}
export interface BurndownChart {
sprintId: string;
totalStoryPoints: number;
completedPoints: number;
sprintDays: number;
dailyData: BurndownDataPoint[];
onTrack: boolean;
daysRemaining: number;
trend?: string;
}
export interface BurndownDataPoint {
day: number;
idealPoints: number;
actualPoints: number;
remainingPoints: number;
completedPoints: number;
}
export interface SprintStatus {
sprint: Sprint;
stories: Story[];
epics: Epic[];
totalStories: number;
completedStories: number;
inProgressStories: number;
remainingStories: number;
totalStoryPoints: number;
completedStoryPoints: number;
remainingStoryPoints: number;
sprintHealth: string;
blockers: string[];
currentVelocity: number;
metrics: {
velocity: number;
capacity: number;
utilization: number;
burndownData: BurndownChart;
health: 'excellent' | 'good' | 'at-risk' | 'critical';
daysElapsed: number;
daysRemaining: number;
sprintDuration: number;
};
team: {
members: string[];
availability: number;
blockers: string[];
};
}
export interface BacklogFilter {
epic?: string;
priority?: string;
assignee?: string;
status?: string;
maxStoryPoints?: number;
}
export interface CreateSprintOptions {
name: string;
goal: string;
duration: number;
startDate?: Date;
team?: string[];
initialStoryIds?: string[];
}
export interface CreateStoryOptions {
title: string;
description: string;
storyPoints: number;
priority: 'low' | 'medium' | 'high' | 'critical';
acceptanceCriteria: string[] | AcceptanceCriterion[];
epic?: string;
assignee?: string;
sprintId?: string;
tags?: string[];
dependencies?: TaskDependency[];
timeEstimate?: number;
watchers?: string[];
groomedWithUserFeedback?: boolean;
designDocumentUrl?: string;
implementationDocumentUrl?: string;
documentationStatus?: 'pending' | 'in-progress' | 'approved' | 'outdated';
}
export interface CreateEpicOptions {
title: string;
description: string;
goals: string[];
priority: 'low' | 'medium' | 'high' | 'critical';
owner?: string;
}
export interface SprintPlanningOptions {
sprintId: string;
attendees: string[];
capacity?: number;
commitments: string[];
}
export interface StandupOptions {
sprintId: string;
attendee: string;
yesterday: string[];
today: string[];
blockers: string[];
}
export interface RetrospectiveOptions {
sprintId: string;
attendees: string[];
whatWentWell: string[];
whatCanImprove: string[];
actionItems: string[];
}
export interface StoryUpdateOptions {
status?: 'backlog' | 'todo' | 'in_progress' | 'review' | 'testing' | 'done' | 'blocked' | 'cancelled';
hoursSpent?: number;
notes?: string;
title?: string;
description?: string;
priority?: 'low' | 'medium' | 'high' | 'critical';
storyPoints?: number;
assignee?: string;
tags?: string[];
acceptanceCriteria?: string[] | AcceptanceCriterion[];
dependencies?: TaskDependency[];
timeTracking?: TimeTracking;
groomedWithUserFeedback?: boolean;
epic?: string;
designDocumentUrl?: string;
implementationDocumentUrl?: string;
documentationStatus?: 'pending' | 'in-progress' | 'approved' | 'outdated';
documentationLastReviewed?: Date;
documentationReviewers?: string[];
}
export interface VelocityOptions {
teamName?: string;
lastNSprints: number;
}
export interface EpicUpdateOptions {
title?: string;
description?: string;
status?: 'planned' | 'active' | 'completed' | 'cancelled';
priority?: 'low' | 'medium' | 'high' | 'critical';
goals?: string[];
owner?: string;
metadata?: {
estimatedEffort?: string;
hasDependencies?: boolean;
dependencyDetails?: string;
risks?: string;
targetUsers?: string;
businessValue?: string;
};
}
export interface SprintUpdateOptions {
name?: string;
goal?: string;
status?: 'active' | 'completed' | 'cancelled';
endDate?: Date;
team?: string[];
capacity?: number;
}
export interface TeamMember {
name: string;
role: string;
capacity: number;
skills: string[];
availability: number;
}
export interface SprintCapacity {
totalHours: number;
totalStoryPoints: number;
teamMembers: TeamMemberCapacity[];
workingDays: number;
}
export interface TeamMemberCapacity {
name: string;
allocatedHours: number;
allocatedStoryPoints: number;
assignments: string[];
}
export interface AgileMetrics {
velocity: VelocityMetrics;
quality: QualityMetrics;
predictability: PredictabilityMetrics;
team: TeamMetrics;
}
export interface VelocityMetrics {
current: number;
average: number;
trend: 'up' | 'down' | 'stable';
consistency: number;
}
export interface QualityMetrics {
defectRate: number;
reworkRate: number;
testCoverage?: number;
codeReviewCoverage?: number;
}
export interface PredictabilityMetrics {
commitmentAccuracy: number;
scopeCreep: number;
deliveryConsistency: number;
}
export interface TeamMetrics {
memberSatisfaction?: number;
collaborationScore?: number;
knowledgeSharing?: number;
impedimentResolution: number;
}
export interface EstimationSession {
id: string;
storyIds: string[];
participants: string[];
method: 'planning_poker' | 'story_points' | 't_shirt_sizes';
results: EstimationResult[];
date: Date;
}
export interface EstimationResult {
storyId: string;
estimates: Record<string, number>;
finalEstimate: number;
confidence: number;
notes?: string;
}
export interface DefinitionOfDone {
id: string;
title: string;
criteria: DoDCriteria[];
applicableFor: string[];
createdBy: string;
createdAt: Date;
}
export interface DoDCriteria {
description: string;
required: boolean;
category: 'development' | 'testing' | 'documentation' | 'deployment';
verificationMethod?: string;
}
export interface SprintGoal {
id: string;
sprintId: string;
title: string;
description: string;
success_criteria: string[];
priority: 'primary' | 'secondary';
progress: number;
status: 'not_started' | 'in_progress' | 'achieved' | 'at_risk';
}
export interface Release {
id: string;
name: string;
version: string;
targetDate: Date;
sprintIds: string[];
epicIds: string[];
goals: string[];
status: 'in_progress' | 'released' | 'cancelled';
releaseNotes?: string;
}
export interface ReleaseStatus {
release: Release;
completedEpics: number;
totalEpics: number;
completedStoryPoints: number;
totalStoryPoints: number;
onTrack: boolean;
risks: string[];
mitigations: string[];
}
//# sourceMappingURL=types.d.ts.map