Skip to content
internal/jsonout
Edit
On this page

The scan command's declared payload: a stable, additive-only document with the summary, per-format groups and extensionless files, checked before it ships.

#internal/jsonout

#internal/jsonout

Package jsonout builds the machine-readable scan document. The document is the scan command's declared payload: the framework carries it as the envelope's payload member under --json and validates it against Schema before writing it. The shape is a consumer contract (R34): field names are stable, values are raw integers, no ANSI codes, and evolution is additive-only.

#Schema

Go go
var Schema = strictcli.SchemaObject(

Schema is the scan command's declared payload schema (strictcli ยง19.5). It states the same contract R34/R35 states in prose, in the form the framework enforces at emission: a document deviating from it fails the run instead of shipping a wrong shape to a consumer.

Every stat property is optional because --stats selects which ones the group objects carry; only the two identity fields are required of a group. The additive fields "config" (R46) and "no_extension_files" are optional for the same reason they are omitempty on the struct.

#Selection

Go go
type Selection map[string]bool

Selection reports which stats were selected via --stats. Unselected stats are omitted from group objects.

#Document

Go go
type Document struct

Document is the scan command's machine payload. The binary's own version is deliberately absent: the envelope carries it as app_version, and one fact belongs in one place.

#Build

Go go
func Build(configPath string, res *scan.Result, groups []scan.Group, sel Selection, listNoExt bool) Document

Build assembles the document for a scan result. groups must already be sorted per --sort-by/--sort-order. listNoExt controls the presence of the no_extension_files field. configPath is the absolute path of the scan config file in effect; when empty the additive "config" field is omitted entirely (R46).

#groupJSON.MarshalJSON

Go go
func (gj groupJSON) MarshalJSON() ([]byte, error)

MarshalJSON writes the group fields in the documented, stable order. Unselected stats are omitted; LOC fields are null for binary groups.

More tools from this site

  • claudestream Drive Claude Code from Python: run it as a subprocess and read its output as typed events, with async and sync sessions, sandbox policies, and tools you define in Python
  • claudewheel A TUI Claude Code Launcher that lets you have more than one profile, manage sessions lifecycle, pick the exact CC version, model to use (even older unlisted ones), pick which GitHub account to use, etc.
  • fastware A batteries-included ASGI framework: msgspec JSON, a managed Granian server, dependency injection, SSE, WebSockets, auth, and a test client
  • go-toml-edit Zero-dep TOML editing library for Go with comment preservation
  • howmuchleft The fastest Claude Code statusline: context window, 5-hour, and weekly limit usage as three customizable gradient bars, rendering in about 6 ms
  • orxtra
  • pgdesign
  • predraw Declarative rendering pipeline: describe a scene in JSON and get SVG, PNG and WebP out, with light and dark style tokens, reusable components and text converted to path outlines
  • reposummary Turn a git repository's history into a Markdown journal: pick a time window or revision range and get a readable digest of what changed, optionally narrated by an LLM
  • rlsbl Release orchestration and project scaffolding CLI that bumps versions, validates a structured JSONL changelog, tags only the commit CI verified, and publishes to npm, PyPI, Go and more
  • safegit git wrapper CLI that gives each commit its own temporary index and retries ref updates on conflict, so concurrent agents share one repository
  • saferm Command-line replacement for rm that archives every deletion with a mandatory reason and the context it ran in, so deleted files can be listed, inspected and restored
  • selfdoc Static Site Generator that builds a project's documentation site directly from its source code, so the docs can never drift from the code they describe, with SEO/AEO, first-class blog, search, and cross-project linking built in
  • strictcli
  • stricttest An always-on test-isolation floor: a pytest plugin and a Go env-hygiene module that make a test suite structurally unable to reach real credentials, the real HOME, the network, or the development repository.
  • wesktop A Python framework that turns an ASGI web app into a desktop application, serving it from a local Granian server and displaying it in a native OS window via pywebview
Search