rules

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 28, 2026 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Filename       = "COMMITBRIEF.md"
	OutputFilename = "OUTPUT.md"
	LocalSubdir    = ".commitbrief"
)

Variables

This section is empty.

Functions

func Build

func Build(rulesLoaded Loaded, langRes lang.Resolution) (system, userTpl string)

Build assembles the system prompt from the user's review rules and then appends the fixed severity rubric, the JSON-contract response format, the language directive, and the prompt-injection guard. ADR-0014 §1-2 govern the prompt shape — the LLM's only output channel is the JSON findings document; OUTPUT.md no longer participates in prompt construction (it has become a client-side renderer template).

func BuildPlainText added in v0.9.0

func BuildPlainText(rulesLoaded Loaded, langRes lang.Resolution) (system, userTpl string)

BuildPlainText is the system-prompt variant for CLI-based providers (claude-cli, gemini-cli, …). Same project rules and severity rubric as Build, but swaps the JSON-contract response format for a fixed plain-text layout the host CLI can produce and we can stream straight to stdout — no JSON parsing, no findings struct.

Used when the active provider satisfies provider.PlainTextEmitter. The user prompt template (`userTpl`) is shared with Build so the review pipeline (cache key, token estimation) doesn't branch on mode.

Types

type Loaded

type Loaded struct {
	Content string
	Source  Source
	Path    string
	Hash    string
}

func Default

func Default() Loaded

func DefaultOutput

func DefaultOutput() Loaded

func Load

func Load(repoRoot string) (Loaded, error)

func LoadOutput

func LoadOutput(repoRoot, userHome string) (Loaded, error)

LoadOutput resolves the output-format template through a three-tier fallback: repo-local (<repoRoot>/.commitbrief/OUTPUT.md) → user-level (<userHome>/.commitbrief/OUTPUT.md) → binary-embedded default. Both path segments are gitignored by `commitbrief setup --local`, so the override is per-user rather than team-shared — output convention is considered a personal preference; team-shared review content stays in COMMITBRIEF.md.

Pass userHome == "" to skip the user-level layer (test injection); the CLI passes os.UserHomeDir() as resolved at startup.

type Source

type Source int
const (
	SourceDefault Source = iota
	SourceFile
	SourceUserFile
)

func (Source) String

func (s Source) String() string

Jump to

Keyboard shortcuts

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