Builders share payload validation with parsers without encoding and
parsing a publication for validation. Batch members use the shared
metadata and value checks without envelope encoding. Access flag
presence is a JSON input check, separate from typed descriptor checks.
Nil raw values still encode as null without changing caller data, and
the attribution limit measures the text that JSON encodes.
Typed publications and subscription helpers own the wire layout. The
public API exposes parsed addresses but no low-level topic or envelope
construction, which the driver framework does not need. Timing constants
have their own file, and batch fields and operation names use the normal
layout and words without changing the wire contract.
Typed builders and parsers cover every wire operation, including ordered
command batches and expiring hub diagnostics. Publications carry their
delivery rules and command response metadata, so callers need no topic
or envelope construction. Strict closed payloads reject unsupported
fields while event objects keep complete application data.
bin/check fails on a Go comment line over 80 columns, counted as
bin/reflow counts them, with tabs as 8 columns. gofumpt does not wrap
comments, and the line length linter would also count code lines, so a
long comment line passed every check.
The protocol package validates versioned topics, message metadata, and
subscription filters. Canonical IDs and fixed publication intervals let
callers share one wire contract without a broker dependency. Tests use
testify, with its dependencies pinned in the Nix package.
OneHouse starts as a program that prints its name, with the rules and
tools for all later work. The program gives the Nix package a binary
that the install check can run, so the build pipeline is tested before
the first feature.
The agent guide and its skills hold the rules for Go code,
documentation, checks, commits, and issues. The scripts in bin/ format
and check the repository with the tools from the pinned flake, and the
commit hook rejects a message that breaks the message rules.