ClickHouse / ClickHouse/clickhousectl

Add JSON output to skills, telemetry and update management commands

Open
#862 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
74
Forks
5
Avg merge
2d 11h
Merged PRs (30d)
196

Description

## Validated scope and current-PR plan — 2026-09-11

This section records the QA review and the current decision to finalize existing PRs without opening new PRs. It supersedes the proposed routing/fix suggestions in the original report below; the original observations are retained. Central plan: #757.

### Disposition

Deferred from this existing-PR finalization pass. Keep the issue open; no new PR is requested now. This is not a resolution, a severity downgrade, or a waiver of release acceptance.

### Validation and corrections

Confirmed telemetry status rejects --json; top-level skills/telemetry/update have intentional human-output handling. This is a feature/consistency request, not an omitted cloud-handler invariant. Separate adding structured management output from an explicit human-mode override if useful. Preserve the native-child output contract of #789 and raw Prometheus/SQL output; do not blanket-wrap everything. --help is clap-rendered regardless of agent JSON detection.

---

## Original QA report

Found in the 2026-09-11 QA sweep of the combined PR stack at [`d2c37f81`](https://github.com/ClickHouse/clickhousectl/commit/d2c37f814fff53fe68d636e34103e2d0550bf84d), top PR #823, installed release build (package version still 0.4.2). Reproduced behaviour only; no implementation included.

Severity: low-medium.

```sh
clickhousectl telemetry status --json # error: unexpected argument '--json' exit 2
clickhousectl skills --agent claude --json # same
CLAUDECODE=1 clickhousectl update --check # plain prose
```

Every other surface documents JSON auto-detection under agent env vars; these three opt out entirely, so an agent must scrape prose for telemetry state, skills install results (`created 0, updated 0, unchanged 308`) and update-check results.

Conversely, once `is_ai_agent` trips there is no documented flag or env var to force human output (useful for an agent checking table formatting or help rendering). The README documents the detection list; a `--no-json`/`CLICKHOUSECTL_OUTPUT=human` style override, or at least a documented statement that none exists, would close the loop.

Contributor guide

No contributing guide indexed for this repository

Research direction

Read the original QA report and the current disposition, then use the documented JSON auto-detection surfaces and README detection list as entry points. Reproduce the three commands shown in the report and inspect how skills, telemetry, and update commands handle output. Done means the intended structured-output behavior and any human-output override or documentation are clear, while preserving the native-child and raw Prometheus/SQL output contracts.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.