internal/app/config
import "github.com/nilstate/scafld/v2/internal/app/config"
Package config prepares evidence-backed workspace configuration proposals.
Functions
func Run(ctx context.Context, scanner Scanner) (Output, error)
Source: internal/app/config/config.go:115
Run builds a deterministic proposal from scanner evidence.
Types
type AgentInstructions
Source: internal/app/config/config.go:80
AgentInstructions tells the consuming agent how to turn evidence into real project configuration without inventing unsupported runtime fields.
type AgentInstructions struct {
Role string `json:"role" yaml:"role"`
Deliverables []string `json:"deliverables" yaml:"deliverables"`
Rules []string `json:"rules" yaml:"rules"`
}Fields
Role string`json:"role" yaml:"role"`Deliverables []string`json:"deliverables" yaml:"deliverables"`Rules []string`json:"rules" yaml:"rules"`
type CommandSuggestion
Source: internal/app/config/config.go:31
CommandSuggestion is an inferred validation command with source evidence.
type CommandSuggestion struct {
ID string `json:"id" yaml:"id"`
Command string `json:"command" yaml:"command"`
Sources []string `json:"sources" yaml:"sources"`
}Fields
ID string`json:"id" yaml:"id"`Command string`json:"command" yaml:"command"`Sources []string`json:"sources" yaml:"sources"`
type ConfigPatch
Source: internal/app/config/config.go:88
ConfigPatch contains concrete changes that may be copied into config.yaml after review.
type ConfigPatch struct {
Invariants map[string]string `json:"invariants" yaml:"invariants"`
Execution *ExecutionPatch `json:"execution,omitempty" yaml:"execution,omitempty"`
}Fields
Invariants map[string]string`json:"invariants" yaml:"invariants"`Execution *ExecutionPatch`json:"execution,omitempty" yaml:"execution,omitempty"`
type Evidence
Source: internal/app/config/config.go:25
Evidence records one discovered project artifact.
type Evidence struct {
Path string `json:"path" yaml:"path"`
Role string `json:"role" yaml:"role"`
}Fields
Path string`json:"path" yaml:"path"`Role string`json:"role" yaml:"role"`
type ExecutionPatch
Source: internal/app/config/config.go:94
ExecutionPatch is the copyable runtime config fragment for acceptance commands.
type ExecutionPatch struct {
PathPrepend []string `json:"path_prepend,omitempty" yaml:"path_prepend,omitempty"`
Env map[string]string `json:"env,omitempty" yaml:"env,omitempty"`
}Fields
PathPrepend []string`json:"path_prepend,omitempty" yaml:"path_prepend,omitempty"`Env map[string]string`json:"env,omitempty" yaml:"env,omitempty"`
type ExecutionSuggestion
Source: internal/app/config/config.go:45
ExecutionSuggestion is an inferred acceptance-command environment.
type ExecutionSuggestion struct {
PathPrepend []string `json:"path_prepend,omitempty" yaml:"path_prepend,omitempty"`
Env map[string]string `json:"env,omitempty" yaml:"env,omitempty"`
Sources []string `json:"sources" yaml:"sources"`
}Fields
PathPrepend []string`json:"path_prepend,omitempty" yaml:"path_prepend,omitempty"`Env map[string]string`json:"env,omitempty" yaml:"env,omitempty"`Sources []string`json:"sources" yaml:"sources"`
type InvariantSuggestion
Source: internal/app/config/config.go:38
InvariantSuggestion is an inferred project invariant with source evidence.
type InvariantSuggestion struct {
ID string `json:"id" yaml:"id"`
Description string `json:"description" yaml:"description"`
Sources []string `json:"sources" yaml:"sources"`
}Fields
ID string`json:"id" yaml:"id"`Description string`json:"description" yaml:"description"`Sources []string`json:"sources" yaml:"sources"`
type Output
Source: internal/app/config/config.go:108
Output describes a config run.
type Output struct {
Path string `json:"path"`
Proposal Proposal `json:"proposal"`
Prompt string `json:"prompt"`
}Fields
Path string`json:"path"`Proposal Proposal`json:"proposal"`Prompt string`json:"prompt"`
type Proposal
Source: internal/app/config/config.go:67
Proposal is the written config proposal. It is intentionally not the runtime config schema; humans and agents must review it before applying changes.
type Proposal struct {
Version string `json:"version" yaml:"version"`
Purpose string `json:"purpose" yaml:"purpose"`
AgentInstructions AgentInstructions `json:"agent_instructions" yaml:"agent_instructions"`
Evidence []Evidence `json:"evidence" yaml:"evidence"`
ConfigPatch ConfigPatch `json:"config_patch" yaml:"config_patch"`
SpecGuidance SpecGuidance `json:"spec_guidance,omitempty" yaml:"spec_guidance,omitempty"`
Warnings []Warning `json:"warnings,omitempty" yaml:"warnings,omitempty"`
OpenQuestions []Question `json:"open_questions,omitempty" yaml:"open_questions,omitempty"`
}Fields
Version string`json:"version" yaml:"version"`Purpose string`json:"purpose" yaml:"purpose"`AgentInstructions AgentInstructions`json:"agent_instructions" yaml:"agent_instructions"`Evidence []Evidence`json:"evidence" yaml:"evidence"`ConfigPatch ConfigPatch`json:"config_patch" yaml:"config_patch"`SpecGuidance SpecGuidance`json:"spec_guidance,omitempty" yaml:"spec_guidance,omitempty"`Warnings []Warning`json:"warnings,omitempty" yaml:"warnings,omitempty"`OpenQuestions []Question`json:"open_questions,omitempty" yaml:"open_questions,omitempty"`
type Question
Source: internal/app/config/config.go:52
Question records a missing policy decision that could not be inferred.
type Question struct {
Question string `json:"question" yaml:"question"`
Reason string `json:"reason" yaml:"reason"`
Sources []string `json:"sources,omitempty" yaml:"sources,omitempty"`
}Fields
Question string`json:"question" yaml:"question"`Reason string`json:"reason" yaml:"reason"`Sources []string`json:"sources,omitempty" yaml:"sources,omitempty"`
type Scanner
Source: internal/app/config/config.go:9
Scanner inspects a workspace without mutating it.
type Scanner interface {
Scan(context.Context) (Snapshot, error)
}Methods
Scan func(context.Context) (Snapshot, error)
type Snapshot
Source: internal/app/config/config.go:14
Snapshot is the evidence discovered from a workspace.
type Snapshot struct {
Root string
Files []Evidence
Commands []CommandSuggestion
Invariants []InvariantSuggestion
Execution *ExecutionSuggestion
Warnings []Warning
Questions []Question
}Fields
Root stringFiles []EvidenceCommands []CommandSuggestionInvariants []InvariantSuggestionExecution *ExecutionSuggestionWarnings []WarningQuestions []Question
type SpecGuidance
Source: internal/app/config/config.go:101
SpecGuidance contains repo facts useful to future specs, but not read from runtime config.
type SpecGuidance struct {
Commands []CommandSuggestion `json:"commands,omitempty" yaml:"commands,omitempty"`
ReviewFocus []InvariantSuggestion `json:"review_focus,omitempty" yaml:"review_focus,omitempty"`
Execution *ExecutionSuggestion `json:"execution,omitempty" yaml:"execution,omitempty"`
}Fields
Commands []CommandSuggestion`json:"commands,omitempty" yaml:"commands,omitempty"`ReviewFocus []InvariantSuggestion`json:"review_focus,omitempty" yaml:"review_focus,omitempty"`Execution *ExecutionSuggestion`json:"execution,omitempty" yaml:"execution,omitempty"`
type Warning
Source: internal/app/config/config.go:59
Warning records stale or suspicious project config state.
type Warning struct {
ID string `json:"id" yaml:"id"`
Message string `json:"message" yaml:"message"`
Sources []string `json:"sources,omitempty" yaml:"sources,omitempty"`
}Fields
ID string`json:"id" yaml:"id"`Message string`json:"message" yaml:"message"`Sources []string`json:"sources,omitempty" yaml:"sources,omitempty"`
