export

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package export provides converters for exporting PRISM data to other formats.

Package export provides converters for exporting PRISM data to other formats.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CalculateCriterionProgress

func CalculateCriterionProgress(mc prism.MetricCriterion, metric *prism.Metric) float64

CalculateCriterionProgress calculates progress toward a metric criterion.

func ConvertToRoadmap

func ConvertToRoadmap(doc *prism.PRISMDocument) *roadmap.Roadmap

ConvertToRoadmap converts a PRISM document to a structured-plan roadmap.

func ConvertToStructuredOKR

func ConvertToStructuredOKR(doc *prism.PRISMDocument) *okr.OKRDocument

ConvertToStructuredOKR converts a PRISM document to structured-plan OKR format. Each maturity level to achieve becomes an Objective. SLOs and metric criteria become Key Results.

Types

type KeyResult

type KeyResult struct {
	ID                string        `json:"id"`
	Title             string        `json:"title"`
	Description       string        `json:"description,omitempty"`
	Owner             string        `json:"owner,omitempty"`
	Metric            string        `json:"metric,omitempty"`
	Baseline          string        `json:"baseline,omitempty"`
	Target            string        `json:"target"`
	Current           string        `json:"current,omitempty"`
	Unit              string        `json:"unit,omitempty"`
	MeasurementMethod string        `json:"measurementMethod,omitempty"`
	Score             float64       `json:"score,omitempty"`
	Confidence        string        `json:"confidence,omitempty"`
	Status            string        `json:"status,omitempty"`
	DueDate           string        `json:"dueDate,omitempty"`
	PhaseTargets      []PhaseTarget `json:"phaseTargets,omitempty"`
	Tags              []string      `json:"tags,omitempty"`
}

KeyResult represents an OKR key result.

func MetricCriteriaToKeyResult

func MetricCriteriaToKeyResult(mc prism.MetricCriterion, level int, doc *prism.PRISMDocument, phases []prism.Phase, goalID string, index int) KeyResult

MetricCriteriaToKeyResult converts a metric criterion to a key result.

func SLOToKeyResult

func SLOToKeyResult(slo prism.SLORequirement, level int, doc *prism.PRISMDocument, phases []prism.Phase, goalID string, index int) KeyResult

SLOToKeyResult converts an SLO requirement to a key result.

type OKRAlignment

type OKRAlignment struct {
	ParentOKRID string   `json:"parentOkrId,omitempty"`
	CompanyOKRs []string `json:"companyOkrs,omitempty"`
}

OKRAlignment links to parent OKRs.

type OKRDocument

type OKRDocument struct {
	Schema     string        `json:"$schema,omitempty"`
	Metadata   OKRMetadata   `json:"metadata"`
	Theme      string        `json:"theme,omitempty"`
	Objectives []Objective   `json:"objectives"`
	Alignment  *OKRAlignment `json:"alignment,omitempty"`
}

OKRDocument represents a structured-plan OKR document.

func ConvertToOKR

func ConvertToOKR(doc *prism.PRISMDocument) *OKRDocument

ConvertToOKR converts a PRISM document to an OKR document.

type OKRMetadata

type OKRMetadata struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	Owner       string `json:"owner,omitempty"`
	Team        string `json:"team,omitempty"`
	Period      string `json:"period,omitempty"`
	Status      string `json:"status,omitempty"`
	CreatedAt   string `json:"createdAt,omitempty"`
	UpdatedAt   string `json:"updatedAt,omitempty"`
	Source      string `json:"source,omitempty"`
}

OKRMetadata holds document metadata.

type Objective

type Objective struct {
	ID          string      `json:"id"`
	Title       string      `json:"title"`
	Description string      `json:"description,omitempty"`
	Rationale   string      `json:"rationale,omitempty"`
	Category    string      `json:"category,omitempty"`
	Owner       string      `json:"owner,omitempty"`
	Timeframe   string      `json:"timeframe,omitempty"`
	Status      string      `json:"status,omitempty"`
	KeyResults  []KeyResult `json:"keyResults"`
	Progress    float64     `json:"progress,omitempty"`
	Tags        []string    `json:"tags,omitempty"`
}

Objective represents an OKR objective.

func GoalToObjective

func GoalToObjective(goal prism.Goal, doc *prism.PRISMDocument) Objective

GoalToObjective converts a PRISM goal to an OKR objective.

type PhaseTarget

type PhaseTarget struct {
	PhaseID string `json:"phaseId"`
	Target  string `json:"target"`
	Status  string `json:"status,omitempty"`
	Actual  string `json:"actual,omitempty"`
	Notes   string `json:"notes,omitempty"`
}

PhaseTarget represents a per-phase target for a key result.

func GeneratePhaseTargets

func GeneratePhaseTargets(phases []prism.Phase, goalID string, targetLevel int) []PhaseTarget

GeneratePhaseTargets generates phase targets for a key result.

type RoadmapExport

type RoadmapExport struct {
	Roadmap *roadmap.Roadmap `json:"roadmap"`
	OKRs    *okr.OKRDocument `json:"okrs,omitempty"`
}

RoadmapExport contains both the roadmap and associated OKRs. This combined export captures the full PRISM model: - Roadmap: phases, deliverables, rollout tracking - OKRs: maturity-based objectives with SLO key results

func ConvertToRoadmapWithOKRs

func ConvertToRoadmapWithOKRs(doc *prism.PRISMDocument) *RoadmapExport

ConvertToRoadmapWithOKRs converts a PRISM document to both roadmap and OKRs. This provides the complete export with: - Phases → roadmap.Phase - Initiatives → roadmap.Deliverable with RolloutStatus - Goals/Maturity → OKR Objectives - SLOs → OKR Key Results

type V2MOMDocument

type V2MOMDocument struct {
	Schema    string          `json:"$schema,omitempty"`
	Metadata  V2MOMMetadata   `json:"metadata"`
	Vision    string          `json:"vision"`
	Values    []V2MOMValue    `json:"values,omitempty"`
	Methods   []V2MOMMethod   `json:"methods"`
	Obstacles []V2MOMObstacle `json:"obstacles,omitempty"`
	Measures  []V2MOMMeasure  `json:"measures,omitempty"`
}

V2MOMDocument represents a structured-plan V2MOM document.

func ConvertToV2MOM

func ConvertToV2MOM(doc *prism.PRISMDocument) *V2MOMDocument

ConvertToV2MOM converts a PRISM document to a V2MOM document.

type V2MOMMeasure

type V2MOMMeasure struct {
	ID          string  `json:"id"`
	Name        string  `json:"name"`
	Description string  `json:"description,omitempty"`
	Baseline    string  `json:"baseline,omitempty"`
	Target      string  `json:"target"`
	Current     string  `json:"current,omitempty"`
	Unit        string  `json:"unit,omitempty"`
	Progress    float64 `json:"progress,omitempty"`
	Timeline    string  `json:"timeline,omitempty"`
	Status      string  `json:"status,omitempty"`
}

V2MOMMeasure represents a V2MOM measure (like an OKR key result).

func CriterionToMeasure

func CriterionToMeasure(mc prism.MetricCriterion, level int, doc *prism.PRISMDocument, index int) V2MOMMeasure

CriterionToMeasure converts a metric criterion to a V2MOM measure.

func SLOToMeasure

func SLOToMeasure(slo prism.SLORequirement, level int, doc *prism.PRISMDocument, index int) V2MOMMeasure

SLOToMeasure converts an SLO requirement to a V2MOM measure.

type V2MOMMetadata

type V2MOMMetadata struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	Author      string `json:"author,omitempty"`
	Team        string `json:"team,omitempty"`
	FiscalYear  int    `json:"fiscalYear,omitempty"`
	Quarter     string `json:"quarter,omitempty"`
	Status      string `json:"status,omitempty"`
	CreatedAt   string `json:"createdAt,omitempty"`
	UpdatedAt   string `json:"updatedAt,omitempty"`
	Source      string `json:"source,omitempty"`
}

V2MOMMetadata holds V2MOM document metadata.

type V2MOMMethod

type V2MOMMethod struct {
	ID          string          `json:"id"`
	Name        string          `json:"name"`
	Description string          `json:"description,omitempty"`
	Priority    string          `json:"priority,omitempty"`
	Status      string          `json:"status,omitempty"`
	Owner       string          `json:"owner,omitempty"`
	StartDate   string          `json:"startDate,omitempty"`
	EndDate     string          `json:"endDate,omitempty"`
	Measures    []V2MOMMeasure  `json:"measures,omitempty"`
	Obstacles   []V2MOMObstacle `json:"obstacles,omitempty"`
	Projects    []string        `json:"projects,omitempty"`
}

V2MOMMethod represents a V2MOM method (like an OKR objective).

func GoalToMethod

func GoalToMethod(goal prism.Goal, doc *prism.PRISMDocument, priority int) V2MOMMethod

GoalToMethod converts a PRISM goal to a V2MOM method.

type V2MOMObstacle

type V2MOMObstacle struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	Impact      string `json:"impact,omitempty"`
	Mitigation  string `json:"mitigation,omitempty"`
	Status      string `json:"status,omitempty"`
}

V2MOMObstacle represents a V2MOM obstacle.

type V2MOMValue

type V2MOMValue struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	Priority    int    `json:"priority,omitempty"`
}

V2MOMValue represents a V2MOM value.

Jump to

Keyboard shortcuts

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