gabriel / muse public
feat BREAKING dev
gabriel · 149 days ago · Apr 16, 2026 · Diff

feat: supercharge agent-config for agents

- New `inspect` subcommand: single JSON call returns context, merged rules, adapter sync status, and a `ready` bool — eliminates multiple round-trips for agents entering a new repository - Smart sync: skip files already in sync instead of erroring; --force retains the overwrite-everything behavior; sync is now fully idempotent - Status JSON: add `agent_md_exists`, `ready`, `in_sync_count`, `missing_count`, `out_of_sync_count` fields - Standalone template: add Testing Rules section (no-full-test-suite rule, `muse code test --json` entry in code intelligence table) - Fix TestShow → TestRead: all 4 tests were calling nonexistent `show` subcommand; renamed to match the actual `read` subcommand - 96 tests passing (was 75; +21 new tests covering inspect, smart sync, status extra fields, and template content)

sha256:40a2a0e03820cf3a3ad1d71255f2e1b5b20fad50cb327b2330f1c583035fb4a5 sha
+37 ~9 −6 symbols
sha256:ace587476d89f454d97315c5f8a95e10e847fa4ba336d7331c50e1193ed4bcce snapshot
+37
symbols added
~9
symbols modified
−6
symbols removed
0
dead code introduced
Semantic Changes 52 symbols
~ AGENTS.md .md 4 symbols added, 3 symbols modified
+ Testing Rules section Testing Rules L99–110
+ Testing Rules — Read Before Running Any Test section Testing Rules — Read Before Running Any Test L69–99
+ Correct workflow section Correct workflow L74–89
+ Forbidden section Forbidden L89–99
~ muse/cli/commands/agent_config.py .py 2 symbols added, 5 symbols modified
+ InspectResult class class InspectResult L110–124
+ run_inspect function function run_inspect L782–901
~ tests/test_cmd_agent_config.py .py 31 symbols added, 6 symbols removed, 1 symbol modified
TestShow class class TestShow L448–484
test_show_json_schema method method test_show_json_schema L462–470
test_show_merged_workspace method method test_show_merged_workspace L472–484
test_show_missing_exits_1 method method test_show_missing_exits_1 L457–460
test_show_prints_agent_md_content method method test_show_prints_agent_md_content L449–455
test_no_force_on_existing_exits_1 method method test_no_force_on_existing_exits_1 L394–397
+ TestInspect class class TestInspect L1008–1115
+ test_inspect_adapter_entries_schema method method test_inspect_adapter_entries_schema L1060–1071
+ test_inspect_json_schema_standalone method method test_inspect_json_schema_standalone L1009–1023
+ test_inspect_merged_content_contains_rules method method test_inspect_merged_content_contains_rules L1051–1058
+ test_inspect_ready_false_without_adapters method method test_inspect_ready_false_without_adapters L1034–1040
+ test_inspect_ready_false_without_agent_md method method test_inspect_ready_false_without_agent_md L1042–1049
+ test_inspect_ready_true_when_in_sync method method test_inspect_ready_true_when_in_sync L1025–1032
+ test_inspect_text_output_exits_0 method method test_inspect_text_output_exits_0 L1109–1115
+ test_inspect_workspace_member_context method method test_inspect_workspace_member_context L1073–1086
+ test_inspect_workspace_merged_content_includes_both_levels method method test_inspect_workspace_merged_content_includes_both_levels L1088–1107
+ TestRead class class TestRead L451–487
+ test_read_json_schema method method test_read_json_schema L465–473
+ test_read_merged_workspace method method test_read_merged_workspace L475–487
+ test_read_missing_exits_1 method method test_read_missing_exits_1 L460–463
+ test_read_prints_agent_md_content method method test_read_prints_agent_md_content L452–458
+ TestSmartSync class class TestSmartSync L945–1000
+ test_force_rewrites_even_in_sync_files method method test_force_rewrites_even_in_sync_files L979–989
+ test_out_of_sync_file_is_updated_without_force method method test_out_of_sync_file_is_updated_without_force L967–977
+ test_second_sync_json_skipped_true method method test_second_sync_json_skipped_true L955–965
+ test_second_sync_skips_in_sync_files method method test_second_sync_skips_in_sync_files L946–953
+ test_sync_idempotent_across_multiple_runs method method test_sync_idempotent_across_multiple_runs L991–1000
+ TestStatusExtraFields class class TestStatusExtraFields L1123–1170
+ test_status_json_counts_after_sync method method test_status_json_counts_after_sync L1161–1170
+ test_status_json_includes_agent_md_exists method method test_status_json_includes_agent_md_exists L1124–1130
+ test_status_json_includes_ready method method test_status_json_includes_ready L1132–1139
+ test_status_json_ready_false_before_sync method method test_status_json_ready_false_before_sync L1141–1146
+ test_status_json_summary_counts method method test_status_json_summary_counts L1148–1159
+ test_sync_already_in_sync_skips_without_error method method test_sync_already_in_sync_skips_without_error L394–400
+ TestTemplateContent class class TestTemplateContent L1178–1196
+ test_standalone_template_includes_muse_code_test method method test_standalone_template_includes_muse_code_test L1189–1196
+ test_standalone_template_includes_testing_rules method method test_standalone_template_includes_testing_rules L1179–1187
← Older Oldest on dev
All commits
Newer → Latest on dev

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:40a2a0e03820cf3a3ad1d71255f2e1b5b20fad50cb327b2330f1c583035fb4a5 --body "your comment"