generate

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jul 26, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package generate provides output generation from APIStyleSpec.

This package can generate various outputs from a style specification:

  • Markdown documentation (human-readable style guide)
  • Spectral YAML (linting ruleset for Spectral/vacuum)

Usage:

spec, _ := profile.Load("azure")
markdown, err := generate.Markdown(spec, nil)
spectral, err := generate.Spectral(spec, nil)

The generated outputs can be written to files or served via API.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Markdown

func Markdown(spec *types.APIStyleSpec, opts *MarkdownOptions) (string, error)

Markdown generates Markdown documentation from an APIStyleSpec.

func Spectral

func Spectral(spec *types.APIStyleSpec, opts *SpectralOptions) (string, error)

Spectral generates a Spectral-compatible YAML ruleset from an APIStyleSpec.

func WriteMkDocs added in v0.3.0

func WriteMkDocs(result *MkDocsResult, outputDir string) error

WriteMkDocs writes the MkDocs site to a directory.

Types

type DirectiveExample added in v0.5.0

type DirectiveExample struct {
	Good string `json:"good"`
	Bad  string `json:"bad,omitempty"`
}

DirectiveExample shows good and bad patterns.

type GenerationDirective added in v0.5.0

type GenerationDirective struct {
	RuleID    string             `json:"ruleId"`
	Title     string             `json:"title"`
	Priority  int                `json:"priority"`
	Prompt    string             `json:"prompt"`
	Template  string             `json:"template,omitempty"`
	Checklist []string           `json:"checklist,omitempty"`
	Examples  []DirectiveExample `json:"examples,omitempty"`
	Required  bool               `json:"required"`
}

GenerationDirective is a single generation instruction.

type GenerationMetadata added in v0.5.0

type GenerationMetadata struct {
	Author     string `json:"author,omitempty"`
	TotalRules int    `json:"totalRules"`
}

GenerationMetadata contains rubric metadata.

type GenerationPhase added in v0.5.0

type GenerationPhase struct {
	ID          string                `json:"id"`
	Name        string                `json:"name"`
	Description string                `json:"description,omitempty"`
	Order       int                   `json:"order"`
	Directives  []GenerationDirective `json:"directives"`
}

GenerationPhase groups directives by generation phase.

type GenerationRubric added in v0.5.0

type GenerationRubric struct {
	Name        string              `json:"name"`
	Description string              `json:"description,omitempty"`
	Version     string              `json:"version,omitempty"`
	Phases      []GenerationPhase   `json:"phases"`
	Metadata    *GenerationMetadata `json:"metadata,omitempty"`
}

GenerationRubric contains guidance for AI agents generating OpenAPI specs.

func GenerationRubricFromSpec added in v0.5.0

func GenerationRubricFromSpec(spec *types.APIStyleSpec) *GenerationRubric

GenerationRubricFromSpec builds a generation rubric from an APIStyleSpec.

func (*GenerationRubric) ToJSON added in v0.5.0

func (r *GenerationRubric) ToJSON() ([]byte, error)

ToJSON serializes the generation rubric to JSON.

type MarkdownOptions

type MarkdownOptions struct {
	// IncludeTOC adds a table of contents.
	IncludeTOC bool

	// IncludeExamples includes good/bad examples.
	IncludeExamples bool

	// IncludeRationale includes rule rationales.
	IncludeRationale bool

	// IncludeReferences includes external references.
	IncludeReferences bool

	// IncludeConformance includes conformance level details.
	IncludeConformance bool

	// IncludeMetadata includes spec metadata.
	IncludeMetadata bool

	// IncludeIntroduction includes the introduction section.
	IncludeIntroduction bool

	// IncludePrinciples includes design principles.
	IncludePrinciples bool

	// IncludePatterns includes API design patterns.
	IncludePatterns bool

	// IncludeGlossary includes the glossary.
	IncludeGlossary bool

	// IncludeDescription includes rule descriptions.
	IncludeDescription bool

	// SeverityEmojis uses emojis for severity indicators.
	SeverityEmojis bool
}

MarkdownOptions configures Markdown generation.

func DefaultMarkdownOptions

func DefaultMarkdownOptions() *MarkdownOptions

DefaultMarkdownOptions returns options with all features enabled.

type MkDocsOptions added in v0.3.0

type MkDocsOptions struct {
	// SiteName is the MkDocs site name.
	SiteName string

	// SiteURL is the base URL for the site.
	SiteURL string

	// RepoURL is the source repository URL.
	RepoURL string

	// Theme is the MkDocs theme (default: material).
	Theme string

	// IncludeSearch enables search functionality.
	IncludeSearch bool

	// SplitCategories creates separate pages per category.
	SplitCategories bool

	// SplitPatterns creates separate pages per pattern.
	SplitPatterns bool

	// MarkdownOptions for generating individual pages.
	MarkdownOptions *MarkdownOptions
}

MkDocsOptions configures MkDocs site generation.

func DefaultMkDocsOptions added in v0.3.0

func DefaultMkDocsOptions() *MkDocsOptions

DefaultMkDocsOptions returns default MkDocs configuration.

type MkDocsResult added in v0.3.0

type MkDocsResult struct {
	// Config is the mkdocs.yml content.
	Config string

	// Pages maps file paths (relative to docs/) to content.
	Pages map[string]string
}

MkDocsResult contains the generated MkDocs site files.

func MkDocs added in v0.3.0

func MkDocs(spec *types.APIStyleSpec, opts *MkDocsOptions) (*MkDocsResult, error)

MkDocs generates a complete MkDocs site structure from an APIStyleSpec.

type SpectralOptions

type SpectralOptions struct {
	// IncludeDisabled includes disabled rules (commented out).
	IncludeDisabled bool

	// IncludeDescriptions adds rule descriptions as comments.
	IncludeDescriptions bool

	// SkipNonEnforceable skips rules without enforcement config.
	SkipNonEnforceable bool
}

SpectralOptions configures Spectral ruleset generation.

func DefaultSpectralOptions

func DefaultSpectralOptions() *SpectralOptions

DefaultSpectralOptions returns options with sensible defaults.

Directories

Path Synopsis
Package report provides HTML report generation for API style evaluation results.
Package report provides HTML report generation for API style evaluation results.

Jump to

Keyboard shortcuts

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