roadmap

package
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package roadmap provides ROADMAP.md generation from project specifications.

This package analyzes project specs, dependencies, and priorities to generate a cohesive roadmap document that tracks milestones, phases, and deliverables.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Generator

type Generator struct {
	// contains filtered or unexported fields
}

Generator creates roadmaps from project data.

func NewGenerator

func NewGenerator(specsRoot string) *Generator

NewGenerator creates a new roadmap generator.

func (*Generator) Generate

func (g *Generator) Generate() (*Roadmap, error)

Generate creates a roadmap from project specs.

type Milestone

type Milestone struct {
	ID           string          `json:"id" yaml:"id"`
	Name         string          `json:"name" yaml:"name"`
	Description  string          `json:"description,omitempty" yaml:"description,omitempty"`
	DueDate      *time.Time      `json:"due_date,omitempty" yaml:"due_date,omitempty"`
	Status       MilestoneStatus `json:"status" yaml:"status"`
	Priority     Priority        `json:"priority" yaml:"priority"`
	Deliverables []string        `json:"deliverables,omitempty" yaml:"deliverables,omitempty"`
	Dependencies []string        `json:"dependencies,omitempty" yaml:"dependencies,omitempty"` // Other milestone IDs
	Projects     []string        `json:"projects,omitempty" yaml:"projects,omitempty"`
	RMI          string          `json:"rmi,omitempty" yaml:"rmi,omitempty"` // Roadmap Item ID
	Tags         []string        `json:"tags,omitempty" yaml:"tags,omitempty"`
}

Milestone represents a specific deliverable within a phase.

type MilestoneStatus

type MilestoneStatus string

MilestoneStatus indicates milestone completion state.

const (
	MilestoneStatusPending    MilestoneStatus = "pending"
	MilestoneStatusInProgress MilestoneStatus = "in_progress"
	MilestoneStatusCompleted  MilestoneStatus = "completed"
	MilestoneStatusBlocked    MilestoneStatus = "blocked"
	MilestoneStatusDeferred   MilestoneStatus = "deferred"
)

type Phase

type Phase struct {
	ID          string      `json:"id" yaml:"id"`
	Name        string      `json:"name" yaml:"name"`
	Description string      `json:"description,omitempty" yaml:"description,omitempty"`
	StartDate   *time.Time  `json:"start_date,omitempty" yaml:"start_date,omitempty"`
	EndDate     *time.Time  `json:"end_date,omitempty" yaml:"end_date,omitempty"`
	Status      PhaseStatus `json:"status" yaml:"status"`
	Milestones  []Milestone `json:"milestones,omitempty" yaml:"milestones,omitempty"`
	Projects    []string    `json:"projects,omitempty" yaml:"projects,omitempty"`
	Order       int         `json:"order" yaml:"order"`
}

Phase represents a roadmap phase with milestones.

type PhaseStatus

type PhaseStatus string

PhaseStatus indicates the current state of a phase.

const (
	PhaseStatusPlanned    PhaseStatus = "planned"
	PhaseStatusInProgress PhaseStatus = "in_progress"
	PhaseStatusCompleted  PhaseStatus = "completed"
	PhaseStatusBlocked    PhaseStatus = "blocked"
)

type Priority

type Priority string

Priority indicates milestone importance.

const (
	PriorityCritical Priority = "critical"
	PriorityHigh     Priority = "high"
	PriorityMedium   Priority = "medium"
	PriorityLow      Priority = "low"
)

type ProjectInfo

type ProjectInfo struct {
	Name        string   `yaml:"name"`
	Description string   `yaml:"description"`
	Status      string   `yaml:"status"`
	Priority    string   `yaml:"priority"`
	Phase       string   `yaml:"phase"`
	Tags        []string `yaml:"tags"`
	DueDate     string   `yaml:"due_date"`
}

ProjectInfo contains project metadata for roadmap generation.

type Roadmap

type Roadmap struct {
	Title       string            `json:"title" yaml:"title"`
	Description string            `json:"description,omitempty" yaml:"description,omitempty"`
	Version     string            `json:"version,omitempty" yaml:"version,omitempty"`
	UpdatedAt   time.Time         `json:"updated_at" yaml:"updated_at"`
	Phases      []Phase           `json:"phases" yaml:"phases"`
	Metadata    map[string]string `json:"metadata,omitempty" yaml:"metadata,omitempty"`
}

Roadmap represents the complete project roadmap.

func Load

func Load(path string) (*Roadmap, error)

Load reads a roadmap from YAML.

func (*Roadmap) AddMilestone

func (r *Roadmap) AddMilestone(phaseID string, milestone Milestone) error

AddMilestone adds a milestone to a phase.

func (*Roadmap) GetProgress

func (r *Roadmap) GetProgress() float64

GetProgress returns overall roadmap progress (0-100).

func (*Roadmap) RenderMarkdown

func (r *Roadmap) RenderMarkdown(w io.Writer) error

RenderMarkdown renders the roadmap as Markdown.

func (*Roadmap) Save

func (r *Roadmap) Save(specsRoot string) error

Save writes the roadmap to YAML and Markdown files.

func (*Roadmap) UpdateMilestoneStatus

func (r *Roadmap) UpdateMilestoneStatus(milestoneID string, status MilestoneStatus) error

UpdateMilestoneStatus updates the status of a milestone.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL