gabriel / muse public
feat patch check-attr task/supercharge-check-attr #1 / 1
AI Agent gabriel · 156 days ago · Apr 17, 2026 · Diff

feat(check-attr): add elapsed_seconds, exit_code, summary block, --unmatched-only

- elapsed_seconds: wall-clock timing in all JSON output paths (default, --rules-only, --all-rules). Absent from text output. - exit_code: always 0 on success in all JSON output paths. Agents can parse the payload without inspecting the process exit code separately. - summary block (default mode): total/matched/unmatched/by_strategy counts over the (possibly filtered) result set. Absent from --rules-only and --all-rules which have different semantics. - --unmatched-only: filter results to paths with no matching rule (strategy=auto). Useful for attribute gap analysis before a merge. Incompatible with --rules-only (exit 1).

19 new tests across TestElapsed, TestExitCode, TestSummary, TestUnmatchedOnly. 64/64 passing.

sha256:4dcbe75fe6edeea1b9f1cdb7b3b5042116c28e49c341a247dbd7d74d77936cc6 sha
+25 ~2 symbols
sha256:56ef562fa57426d4fc71313a54fc715dc17016d8e0f02bddaa23e6e1287734ae snapshot
+25
symbols added
~2
symbols modified
0
dead code introduced
Semantic Changes 27 symbols
~ muse/cli/commands/check_attr.py .py 2 symbols added, 2 symbols modified
+ _SummaryDict class class _SummaryDict L172–176
+ time import import time L140–140
~ run
~ tests/test_cmd_check_attr.py .py 23 symbols added
+ TestElapsed class class TestElapsed L471–495
+ test_elapsed_absent_from_text_output method method test_elapsed_absent_from_text_output L492–495
+ test_elapsed_in_all_rules_json method method test_elapsed_in_all_rules_json L486–490
+ test_elapsed_in_default_json method method test_elapsed_in_default_json L472–477
+ test_elapsed_in_rules_only_json method method test_elapsed_in_rules_only_json L479–484
+ TestExitCode class class TestExitCode L503–520
+ test_exit_code_0_in_default_json method method test_exit_code_0_in_default_json L504–508
+ test_exit_code_in_all_rules_json method method test_exit_code_in_all_rules_json L516–520
+ test_exit_code_in_rules_only_json method method test_exit_code_in_rules_only_json L510–514
+ TestSummary class class TestSummary L528–566
+ test_summary_absent_from_all_rules method method test_summary_absent_from_all_rules L563–566
+ test_summary_absent_from_rules_only method method test_summary_absent_from_rules_only L557–561
+ test_summary_all_unmatched method method test_summary_all_unmatched L548–555
+ test_summary_by_strategy method method test_summary_by_strategy L539–546
+ test_summary_present_in_default_json method method test_summary_present_in_default_json L529–537
+ TestUnmatchedOnly class class TestUnmatchedOnly L574–621
+ test_all_when_none_matched method method test_all_when_none_matched L589–592
+ test_empty_when_all_matched method method test_empty_when_all_matched L583–587
+ test_filters_to_auto_paths method method test_filters_to_auto_paths L575–581
+ test_incompatible_with_rules_only method method test_incompatible_with_rules_only L610–613
+ test_stdin_compatible method method test_stdin_compatible L615–621
+ test_summary_reflects_filter method method test_summary_reflects_filter L594–600
+ test_text_format method method test_text_format L602–608
← Older Oldest on task/supercharge-check-attr
All commits
Newer → Latest on task/supercharge-check-attr

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:4dcbe75fe6edeea1b9f1cdb7b3b5042116c28e49c341a247dbd7d74d77936cc6 --body "your comment"