Repository navigation
Closed
Labels
kind:taskA task the plan skill rendered; the body carries ## TaskA task the plan skill rendered; the body carries ## Taskmodel:standardA standard model: work that needs care, or routine work that is largeA standard model: work that needs care, or routine work that is largesize:M200 to 500 net lines; one PR200 to 500 net lines; one PR
Description
Task
| slice | size | difficulty | model | who | estimated lines |
|---|---|---|---|---|---|
| Address boxes and read machine output | M | needs care | standard | an agent | 430 (250 code, 180 tests) |
Every
-o jsonobject carries itsmin/v1schema, a failure under-o jsonis one error object, and no output mode prints a secret's value.
Covers:
- BCLI-033
- BCLI-063
Layers:
- client:
- crates/minimal/src/cmd/output.rs (new): one writer for
min/v1/<type>objects, the stderr error object, and secrets as references - crates/minimal/src/cmd/mod.rs: dispatches the verb
- crates/minimal/src/main.rs: routes a failure under a machine output mode to the error object
- crates/minimal/Cargo.toml: adds proptest as a dev-dependency
- Cargo.lock: records proptest for the minimal crate
- crates/minimal/src/tests.rs: the in-process minimald test harness gains this layer's tests
cargo nextest run -p minimal json_output_schema_per_objectcargo nextest run -p minimal machine_mode_error_object_on_stderrcargo nextest run -p minimal secrets_rendered_as_refs_in_every_output_mode
- crates/minimal/src/cmd/output.rs (new): one writer for
Plan block
### T5 — Versioned JSON objects and errors, secrets as references
slice: S1
kind: task
covers: BCLI-033, BCLI-063
size: M
est: 250 code, 180 tests
executor: agent
difficulty: needs care
model: standard
diagnostics: under `-o json`, a failed command writes one object with `code`, `message` and `hint` to stderr, and nothing to stdout, pinned by machine_mode_error_object_on_stderr
observability: the command's existing tracing span records the verb, the box id it resolved and the outcome
layers:
- client:
- crates/minimal/src/cmd/output.rs (new): one writer for `min/v1/<type>` objects, the stderr error object, and secrets as references
- crates/minimal/src/cmd/mod.rs: dispatches the verb
- crates/minimal/src/main.rs: routes a failure under a machine output mode to the error object
- crates/minimal/Cargo.toml: adds proptest as a dev-dependency
- Cargo.lock: records proptest for the minimal crate
- crates/minimal/src/tests.rs: the in-process minimald test harness gains this layer's tests
test: cargo nextest run -p minimal json_output_schema_per_object
test: cargo nextest run -p minimal machine_mode_error_object_on_stderr
test: cargo nextest run -p minimal secrets_rendered_as_refs_in_every_output_mode
produces:
- crates/minimal/src/cmd/output.rs
consumes: none
proof: Every `-o json` object carries its `min/v1` schema, a failure under `-o json` is one error object, and no output mode prints a secret's value.
Reacted by minimal-foundry
Metadata
Metadata
Assignees
Labels
kind:taskA task the plan skill rendered; the body carries ## TaskA task the plan skill rendered; the body carries ## Taskmodel:standardA standard model: work that needs care, or routine work that is largeA standard model: work that needs care, or routine work that is largesize:M200 to 500 net lines; one PR200 to 500 net lines; one PR
Activity
minimal-foundry commentedon Nov 3, 2026
Done. #2960 merged.
branch
agent/2891-versioned-json-objects-and-errors-secrets-as-ref· epic #2879 · PR #296097a02d5f668f2edaUpdated 2026-11-04T03:22:50.425Z.