synthesis

package
v0.17.0 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2026 License: MIT Imports: 0 Imported by: 0

Documentation

Overview

Package synthesis defines rules for generating specs from other specs.

Synthesis rules define the dependency graph between spec types, allowing automated generation of downstream documents from upstream sources.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DAG

type DAG struct {
	// Nodes are the spec type IDs in topological order.
	Nodes []string `json:"nodes" jsonschema:"required,description=Spec types in topological order"`

	// Edges are source->target dependencies.
	Edges []Edge `json:"edges" jsonschema:"required,description=Dependency edges"`
}

DAG represents the synthesis dependency graph.

func BuildDAG

func BuildDAG(rules map[string]*Rule) *DAG

BuildDAG constructs a synthesis DAG from rules.

type Edge

type Edge struct {
	// Source is the upstream spec type ID.
	Source string `json:"source" jsonschema:"required,description=Upstream spec type"`

	// Target is the downstream spec type ID (synthesized from source).
	Target string `json:"target" jsonschema:"required,description=Downstream spec type"`
}

Edge represents a synthesis dependency.

type Rule

type Rule struct {
	// Sources are the spec type IDs required to synthesize this spec.
	Sources []string `json:"sources" jsonschema:"required,description=Source spec type IDs"`

	// Guidance is the prompt context for LLM synthesis.
	Guidance string `json:"guidance,omitempty" jsonschema:"description=LLM prompt guidance for synthesis"`

	// PromptContext is additional context for the synthesis prompt.
	PromptContext string `json:"prompt_context,omitempty" jsonschema:"description=Additional synthesis prompt context"`

	// Required indicates all sources must be present (vs. best-effort).
	Required bool `json:"required,omitempty" jsonschema:"description=Whether all sources are required"`

	// Priority determines synthesis order when multiple rules exist.
	Priority int `json:"priority,omitempty" jsonschema:"description=Synthesis priority (higher = earlier)"`
}

Rule defines how a spec can be synthesized from source specs.

Jump to

Keyboard shortcuts

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