Skip to content

feat: self-discovering CLI smoke harness (evals/) + eval intent (itd-75) - #2

Merged
REPPL merged 1 commit into
mainfrom
feat/smoke-harness
Jul 7, 2026
Merged

feat: self-discovering CLI smoke harness (evals/) + eval intent (itd-75)#2
REPPL merged 1 commit into
mainfrom
feat/smoke-harness

Conversation

@REPPL

@REPPL REPPL commented Jul 7, 2026

Copy link
Copy Markdown
Owner

A smoke harness that exercises the assembled binary through its whole command surface — the check unit tests can't give you.

What it does (v1)

Builds abcd, then walks the Cobra tree in-process via cli.NewRootCommand() to discover every command + flag (new commands covered automatically, no hand-kept list), and against the built binary:

  • every command/subcommand: --help exits 0, produces output, never panics (the "compiles but crashes on invocation" catch),
  • read-only verbs (version, bare status board) run for real to a graceful exit,
  • unknown flag → clean non-zero, not a panic.

Proven locally: 21 discovered commands smoke green in ~1.2s.

Wiring

  • Behind the smoke build tag → stays out of the fast go test ./... lane.
  • Dedicated smoke CI job, a leg in the release verify gate (smokes the tagged-commit binary before publish — your "build & run the actual artifact" idea), and make smoke.
  • evals/data/ reserved (with a README) for v2 fixtures.

itd-75

Draft intent for the generalisation: abcd manages this harness for any repo it configures, with fixture-driven scenarios auto-discovered from evals/data/. This repo is the v1 dogfood.

Verification: build/vet/test/make smoke/record-lint/docs lint green; zizmor clean on both edited workflows.

Assisted-by: Claude

A smoke test that builds the real abcd binary, walks the Cobra command tree
in-process via cli.NewRootCommand() (so new commands are covered with no edit),
and exercises each against the binary: every command's --help must render without
panicking, read-only verbs (version, status board) run for real, and an unknown
flag degrades to a clean non-zero. Catches "compiles but panics on invocation",
which the unit lane misses.

Behind the `smoke` build tag so it stays out of `go test ./...`. Wired into a
dedicated CI `smoke` job, the release verify gate (smokes the tagged-commit
binary before publish), and `make smoke`. evals/data/ is reserved for the v2
fixture-driven scenarios.

itd-75 captures the generalisation: abcd manages this harness for any repo it
configures, with fixture-driven scenarios auto-discovered from evals/data/. This
repo is the v1 dogfood.
@REPPL
REPPL merged commit c91b959 into main Jul 7, 2026
12 checks passed
@REPPL
REPPL deleted the feat/smoke-harness branch July 7, 2026 11:34
REPPL added a commit that referenced this pull request Jul 11, 2026
feat: self-discovering CLI smoke harness (evals/) + eval intent (itd-75)
REPPL added a commit that referenced this pull request Jul 12, 2026
docs: itd-82 (abcd drain — ledger triage) + drain #2 run plan
REPPL added a commit that referenced this pull request Jul 12, 2026
docs: add iss-73 to drain #2 scope + capture iss-80
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant