generate

package
v0.18.0 Latest Latest
Warning

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

Go to latest
Published: May 4, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package generate produces static discovery files from structcli command trees.

All generators consume structcli.JSONSchema with jsonschema.WithFullTree and produce []byte output. The caller decides where to write the files.

The generators produce mechanically correct scaffolds. Every flag name, type, default, env var, and required marker comes from the same struct definition that powers --jsonschema. Humans should add on top:

  • Trigger phrases for skill discovery ("use when user asks to deploy")
  • Workflow guidance and step-by-step instructions
  • Realistic examples with domain-specific values
  • Error handling advice and troubleshooting sections
  • Negative triggers ("do NOT use for general file management")

Supported formats:

  • Skill: SKILL.md for Claude.ai, Claude Code, Claude API
  • LLMsTxt: llms.txt for any LLM (emerging web standard)
  • Agents: AGENTS.md for coding agents (Linux Foundation standard)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Agents

func Agents(rootCmd *cobra.Command, opts AgentsOptions) ([]byte, error)

Agents generates an AGENTS.md file from a cobra command tree. Returns the file content as bytes.

func LLMsTxt

func LLMsTxt(rootCmd *cobra.Command, opts LLMsTxtOptions) ([]byte, error)

LLMsTxt generates an llms.txt file from a cobra command tree. Returns the file content as bytes.

func Skill

func Skill(rootCmd *cobra.Command, opts SkillOptions) ([]byte, error)

Skill generates a SKILL.md file from a cobra command tree. Returns the file content as bytes.

func WriteAll added in v0.14.0

func WriteAll(rootCmd *cobra.Command, outDir string, opts AllOptions) error

WriteAll generates SKILL.md, llms.txt, and AGENTS.md in outDir from the given command tree. It is the recommended entry point for //go:generate workflows.

When invoked from a //go:generate directive, outDir is typically os.Getwd since go generate sets the working directory to the package containing the directive.

Example:

func main() {
    rootCmd, _ := mycli.NewRootCmd()
    outDir, _ := os.Getwd()
    if err := generate.WriteAll(rootCmd, outDir, generate.AllOptions{
        ModulePath: "github.com/myuser/mycli",
        Skill:      generate.SkillOptions{Author: "myuser", Version: "1.0.0"},
    }); err != nil {
        log.Fatal(err)
    }
}

Types

type AgentsOptions

type AgentsOptions struct {
	ModulePath string // Go module path for install instructions (eg. "github.com/myorg/mycli")
	IncludeMCP bool   // Mention --mcp in Machine Interface section
}

AgentsOptions configures the AGENTS.md generator.

type AllOptions added in v0.14.0

type AllOptions struct {
	// ModulePath is the Go module path of the CLI binary.
	// It is used to derive the project URL for llms.txt and AGENTS.md.
	// Example: "github.com/myuser/mycli"
	ModulePath string

	// Skill configures the SKILL.md generator (name override, author, version, mcp-server).
	Skill SkillOptions

	// IncludeMCP includes MCP server information in llms.txt and AGENTS.md (reserved for future use).
	IncludeMCP bool
}

AllOptions configures all three generators together. It is the recommended configuration for WriteAll in //go:generate workflows.

type LLMsTxtOptions

type LLMsTxtOptions struct {
	ModulePath string // Go module path (eg. "github.com/myorg/mycli"), used to derive project URL
	IncludeMCP bool   // Mention --mcp in the output
}

LLMsTxtOptions configures the llms.txt generator.

type SkillOptions

type SkillOptions struct {
	Name      string // Override skill name (default: root command name, kebab-case)
	Author    string // metadata.author (optional)
	Version   string // metadata.version (optional)
	MCPServer string // metadata.mcp-server (optional)
}

SkillOptions configures the SKILL.md generator.

Jump to

Keyboard shortcuts

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