API Reference¶
Go library API documentation for Structured Goals.
Packages¶
| Package | Description |
|---|---|
github.com/grokify/structured-goals/v2mom |
V2MOM framework |
github.com/grokify/structured-goals/okr |
OKR framework |
github.com/grokify/structured-goals/dmaic |
DMAIC framework |
github.com/grokify/structured-goals/schema |
JSON Schema embedding |
DMAIC Package¶
Types¶
DMAICDocument¶
type DMAICDocument struct {
Metadata Metadata `json:"metadata"`
Categories []Category `json:"categories"`
Initiatives []Initiative `json:"initiatives,omitempty"`
}
Metadata¶
type Metadata struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Owner string `json:"owner"`
Team string `json:"team,omitempty"`
Period string `json:"period,omitempty"`
Version string `json:"version,omitempty"`
Status string `json:"status,omitempty"`
ReviewCadence string `json:"reviewCadence,omitempty"`
CreatedAt time.Time `json:"createdAt,omitzero"`
UpdatedAt time.Time `json:"updatedAt,omitzero"`
}
Category¶
type Category struct {
ID string `json:"id,omitempty"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Order int `json:"order,omitempty"`
Owner string `json:"owner,omitempty"`
Metrics []Metric `json:"metrics"`
}
Metric¶
type Metric struct {
ID string `json:"id,omitempty"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Order int `json:"order,omitempty"`
Baseline float64 `json:"baseline"`
Current float64 `json:"current"`
Target float64 `json:"target"`
Unit string `json:"unit,omitempty"`
Phase string `json:"phase"`
TrendDirection string `json:"trendDirection,omitempty"`
ControlLimits *ControlLimits `json:"controlLimits,omitempty"`
Thresholds *Thresholds `json:"thresholds,omitempty"`
Frequency string `json:"frequency,omitempty"`
DataSource string `json:"dataSource,omitempty"`
Owner string `json:"owner,omitempty"`
Status string `json:"status,omitempty"`
ProcessCapability *ProcessCapability `json:"processCapability,omitempty"`
DataPoints []DataPoint `json:"dataPoints,omitempty"`
RootCauses []RootCause `json:"rootCauses,omitempty"`
InitiativeIDs []string `json:"initiativeIds,omitempty"`
ExternalLinks map[string]string `json:"externalLinks,omitempty"`
}
Constants¶
// DMAIC Phases
const (
PhaseDefine = "Define"
PhaseMeasure = "Measure"
PhaseAnalyze = "Analyze"
PhaseImprove = "Improve"
PhaseControl = "Control"
)
// Trend Directions
const (
TrendHigherBetter = "higher_better"
TrendLowerBetter = "lower_better"
TrendTargetValue = "target_value"
)
// Status Values
const (
StatusGreen = "Green"
StatusYellow = "Yellow"
StatusRed = "Red"
)
Functions¶
Constructor¶
Creates a new DMAIC document with the given metadata.
File Operations¶
func ReadFile(filename string) (*DMAICDocument, error)
func Parse(data []byte) (*DMAICDocument, error)
func (doc *DMAICDocument) JSON() ([]byte, error)
func (doc *DMAICDocument) WriteFile(filename string) error
Analysis Methods¶
func (doc *DMAICDocument) AllMetrics() []Metric
func (doc *DMAICDocument) MetricsByPhase() map[string][]Metric
func (doc *DMAICDocument) MetricsByStatus() map[string][]Metric
func (doc *DMAICDocument) CalculateOverallHealth() float64
func (cat *Category) CalculateCategoryHealth() float64
func (m *Metric) IsInControl() bool
func (m *Metric) CalculateStatus() string
Validation¶
func (doc *DMAICDocument) Validate(opts ValidationOptions) []ValidationError
func DefaultValidationOptions() ValidationOptions
func StrictValidationOptions() ValidationOptions
func SixSigmaValidationOptions() ValidationOptions
OKR Package¶
Types¶
type OKRDocument struct {
Metadata Metadata `json:"metadata"`
Objectives []Objective `json:"objectives"`
}
type Objective struct {
ID string `json:"id,omitempty"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Order int `json:"order,omitempty"`
Owner string `json:"owner,omitempty"`
KeyResults []KeyResult `json:"keyResults"`
}
type KeyResult struct {
ID string `json:"id,omitempty"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Baseline float64 `json:"baseline"`
Current float64 `json:"current"`
Target float64 `json:"target"`
Unit string `json:"unit,omitempty"`
Order int `json:"order,omitempty"`
Owner string `json:"owner,omitempty"`
Confidence float64 `json:"confidence,omitempty"`
}
Functions¶
func New(id, name, owner string) *OKRDocument
func ReadFile(filename string) (*OKRDocument, error)
func (doc *OKRDocument) CalculateProgress() float64
func (obj *Objective) CalculateProgress() float64
func (kr *KeyResult) CalculateProgress() float64
func (doc *OKRDocument) Validate(opts ValidationOptions) []ValidationError
Schema Package¶
Embedded Schemas¶
func V2MOMJSON() []byte
func V2MOMJSONString() string
func OKRJSON() []byte
func OKRJSONString() string
func DMAICJSON() []byte
func DMAICJSONString() string
Schema Generation¶
func GenerateV2MOMSchema() (*jsonschema.Schema, error)
func GenerateOKRSchema() (*jsonschema.Schema, error)
func GenerateDMAICSchema() (*jsonschema.Schema, error)
func WriteV2MOMSchema(filename string) error
func WriteOKRSchema(filename string) error
func WriteDMAICSchema(filename string) error
func GenerateAll(outputDir string) error
Full Documentation¶
For complete API documentation, see pkg.go.dev.