8000 T5 — Versioned JSON objects and errors, secrets as references · Issue #2891 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

T5 — Versioned JSON objects and errors, secrets as references #2891

Closed

Description

@mitodrummer

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 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.

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_object
    • cargo nextest run -p minimal machine_mode_error_object_on_stderr
    • cargo nextest run -p minimal secrets_rendered_as_refs_in_every_output_mode
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.

Activity

  1. added
    kind:taskA task the plan skill rendered; the body carries ## Task
    size:M200 to 500 net lines; one PR
    model:standardA standard model: work that needs care, or routine work that is large
    on Nov 3, 2026
  2. minimal-foundry commented on Nov 3, 2026

    @minimal-foundry
    Contributor

    Done. #2960 merged.

    branch agent/2891-versioned-json-objects-and-errors-secrets-as-ref · epic #2879 · PR #2960

    round outcome job
    1 pushed 97a02d5f
    2 pushed 668f2eda

    Updated 2026-11-04T03:22:50.425Z.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:taskA task the plan skill rendered; the body carries ## Taskmodel:standardA standard model: work that needs care, or routine work that is largesize:M200 to 500 net lines; one PR

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0