wavefnd / wavefnd/Wave

Document the machine-readable Wave diagnostic JSON contract

Open Beginner friendly
#404 0 comments 0 reactions 0 assignees View on GitHub
documentation good first issue
Dominant language
Rust
Stars
53
Forks
16
Avg merge
4h 22m
Merged PRs (30d)
46

Description

## Why

`wavec --error-format=json` is regression-tested and useful to editors, Vex, and other tools, but its fields, output stream, exit behavior, and compatibility expectations are not documented for consumers.

## Scope

- Document how to select JSON errors and which commands honor the option.
- Describe the current top-level fields with one short, real example.
- State that diagnostics are emitted on stderr and normal command output remains on stdout.
- Document exit-code categories already exposed by the CLI.
- Explain which fields consumers may treat as stable and how new optional fields may be added.
- Do not redesign the schema in this issue.

## Likely references

- `src/errors.rs`
- `src/main.rs`
- JSON diagnostic regressions in `tests/codegen_regressions.rs`

## Completion criteria

- [ ] The example parses as JSON.
- [ ] Field descriptions match the implementation.
- [ ] Human and JSON selection commands are shown.
- [ ] Vex/editor authors can consume the contract without reading Rust source.

Contributor guide

Open the contributing guide

Research direction

Read src/errors.rs and src/main.rs to verify the JSON fields, option handling, output streams, and exit-code categories, then inspect the JSON diagnostic regressions in tests/codegen_regressions.rs. Document the selection commands, one parsing example, compatibility rules, and completion criteria so Vex and editor authors can use the contract without reading Rust source.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
Half a day
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.