sjames / sjames/syscribe

fix(validate): plain-text output has no leading pass/fail summary line

Open
#116 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
7
Forks
1
Avg merge
21m
Merged PRs (30d)
2

Description

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 warnings line (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
  • --json output is unchanged

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the syscribe validate command's default text-output path and run clean, warnings-only, and gated validation cases. Add the leading summary without changing --json or exit-code behavior; done means the summary always appears first and reflects effective pass/fail status.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.