Help us shape the future of Go! Take the 2026 Go Developer Survey

mark

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Sep 1, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var LLMCmd string

LLMCmd is set by the mark command before Plan runs the llm tier.

Functions

func FileTier

func FileTier(d model.Doc, force bool) map[string]model.Value

FileTier derives id, title, and type from the path and headings. It fills absent keys and leaves existing values alone unless force is set. Values come from the raw sources (path slug, H1 heading, parent dir), not from d.Title/d.Type, which already prefer the frontmatter value and so could never be overwritten under force.

func GitTier

func GitTier(d model.Doc, root string, force bool) map[string]model.Value

GitTier derives lastUpdated and owner from git history. lastUpdated always refreshes: it is git's to own and moves on every commit, so a stale value is never what you want. owner is filled only when absent, since a project may set it by hand. force overwrites either.

func LLMTier

func LLMTier(d model.Doc, s *schema.Schema, root string, force bool) map[string]model.Value

LLMTier builds a request for llm-derived fields the doc lacks and runs it. Its output is nondeterministic, so it never refreshes a field that is already present: re-generating on every run would churn the corpus. It fills absent fields, and force overwrites present ones.

func RunLLM

func RunLLM(cmdline string, req LLMRequest) (map[string]model.Value, error)

RunLLM runs cmdline, feeds it req as JSON, and returns validated values.

Types

type LLMRequest

type LLMRequest struct {
	Path    string                  `json:"path"`
	Title   string                  `json:"title"`
	Type    string                  `json:"type"`
	Excerpt string                  `json:"excerpt"`
	Want    []string                `json:"want"`
	Schema  map[string]schema.Field `json:"schema"`
}

LLMRequest is the JSON written to the subprocess stdin.

type Result

type Result struct {
	Path    string
	Updates map[string]model.Value
}

Result is the set of new field values for one document.

func Plan

func Plan(docs []model.Doc, s *schema.Schema, root string, tiers []string, force bool) []Result

Plan runs the requested tiers over docs and returns one Result per doc that gained or refreshed a field. Tiers run in order: they fill absent keys, the git tier refreshes lastUpdated, and force overwrites present keys. Later tiers see earlier tiers' additions through the merged view.

Jump to

Keyboard shortcuts

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