Documentation
¶
Overview ¶
Package audit reports workflow-conformance findings over a branch's git history. The range rules are advisory (ADR-0017): standalone, never wired into the gate. The shared CheckConventionalCommit rule is the exception - it is also consumed at commit time by `awf check staged commit` and at plan time by `awf check` (ADR-0111). Most rules are pure over the commit range; the uncommitted-changes rule (ADR-0025) additionally inspects the live working tree.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConventionalCommitDocument ¶ added in v0.30.0
func ConventionalCommitDocument(findings []Finding) (presentation.Document, error)
ConventionalCommitDocument maps conventional-commit findings for the commit gate.
Types ¶
type Finding ¶
type Finding struct {
Severity severity.Rank
Rule string
Commit string // short hash, "" for a branch-level finding
Subject string
Detail string
}
Finding is one reported conformance issue.
func CheckConventionalCommit ¶ added in v0.3.0
CheckConventionalCommit validates one commit's subject against the Conventional Commits settings and returns any violations. It is the single definition of the rule - consumed by the audit range loop above, by the blocking `awf check staged commit` command (ADR-0036), and by the plan-time planned-subject check (CheckPlannedSubject, ADR-0111) - so none re-implements the regex, the type/scope allow-lists, or the subject-length limit. Merge commits are exempt. touches-state: tooling/audit-and-snapshots:commit-gate-shared-rule - shared conventional-commit rule consumed by check staged commit; proof in commitgate_test.go
func CheckPlannedSubject ¶ added in v0.18.0
CheckPlannedSubject validates a commit subject a plan proposes with the shared policy.
func Run ¶
Run collects the caller-supplied commit range and evaluates the rules. The range arrives as parameters rather than Inputs fields because no config key supplies it (ADR-0127 Decision 3). It also returns the number of commits the range resolved to, so the caller can report the scope it evaluated rather than a bare verdict (ADR-0127 Decision 9).
type Inputs ¶
type Inputs struct {
Settings
GeneratedPaths map[string]bool
ADRDir string // e.g. "docs/decisions"
DocsDir string // e.g. "docs"; the authored-prose root (ADRDir and PlansDir sit under it)
IndexMd string // e.g. "docs/decisions/INDEX.md"
PlansDir string // e.g. "docs/plans"
ConfiguredDomains []string // config.Domains; staleness limited to these, undocumented-domain fires outside them
DomainsPartsDir string // e.g. ".awf/domains/parts"
// DomainPaths maps a configured domain to its sidecar-declared anchored
// path globs (ADR-0077); empty = the domain-code-staleness rule is inert.
DomainPaths map[string][]string
}
Inputs are the resolved audit settings plus the project-derived layout the rules need. The embedded Settings carries the repository's allowed scope vocabulary.