Skip to content

docs(contract): flip §4 withings --format cells to machine - #20

Merged
DTTerastar merged 1 commit into
mainfrom
chore/contract-withings-format-machine
May 19, 2026
Merged

docs(contract): flip §4 withings --format cells to machine#20
DTTerastar merged 1 commit into
mainfrom
chore/contract-withings-format-machine

Conversation

@Terastar-Paperclip

Copy link
Copy Markdown
Contributor

Summary

QUA-17 wired compat/formats against withings-export-cli and merged on 2026-05-11. Per QUA-29, the four §4 Status cells the bundle attests for withings now flip from human to machine.

Cells changed

| `--format` flag surface (documented, rejects unknown) | human | human | human → **machine** |
| `--format markdown` (default)                          | human | human | human → **machine** |
| `--format json`                                        | human | human | human → **machine** |
| `--format csv`                                         | —     | —     | human → **machine** |

Only the withings (rightmost) column changes. crono and liftoff stay human / until their consumer-wire PRs land (tracked under QUA-16 and QUA-19).

Evidence trail

Test plan

  • Diff confined to four cells in CONTRACT.md §4 Status table; no other content edited.
  • withings PR #36 confirmed merged before opening this PR.

🤖 Generated with Paperclip

QUA-17 wired compat/formats against withings-export-cli (PR
quantcli/withings-export-cli#36, merged 2026-05-11). The four §4
withings cells the bundle attests now flip from human to machine:

- --format flag surface (documented, rejects unknown)
- --format markdown (default)
- --format json
- --format csv

crono and liftoff stay human / — pending their consumer-wire PRs
(QUA-16, QUA-19); those flips are tracked under their own tickets.

Refs: QUA-29
Co-Authored-By: Paperclip <noreply@paperclip.ing>
@DTTerastar
DTTerastar merged commit c926e66 into main May 19, 2026
7 checks passed
@DTTerastar
DTTerastar deleted the chore/contract-withings-format-machine branch May 19, 2026 11:43
DTTerastar added a commit that referenced this pull request Aug 2, 2026
Closes #27. §4 pinned down which codecs exist and the stdout/stderr
split, and §2 pins timestamp formatting, but nothing pinned the JSON
type of an individual field. That gap produced the same class of bug
four times across two repos (liftoff #33 quoted-string bodyweight,
liftoff #36 duration-only-as-prose, withings #27/#20/#42
key-and-type drift). One unwritten rule violated repeatedly.

Adds a Scalar typing subsection under §4 with three requirements —
numbers are JSON numbers not strings; a logical field has one type
(and null, not ""/0, when absent) across every subcommand; a
human-formatted quantity ships a canonical-unit sibling — plus the
timestamp carve-out (§2 already fixes their shape).

Status table gains a JSON-scalar-typing row: liftoff is human-attested
(fixed its known violations in v1.3.0), withings and crono stay at —
(withings has open violations #27/#20/#42; crono is unaudited).

Not machine-attested yet: a compat/scalars bundle is the follow-up, and
it inherits the enforcement-reach gap #27 flags — liftoff and withings
import only compat/formats, so a new bundle needs their imports widened
to actually run in their CI. Tracked separately rather than bundled into
this text change.


Claude-Session: https://claude.ai/code/session_012MvqxTC64Z9EEDewCUbNNo

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

2 participants