cli_fmt 0.12.1

CLI output formatting utilities for command-line applications
Documentation
# Action plan — dev
as of 2026-06-23

## Tasks

| # | Task | Gate | State |
|---|------|------|--------|
| *(none)* | | | |

## Conditional actions

| Trigger | Action | Closes |
|---------|--------|--------|
| *(none)* | | |

## Watch

| Item | Project | Awaiting | Action on trigger |
|------|---------|----------|-------------------|
| *(none)* | | | |

## Completed

| Date | Task/Decision | Outcome |
|------|---------------|---------|
| 2026-05-17 | 001 | CliHelpTemplate implemented; all tests pass; T09 bug reproducer added post-completion |
| 2026-05-17 | 002 | width_exact_boundary (FT-11) and process_output_head_lines_omitted (FT-12) added to tests/output.rs; spec readmes updated to ✅ |
| 2026-05-17 | doc-consistency | spec path depth corrected (../../ → ../../../) in all 4 test spec files; AP-1/AP-2/AP-3/AP-5 and FT-5/IN-2 cases added; tty_detect semantics corrected in src/help.rs, docs/api/002_help_api.md, docs/feature/002_cli_help_template.md; 42 integration + 4 doc = 46 tests pass level::3 |
| 2026-06-06 | 003 | 12 new integration tests added (9 output + 3 help); width_one_truncates suffix assertion corrected; Level 3 PASS: 54/54 nextest, 4 doc, 0 clippy |
| 2026-06-06 | 004 | 4 remaining ⏳ spec cases closed (FT-24 is_default_tail, FT-25 is_default_width, FT-10 tty_detect non-TTY, FT-11 data_fmt absence); Level 3 PASS: 58/58 nextest, 4 doc, 0 clippy |
| 2026-06-06 | doc-consistency | All test counts updated (42→44 output, 12→14 help, total 62); T13/T14 added to tests/readme.md; T01–T14 refs in docs/feature/002 and docs/api/002; changelog v0.6.0 entry added; NNN convention note in tests/docs/readme.md |
| 2026-06-06 | code_hyg_l1 (pass 1) | 4 PRBs fixed: Fix(BUG-NNN) IDs added to paired test/source comments; task/bug/ infrastructure created (BUG-005/BUG-006/BUG-007 reports + closed/ subdir); zombie temp dir deleted; changelog v0.6.0 test count corrected; spurious bug_reproducer tags removed from non-bug tests |
| 2026-06-06 | code_hyg_l1 (pass 2) | 4 PRBs fixed: tests/output.rs heading (issue-none)→(BUG-005); BUG-005 report Fix Location/History/Refs corrected (fix in strs_tools::truncate_lines, not cli_fmt); task/completed/002 issue-none→BUG-005; task/completed/readme.md orphan row added for 004_remaining_test_gaps.md |
| 2026-06-23 | 005 | CliHelpData extended with usage_lines/arguments/option_groups; #[non_exhaustive]+Default; version 0.9.2; 76/76 nextest; closed retroactively via normalization audit |
| 2026-06-23 | code_hyg_l1 (pass 3) | 2 PRBs fixed: BUG-006 test_kind marker + 5-section doc on merge_streams_ordering; BUG-007 test_kind marker on test_example_desc_rendered; Level 3 PASS: 76/76 nextest, 6 doc, 0 clippy |
| 2026-06-23 | 006 | 7 tests added (FT-36..FT-40: stdout_filter_with_head, head_tail_width_triple_combination, width_empty_suffix_no_marker, empty_stdout_stderr_with_head, width_zero_with_head; FT-29..FT-30: test_examples_declaration_order, test_tagline_blank_line_separator); MAAV round 4 PASS; Level 3 PASS: 83/83 nextest, 6 doc, 0 clippy |
| 2026-06-23 | doc-consistency (post-006) | tests/readme.md counts corrected: output 46→53, help 30→32, total 82→91; 2 previously uncounted tests added to descriptions (output_config_new_matches_default + merge_streams_stderr_trailing_newline); T-B09/T-B10 entries added; Level 3 PASS: 85/85 nextest, 6 doc, 0 clippy |
| 2026-06-23 | 007 | `assert!(result.width_truncated)` added to `combined_streams_head_width` (FT-33); `assert!(!result.content.contains('→'))` added to `width_one_truncates` (FT-17); both spec Then-clause claims now machine-verified; Level 3 PASS: 85/85 nextest, 6 doc, 0 clippy |
| 2026-06-23 | 008 | `output_passthrough` feature added to `Cargo.toml` (not in `default`/`full`); `src/lib.rs` gates expanded to `any(output, output_passthrough)`; `tests/output_passthrough.rs` created with `feature_flag_line_filtering_passthrough` (FT-41); compound gate `all(output_passthrough, not(string_split))` prevents execution under `--all-features`; passthrough PASS: `--no-default-features --features output_passthrough` |
| 2026-06-23 | AP-12 + consistency | `output_config_with_width_zero_has_processing` added (covers `with_width(0)` stores `Some(0)` semantics — `has_processing() == true`, `is_default() == false`, `width_truncated == false` at runtime); `tests/docs/api/001_output_api.md` AP-12 spec case + test entry; `changelog.md` + `tests/readme.md` counts updated 85→86; Level 3 PASS: 86/86 nextest, 6 doc, 0 clippy |
| 2026-06-23 | doc_tsk | tests/docs/ spec files updated: FT-42..FT-44 (Stderr+head, unicode_aware=false, width+1 boundary) added to 001_output_processing.md; AP-13 (empty suffix), AP-14..AP-15 (merge_streams Stdout/Stderr) added to 001_output_api.md; FT-31..FT-32 (col_gap, cmd_indent) added to 002_cli_help_template.md; all readme ranges updated; Coverage Gate 108 (stale Status) fixed; task 009 created (🎯 Verified via MAAV 4-agent) |
| 2026-06-23 | 009 | 7 tests added: merge_streams_stdout_only, merge_streams_stderr_only, width_one_over_boundary, unicode_aware_false_char_not_byte, stderr_filter_with_head (output.rs); test_col_gap_custom, test_cmd_indent_custom (help.rs); all ⏳ markers replaced; tests/readme.md counts 54→59, 32→34, total 86→93; Level 3 PASS: 93 nextest, 6 doc, 0 clippy |