Orchestrata Ultimate › Tests › Reference › agents › volks › codedirector

Tests reference — tests/agents/volks/codedirector

tests/agents/volks/codedirector — 15 test modules, 408 test functions (cumulative over subdirectories). Source tree: tests/agents/volks/codedirector at commit 8a2cb42ad. Generated from the tests AST snapshot by scripts/gen-data-pages.py.

Prose pending.

Subdirectories

Directory Modules Tests
scaffold/ 3 22

Modules

Module Tests Covers
test_implementation.py 26 2
test_parser_extended.py 51 1
test_prompts.py 8 1
test_review.py 29 2
test_review_checks.py 104 1
test_review_checks_extended.py 38 1
test_scaffold_generator.py 17 2
test_scaffold_parser.py 39 2
test_selfreview_identity.py 4 1
test_volk.py 40 6
test_volk_extended.py 30 3

Module details

tests/agents/volks/codedirector/test_implementation.py

source · 26 tests · 395 lines

Covers: agents.volks.codedirector.implementation, core.packet/ (package)

Kind Name Line Description
function test_extract_design_docs_all_keys_present 50
function test_extract_design_docs_missing_defaults 74
function test_generate_skeleton_files_empty_docs 91
function test_fan_out_single_file_serial 103
function test_fan_out_multiple_files_parallel 109
function test_fan_out_caps_at_10 117
function test_fan_out_uses_prolog_when_available 123
function test_fan_out_prolog_without_method_falls_back 133
function test_build_skeleton_prompt_reads_files 144
function test_build_skeleton_prompt_missing_file 162
function test_build_fallback_prompt_minimal 168
function test_build_fallback_prompt_with_architecture 183
function test_append_prompt_extras_with_all 199
function test_append_prompt_extras_empty_extras 207
function test_read_file_contents_reads_each 219
function test_read_file_contents_skips_missing 228
function test_scan_workspace_missing_returns_empty 235
function test_scan_workspace_filters 239
function test_build_swarm_response 256
function test_generate_skeleton_files_tolerates_template_error 286 When file_tree and api_spec are provided, generate_skeleton_files
function test_execute_swarm_path_empty_source_list 312
class TestGenerateSkeletonFromContract 336
method TestGenerateSkeletonFromContract.test_valid_contract_produces_file_and_leafmap 337
method TestGenerateSkeletonFromContract.test_invalid_contract_returns_empty_list 350
class TestGenerateSkeletonFilesSkeletonFlow 358
method TestGenerateSkeletonFilesSkeletonFlow.test_flag_on_uses_contract 359
class TestBuildSkeletonPromptLeafFill 381
method TestBuildSkeletonPromptLeafFill.test_adds_strict_leaf_fill_for_gen_skeleton 382
method TestBuildSkeletonPromptLeafFill.test_no_extra_leaf_rule_for_scaffold_skeleton 392

tests/agents/volks/codedirector/test_parser_extended.py

source · 51 tests · 633 lines

Covers: agents.volks.codedirector.scaffold.parser

Kind Name Line Description
function test_parse_file_tree_header_in_middle 49
function test_parse_file_tree_mixed_tree_and_plain 61
function test_parse_api_spec_py_module_flushes_previous_class 78
function test_parse_api_spec_non_py_module_flushes_previous 96
function test_parse_api_spec_inline_import 115
function test_parse_api_spec_multiple_classes 128
function test_parse_api_spec_classes_marker 146
function test_parse_api_spec_decorator_lines 163
function test_parse_api_spec_class_docstring 178
function test_parse_api_spec_module_function_raises 191
function test_parse_api_spec_empty 203
function test_parse_api_spec_dataclass_names 207
function test_parse_api_spec_architect_method_no_def 229
function test_parse_api_spec_return_type_with_colon 243
function test_parse_api_spec_from_imports 255
function test_parse_api_spec_field_with_generic_type 271
function test_parse_api_spec_skip_enum_and_raises_as_field_names 284
function test_parse_code_blocks_stops_at_next_module 305
function test_parse_code_blocks_module_no_codeblock 318
function test_parse_code_blocks_path_match_blank_lines 327
function test_parse_code_blocks_src_dot_prefix 341
function test_parse_code_blocks_src_slash_prefix 352
function test_parse_code_blocks_mod_match_blank_lines 363
function test_parse_code_blocks_file_match_blank_lines 375
function test_parse_code_blocks_empty_codeblock 388
function test_parse_code_blocks_prevents_double_src 398
function test_parse_code_blocks_section_dir_resolved 411
function test_parse_code_blocks_file_header_no_colon 425
function test_parse_single_block_version_comment 442
function test_parse_single_block_multiple_modules 457
function test_parse_single_block_no_fence 474
function test_resolve_path_ambiguous_filename 483
function test_parse_dependencies_single_quotes 496
function test_parse_dependencies_no_section 508
function test_extract_package_name_deep_src_fallback 521
function test_extract_package_name_only_project_fallback 526
function test_build_project_spec_no_requirements_key 535
function test_build_project_spec_no_python_match 544
function test_parse_params_cls_skipped 559
function test_parse_params_args_kwargs 565
function test_parse_params_nested_brackets 571
function test_parse_params_trailing_comma 576
function test_add_param_no_colon_with_equals 582
function test_add_param_colon_no_equals 589
function test_normalize_module_path_basic 600
function test_normalize_module_path_with_py_extension 604
function test_normalize_module_path_src_dot_prefix 608
function test_normalize_module_path_src_slash_prefix 612
function test_normalize_module_path_double_src_dot 616
function test_normalize_module_path_no_double_nesting 621
function test_normalize_module_path_taskq_models 628

tests/agents/volks/codedirector/test_prompts.py

source · 8 tests · 62 lines

Tests for agents.volks.codedirector.prompts.

Covers: agents.volks.codedirector.prompts

Kind Name Line Description
class TestCodeDirectorPrompts 31
method TestCodeDirectorPrompts.test_constants 32
method TestCodeDirectorPrompts.test_system_prompt_non_empty 38
method TestCodeDirectorPrompts.test_system_prompt_contains_role 42
method TestCodeDirectorPrompts.test_system_prompt_contains_implementation_plan 45
method TestCodeDirectorPrompts.test_system_prompt_contains_tool_instructions 48
method TestCodeDirectorPrompts.test_self_review_prompt_non_empty 52
method TestCodeDirectorPrompts.test_self_review_prompt_contains_verdict 56
method TestCodeDirectorPrompts.test_self_review_prompt_contains_tags 59

tests/agents/volks/codedirector/test_review.py

source · 29 tests · 479 lines

Covers: agents.volks.codedirector.review, core.packet/ (package)

Kind Name Line Description
function test_parse_verdict_pass 54
function test_parse_verdict_fail 58
function test_parse_verdict_default_fail 62
function test_parse_verdict_case_insensitive 66
function test_parse_issues_bulleted 70
function test_parse_issues_inline 75
function test_parse_issues_empty_marker 80
function test_parse_issues_stops_on_section 85
function test_parse_issues_no_section_returns_empty 90
function test_prioritize_issues_critical_first 99
function test_prioritize_issues_cap_to_5 109
function test_prioritize_issues_mixed_unknown_tag 115
function test_build_fix_prompt_contains_sections 126
function test_review_context_holds_fields 139
function test_read_source_files_reads 154
function test_cap_issues_trims 165
function test_cap_issues_no_trim 171
function test_print_issues_no_raise 176
function test_prepare_fix_delegation_builds_junior_packet 188
function test_handle_fix_return_success 220
function test_handle_fix_return_failure_from_test_fix 242
function test_handle_fix_return_failure_not_from_test_fix 262
function test_build_qa_packet 281
function test_build_fix_failed_response 301
function test_self_review_loop_no_source_returns_input 362 With no files to review, loop returns input unchanged (and the LLM
function test_self_review_loop_pass_first_cycle 378
function test_self_review_loop_fail_then_pass 397
function test_self_review_loop_folds_graph_context_into_user_message 427 W4.3b regression: _call_llm_with_tools has no graph_context=
function test_apply_review_fixes_runs 464

tests/agents/volks/codedirector/test_review_checks.py

source · 104 tests · 909 lines

Covers: agents.volks.codedirector.review_checks

Kind Name Line Description
function test_parse_file_valid 93
function test_parse_file_syntax_error 99
function test_parse_file_missing 105
function test_read_lines_ok 109
function test_read_lines_missing 115
function test_is_public 119
function test_function_line_count_with_docstring 124
function test_function_line_count_empty_body 137
function test_get_pyproject_deps_none 144
function test_get_pyproject_deps_parses 148
function test_collect_imported_modules 163
function test_collect_imported_modules_ignores_relative 173
function test_check_imports_relative_flagged 185
function test_check_imports_order_violation 194
function test_check_imports_correct_order_passes 206
function test_check_file_completeness_missing_module 220
function test_check_file_completeness_present 230
function test_check_entry_point_missing 246
function test_check_entry_point_present 252
function test_check_entry_point_non_main 258
function test_check_dependency_declaration_missing 268
function test_check_dependency_declaration_satisfied 276
function test_check_dependency_declaration_empty_deps 284
function test_check_dependency_declaration_alias_pil 292
function test_check_dependency_declaration_skips_project_modules 300
function test_check_function_length_over_limit 313
function test_check_function_length_under_limit 321
function test_check_function_args_over_limit 326
function test_check_function_args_self_excluded 332
function test_check_no_placeholder_only_pass 342
function test_check_no_placeholder_not_implemented 348
function test_check_no_placeholder_has_body 354
function test_check_error_handling_bare_except 364
function test_check_error_handling_specific 370
function test_check_type_hints_missing_return 380
function test_check_type_hints_missing_param 386
function test_check_type_hints_init_params_checked 392
function test_check_type_hints_private_skipped 398
function test_check_mutable_defaults_list 408
function test_check_mutable_defaults_dict 414
function test_check_mutable_defaults_safe 420
function test_check_docstrings_missing_function 430
function test_check_docstrings_missing_class 436
function test_check_docstrings_present 442
function test_check_docstrings_skips_private 451
function test_check_line_length_over_limit 461
function test_check_line_length_url_exempted 467
function test_check_line_length_many_over 473
function test_check_security_eval_flagged 485
function test_check_security_exec_flagged 491
function test_check_security_hardcoded_secret 497
function test_check_security_env_var_not_secret 504
function test_check_security_comment_skipped 511
function test_check_security_api_key_pattern 518
function test_check_todo_comments_found 530
function test_check_todo_comments_none 536
function test_check_no_except_pass_bare 545
function test_check_no_except_pass_swallow 551
function test_check_no_except_pass_clean 557
function test_check_no_mocks_unittest_mock 567
function test_check_no_mocks_magicmock_usage 573
function test_check_no_mocks_comment_ignored 579
function test_check_no_mocks_clean 584
function test_check_real_infra_skipif_flagged 594
function test_check_real_infra_redis_without_host 603
function test_check_real_infra_neo4j_without_uri 609 The remediation text must name a key that still EXISTS. It used to say
function test_check_real_infra_non_test_file_skipped 619
function test_check_real_infra_redis_with_host_ok 624
function test_check_lint_runs 638
function test_check_parameter_validation_missing 651
function test_check_parameter_validation_with_isinstance 657
function test_check_parameter_validation_with_assert 668
function test_check_parameter_validation_with_guard_raise 674
function test_check_parameter_validation_private_skipped 682
function test_check_parameter_validation_test_file_skipped 687
function test_check_parameter_validation_init_file_skipped 692
function test_check_parameter_validation_no_params_ok 697
function test_check_traceability_missing_on_public_class 707
function test_check_traceability_missing_on_public_function 713
function test_check_traceability_private_skipped 719
function test_check_traceability_test_file_skipped 724
function test_check_traceability_with_decorator 729
function test_check_traceability_attribute_decorator 736
function test_check_traceability_bare_name_decorator 741
function test_check_file_paths_invalid_identifier 751
function test_check_file_paths_traversal 756
function test_check_file_paths_missing_init 761
function test_check_file_paths_non_py_skipped 766
function test_check_file_paths_init_valid 770
function test_run_deterministic_review_empty_workspace 782
function test_run_deterministic_review_clean_project 788
function test_run_deterministic_review_with_syntax_error 821
function test_run_deterministic_review_filters_module_prefix 827
function test_review_gate_syntax_clean 838
function test_review_gate_syntax_detects_error 844
function test_review_gate_syntax_filepath_error 850
function test_review_gate_lint_runs 856
function test_review_gate_checklist_runs 862
function test_get_fix_instructions_empty 873
function test_get_fix_instructions_known_checks 877
function test_get_fix_instructions_unknown_check 885
function test_format_review_report_pass 890
function test_format_review_report_fail 894
function test_format_review_report_more_than_5 906

tests/agents/volks/codedirector/test_review_checks_extended.py

source · 38 tests · 477 lines

Covers: agents.volks.codedirector.review_checks

Kind Name Line Description
function test_get_pyproject_deps_read_error 63 OSError on read (e.g. pyproject.toml is a directory).
function test_check_imports_from_relative_module_flagged 74 Relative import from a module (level=1, module set).
function test_check_file_completeness_skips_stdlib 88 Stdlib imports are skipped even if in project_modules.
function test_check_file_completeness_dotted_import_missing 99 Dotted import like 'mypkg.submod' triggers sub-module candidate checks.
function test_check_file_completeness_dotted_import_found_pkg_py 110 Dotted import found as mypkg/submod.py.
function test_check_file_completeness_dotted_import_found_src_py 122 Dotted import found as src/mypkg/submod.py.
function test_check_file_completeness_dotted_import_found_src_init 134 Dotted import found as src/mypkg/submod/init.py.
function test_check_dependency_declaration_skips_stdlib 151 Stdlib imports are skipped even when declared_deps is non-empty.
function test_check_function_length_async_over_limit 165
function test_check_type_hints_cls_param 178 classmethod with cls first param should skip cls when checking hints.
function test_check_docstrings_private_class_skipped 195 Private class names (leading underscore) should be skipped.
function test_check_docstrings_async_function_missing 201 Async public functions need docstrings too.
function test_check_line_length_http_url_exempted 213 Lines with http:// URLs are exempt from line-length check.
function test_check_security_os_environ_skipped 225 Lines containing os.environ should not be flagged as hardcoded secrets.
function test_check_security_os_getenv_skipped 233 Lines containing os.getenv should not be flagged as hardcoded secrets.
function test_check_no_except_pass_bare_and_swallow 246 Bare except + pass generates two issues.
function test_check_parameter_validation_no_params_after_self 260 Method with only self should be skipped.
function test_check_parameter_validation_validator_attribute 267 Validator called as attribute (e.g. self.validate_input).
function test_check_parameter_validation_raise_call 279 raise ValueError('msg') counts as validation.
function test_check_parameter_validation_raise_name 286 raise ValueError (without call) counts as validation.
function test_check_parameter_validation_isinstance_standalone 293 isinstance called outside of if/raise still counts as validation.
function test_check_file_paths_valid_nested_package 305 All package directories have init.py — no issues.
function test_run_deterministic_review_scans_test_files 319 Workspace scan discovers test files not in the input list.
function test_run_deterministic_review_missing_file 328 Non-existent files in the input list are skipped gracefully.
function test_run_deterministic_review_filters_pseudo_files 334 Files with 'Module:' prefix in path are filtered out.
function test_review_gate_syntax_missing_file 347 Non-existent files are skipped in syntax gate.
function test_review_gate_lint_with_src_modules 353 Gate discovers project modules under src/.
function test_review_gate_lint_with_workspace_package 363 Gate discovers project modules at workspace root.
function test_review_gate_lint_missing_file 373 Non-existent files are skipped in lint gate.
function test_review_gate_lint_syntax_error_skipped 379 Syntax-error files are skipped (Gate 1 would catch them).
function test_review_gate_checklist_with_src_modules 386 Checklist gate discovers project modules under src/.
function test_review_gate_checklist_with_workspace_package 396 Checklist gate discovers project modules at workspace root.
function test_review_gate_checklist_missing_file 406 Non-existent files are skipped in checklist gate.
function test_review_gate_checklist_syntax_error_skipped 412 Syntax-error files are skipped in checklist gate.
function test_format_review_report_exactly_five 424 Five issues for one check should not show '...and more'.
function test_format_review_report_six_shows_more 431 Six issues for one check should show '...and 1 more'.
function test_get_fix_instructions_duplicate_checks 438 Duplicate check IDs should only show instruction once.
function test_get_fix_instructions_all_known_checks 447 Smoke test that every known check ID maps to an instruction.

tests/agents/volks/codedirector/test_scaffold_generator.py

source · 17 tests · 373 lines

Covers: agents.volks.codedirector.scaffold.generator, agents.volks.codedirector.scaffold.types

Kind Name Line Description
function test_method_params_self 128
function test_method_params_classmethod_cls 133
function test_func_params_no_self 138
function test_func_params_empty 143
function test_create_jinja_env_has_filters 152
function test_find_module_spec_match 163
function test_find_module_spec_no_match 175
function test_write_file_creates_parents 185
function test_write_code_blocks 191
function test_generate_skeleton_via_code_blocks_fallback 208 When templates are unavailable the call should raise loudly.
function test_generate_pyproject_writes_file 262
function test_generate_conftest_writes_file 271
function test_generate_init_files_writes 278
function test_generate_modules_writes 286
function test_create_directories_creates_tests_subdirs 296
function test_generate_skeleton_happy_path 311 Install DictLoader env so the full pipeline runs.
function test_generate_skeleton_with_code_blocks 348 Kimi-style API_SPEC uses code blocks and bypasses module stubs.

tests/agents/volks/codedirector/test_scaffold_parser.py

source · 39 tests · 459 lines

Covers: agents.volks.codedirector.scaffold.parser, agents.volks.codedirector.scaffold.types

Kind Name Line Description
function test_parse_file_tree_simple_plain 51
function test_parse_file_tree_tree_chars 65
function test_parse_file_tree_empty_and_header_skipped 76
function test_parse_file_tree_nested 81
function test_parse_api_spec_module_with_class_and_method 99
function test_parse_api_spec_async_method 122
function test_parse_api_spec_module_level_function 135
function test_parse_api_spec_bases 147
function test_parse_api_spec_fields 159
function test_parse_api_spec_docstring_applied 175
function test_parse_api_spec_raises_line 188
function test_parse_api_spec_skips_non_py_modules 203
function test_parse_api_spec_enum_values 214
function test_parse_dependencies 234
function test_parse_dependencies_empty 246
function test_extract_package_name_simple 255
function test_extract_package_name_fallback 260
function test_extract_package_name_with_dotted 264
function test_parse_code_blocks_file_header 276
function test_parse_code_blocks_module_header_dotted 290
function test_parse_code_blocks_module_header_with_py_suffix 303
function test_parse_code_blocks_section_dir_file_header 314
function test_parse_code_blocks_standard_module_header 327
function test_parse_code_blocks_fallback_single_block 338
function test_parse_code_blocks_none_returns_empty 352
function test_parse_single_block_empty 356
function test_resolve_path_unique_match 365
function test_resolve_path_current_dir 370
function test_resolve_path_no_match 374
function test_build_project_spec_integration 383
function test_build_project_spec_default_python 409
function test_parse_params_empty 419
function test_parse_params_self_only 423
function test_parse_params_typed 427
function test_parse_params_with_default 433
function test_parse_params_no_type_defaults_to_any 438
function test_parse_params_respects_brackets 443
function test_add_param_empty_noop 449
function test_add_param_self_skipped 455

tests/agents/volks/codedirector/test_selfreview_identity.py

source · 4 tests · 42 lines

VP-A8: SELF_REVIEW_PROMPT identifies as U:Cd and notes the fix_issues handoff.

Covers: agents.volks.codedirector.prompts

Kind Name Line Description
function test_self_review_identifies_as_codedirector 11
function test_self_review_notes_fail_routes_fix_issues 18
function test_self_review_preserves_output_format_markers 25
function test_self_review_preserves_methodology_steps 32

tests/agents/volks/codedirector/test_volk.py

source · 40 tests · 984 lines

Covers: agents.exceptions, agents.volks.codedirector.implementation, agents.volks.codedirector.volk, llm.client, core.packet/ (package), core.protocols/ (package)

Kind Name Line Description
function test_init_defaults 53
function test_codedirector_agent_subclass 63
function test_process_unknown_subject_returns_none 73
function test_init_from_packet_sets_fields 90
function test_init_from_packet_empty_project_keeps_workspace 112
function test_build_aider_prompt_with_skeleton 131
function test_build_aider_prompt_fallback 150
function test_serial_path_builds_junior_packet 175
function test_handle_fix_issues_delegates_to_junior 200
function test_make_ready_packet_basic 232
function test_make_ready_packet_swarm_flag 252
function test_make_ready_packet_full_output 265
function test_files_summary_with_files 286
function test_files_summary_without_files 292
function test_extract_aider_prompt_present 303
function test_extract_aider_prompt_absent 311
function test_get_fan_out_decision_no_prolog 321
function test_log_junior_output_appends 328
function test_handle_junior_complete_with_pending_fix 342
function test_handle_junior_complete_empty_files_no_review 369
function test_handle_junior_complete_driver_failure_raises_not_ready 399 success=False + zero files must raise, not emit implementation_ready.
function test_handle_junior_complete_driver_failure_with_stray_files_still_raises 426 Regression matching the exact dogfood run-1 shape: scan_workspace()
function test_handle_junior_complete_pending_fix_bypasses_success_check 453 The pending-fix branch returns before the success check runs -- a
function test_handle_implement_serial_without_postman 484
function test_handle_implement_swarm_path_triggered 506 Exercise the _swarm_path branch by pre-populating skeleton files and
function test_get_junior_driver_returns_instance 591
function test_process_junior_complete_self_review_routes_through_tools 610 process() with subject='implementation_complete' drives self-review
function test_self_review_executes_real_tool_call_via_sandbox 710 The tool-calling loop lets U:Cd actually inspect the codebase (a real
function test_multi_agent_review_edit_returns_verdict 797 The real dispatch path — process() with a real review_edit CXPPacket
function test_review_edit_approves_valid_syntax 813
function test_review_edit_blocks_syntax_error 823
function test_review_edit_approves_indented_mid_function_fragment 834 F1 regression: new_code is typically an indented FRAGMENT (a
function test_review_edit_blocks_genuinely_broken_indented_fragment 848 A fragment that is broken Python even after dedent/wrap-fallback
function test_review_edit_blocks_massive_deletion 860
function test_review_edit_blocks_new_bare_except 870
function test_review_edit_reads_nested_edit_payload_shape 881 The real MultiAgentCoordinator.dispatch_review sends
class TestPreserveGenSkeletonOriginals 913
method TestPreserveGenSkeletonOriginals.test_copies_only_files_with_leafmap 914
method TestPreserveGenSkeletonOriginals.test_skips_scaffold_files_without_leafmap 926
class TestCheckGenSkeletonStructuralEscapes 935
method TestCheckGenSkeletonStructuralEscapes.test_detects_method_deletion 936
method TestCheckGenSkeletonStructuralEscapes.test_no_escape_when_only_leaf_body_changes 963

tests/agents/volks/codedirector/test_volk_extended.py

source · 30 tests · 667 lines

Covers: agents.volks.codedirector.implementation, agents.volks.codedirector.volk, core.packet/ (package)

Kind Name Line Description
function test_agent_alias_and_role 43
function test_agent_subclass_alias_preserved 49
function test_set_postman_sets_private_attr 55
function test_set_kg_sets_private_attr 62
function test_init_defaults_all_fields 69
function test_process_routes_implement 87
function test_process_routes_implementation_complete 106
function test_process_routes_fix_issues 122
function test_init_from_packet_no_optional_fields 150
function test_init_from_packet_with_project_dir 169
function test_build_aider_prompt_with_monorepo_and_intent 191
function test_build_aider_prompt_fallback_all_design_docs 212
function test_handle_implement_serial_with_skeleton_but_no_postman 245 When skeleton files exist but postman is None, serial path is taken.
function test_handle_implement_prolog_disallowed_with_postman 291 Prolog disallows fan-out → serial path even with postman present.
function test_swarm_path_empty_files_created_skips_self_review 364 When execute_swarm_path returns empty files, skip self-review.
function test_handle_junior_complete_with_files_triggers_self_review 426 When files are present and no pending fix, self-review runs.
function test_handle_fix_issues_without_project_dir 462 fix_issues packet without project_dir should not alter workspace.
function test_handle_fix_issues_empty_issues_list 487 fix_issues with empty issues list still produces a valid delegation.
function test_make_ready_packet_neither_swarm_nor_full_output 514
function test_files_summary_various_modes 537
function test_extract_aider_prompt_with_extra_text 552
function test_extract_aider_prompt_multiline 561
function test_get_fan_out_decision_with_prolog 573
function test_get_fan_out_decision_fallback_two_files 583
function test_get_fan_out_decision_fallback_one_file 592
function test_log_junior_output_empty_files 606
function test_get_output_display_with_artifacts 620
function test_get_output_display_empty 628
function test_process_implement_missing_payload_keys 639 _handle_implement should survive missing optional payload keys.
function test_process_junior_complete_missing_payload_keys 654 _handle_junior_complete should survive missing payload keys.

Support files

Fixtures, package markers and helpers without test functions.