fix(validate): plain-text output has no leading pass/fail summary line
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
syscribe validate コマンドのデフォルトのテキスト出力パスから始め、クリーンなケース、警告のみのケース、ゲートされた検証ケースを実行します。--json や終了コードの動作を変更せずに先頭のサマリーを追加します。サマリーが常に最初に表示され、実効的な成功/失敗の状態を反映すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
syscribe validate's default (non---json) text output has no leading pass/fail summary line. A clean run prints nothing; a warnings-only run jumps straight into Warnings (N): with no corresponding Errors (0) header ever printed. Answering "did this pass" from the plain-text mode means either noticing the absence of an Errors section (a fragile negative inference) or switching to --json and inspecting severities programmatically.
Motivation
Running syscribe validate after a batch of spec edits, the actual output was:
Warnings (51):
| Code | File | Message |
...
with no errors section at all — meaning it passed (0 errors), but the only way to confirm that from the text output was grep -c "^| E" for an empty result, since there's no explicit "0 errors" anywhere to read. --json solves this cleanly (structured severities), but the plain-text/human-facing mode — which is also what an LLM agent reads by default unless it specifically remembers to pass --json — leaves "did it pass" as an inference rather than a stated fact.
Proposed fix
Print a one-line summary banner at the very top of the default text output, always, regardless of whether there are findings:
0 errors, 51 warnings
or, when gated:
0 errors, 51 warnings (3 gated by --deny W308) — FAIL
Doesn't change --json's shape (already fine) or the exit-code contract — purely a legibility addition to the human/agent-default text path so "did this pass" is answerable by reading the first line, not by the absence of a section.
Acceptance criteria
- A 0-error, 0-warning run prints an explicit
0 errors, 0 warningsline (not silence) - A warnings-only run's summary line appears before the
Warnings (N):table, not after - The summary reflects gating flags (
--deny/--max-warnings/--warnings-as-errors/--profile) when they change the effective pass/fail verdict -
--jsonoutput is unchanged
- 主要言語
- Rust
- スター
- 7
- フォーク
- 1
- 平均マージ
- 1時間 25分
- マージ済み PR(30日)
- 27
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
sjames/syscribe のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
メンテナーはふだん 1 日以内に返信
-
feat(show): surface related traceability commands (trace/impact/who-verifies/refs) in show outputオープンenhancement
難易度 4/5 3〜5日 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
sjames/syscribe の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 3 日以内に返信
-
state:triage-needed
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Automattic/harper#4503 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
メンテナーはふだん 2 日以内に返信