All skills
dpearson2699 avatar

/swiftlint

@45c9085

Configures and enforces SwiftLint in Swift projects using build tool plugins, run scripts, and CI. Covers .swiftlint.yml configuration, disabled_rules, opt_in_rules, only_rules, analyzer_rules, baselines, autocorrect, swiftlint:disable suppressions, reporter formats (sarif, json, checkstyle), strict and lenient modes, SwiftLintBuildToolPlugin via SimplyDanny/SwiftLintPlugins, swift package plugin swiftlint, Xcode run script phases, CI integration, multiple configuration files, and rollout strategies for existing codebases. Use when setting up SwiftLint, configuring lint rules, suppressing warnings, creating baselines, choosing between build tool plugin and run script, or integrating SwiftLint into CI.

Use this Skill: https://skilld.dev/gh/dpearson2699/swift-ios-skills/swiftlint

This session only. Nothing lands on disk.

referencesrule-reference.md

≈1.8k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Bundled Rule Index

This file is an exhaustive local index of SwiftLint rule identifiers grouped by the official rule-directory categories. Use it to avoid leaving a rule out when working offline or scanning the repo quickly.

Treat the official rule directory and swiftlint rules <identifier> as the source of truth for current descriptions, configuration keys, autocorrect support, and future rule additions or reclassifications.

Contents


Default Rules

These rules are enabled automatically. Disable specific ones via disabled_rules in .swiftlint.yml.

attribute_name_spacing, blanket_disable_command, block_based_kvo, class_delegate_protocol, closing_brace, closure_parameter_position, colon, comma, comment_spacing, compiler_protocol_init, computed_accessors_order, control_statement, custom_rules, cyclomatic_complexity, deployment_target, discouraged_direct_init, duplicate_conditions, duplicate_enum_cases, duplicate_imports, duplicated_key_in_dictionary_literal, dynamic_inline, empty_enum_arguments, empty_parameters, empty_parentheses_with_trailing_closure, file_length, for_where, force_cast, force_try, function_body_length, function_name_whitespace, function_parameter_count, generic_type_name, identifier_name, implicit_getter, implicit_optional_initialization, inclusive_language, invalid_swiftlint_command, invisible_character, is_disjoint, large_tuple, leading_whitespace, legacy_cggeometry_functions, legacy_constant, legacy_constructor, legacy_hashing, legacy_nsgeometry_functions, legacy_random, line_length, mark, multiple_closures_with_trailing_closure, nesting, no_fallthrough_only, no_space_in_method_call, non_optional_string_data_conversion, notification_center_detachment, ns_number_init_as_function_reference, nsobject_prefer_isequal, opening_brace, optional_data_string_conversion, orphaned_doc_comment, prefer_type_checking, private_over_fileprivate, private_unit_test, protocol_property_accessors_order, reduce_boolean, redundant_discardable_let, redundant_objc_attribute, redundant_sendable, redundant_set_access_control, redundant_string_enum_value, redundant_void_return, return_arrow_whitespace, self_in_property_initialization, shorthand_operator, statement_position, static_over_final_class, superfluous_disable_command, switch_case_alignment, syntactic_sugar, todo, trailing_comma, trailing_newline, trailing_semicolon, trailing_whitespace, type_body_length, type_name, unavailable_condition, unneeded_break_in_switch, unneeded_override, unneeded_synthesized_initializer, unused_closure_parameter, unused_control_flow_label, unused_enumerated, unused_optional_binding, unused_setter_value, valid_ibinspectable, vertical_parameter_alignment, vertical_whitespace, void_function_in_ternary, void_return, xctfail_message


Opt-in Rules

These rules are disabled by default. Enable selectively via opt_in_rules in .swiftlint.yml.

accessibility_label_for_image, accessibility_trait_for_button, anonymous_argument_in_multiline_closure, array_init, async_without_await, attributes, balanced_xctest_lifecycle, closure_body_length, closure_end_indentation, closure_spacing, collection_alignment, comma_inheritance, conditional_returns_on_newline, contains_over_filter_count, contains_over_filter_is_empty, contains_over_first_not_nil, contains_over_range_nil_comparison, contrasted_opening_brace, convenience_type, direct_return, discarded_notification_center_observer, discouraged_assert, discouraged_default_parameter, discouraged_none_name, discouraged_object_literal, discouraged_optional_boolean, discouraged_optional_collection, empty_collection_literal, empty_count, empty_string, empty_xctest_method, enum_case_associated_values_count, expiring_todo, explicit_acl, explicit_enum_raw_value, explicit_init, explicit_top_level_acl, explicit_type_interface, extension_access_modifier, fallthrough, fatal_error_message, file_header, file_name, file_name_no_space, file_types_order, final_test_case, first_where, flatmap_over_map_reduce, force_unwrapping, function_default_parameter_at_end, ibinspectable_in_extension, identical_operands, implicit_return, implicitly_unwrapped_optional, incompatible_concurrency_annotation, indentation_width, joined_default_parameter, last_where, legacy_multiple, legacy_objc_type, legacy_uigraphics_function, let_var_whitespace, literal_expression_end_indentation, local_doc_comment, lower_acl_than_parent, missing_docs, modifier_order, multiline_arguments, multiline_arguments_brackets, multiline_call_arguments, multiline_function_chains, multiline_literal_brackets, multiline_parameters, multiline_parameters_brackets, nimble_operator, no_empty_block, no_extension_access_modifier, no_grouping_extension, no_magic_numbers, non_overridable_class_declaration, nslocalizedstring_key, nslocalizedstring_require_bundle, number_separator, object_literal, one_declaration_per_file, operator_usage_whitespace, optional_enum_case_matching, overridden_super_call, override_in_extension, pattern_matching_keywords, period_spacing, prefer_asset_symbols, prefer_condition_list, prefer_key_path, prefer_nimble, prefer_self_in_static_references, prefer_self_type_over_type_of_self, prefer_zero_over_explicit_init, prefixed_toplevel_constant, private_action, private_outlet, private_subject, private_swiftui_state, prohibited_interface_builder, prohibited_super_call, quick_discouraged_call, quick_discouraged_focused_test, quick_discouraged_pending_test, raw_value_for_camel_cased_codable_enum, reduce_into, redundant_final, redundant_nil_coalescing, redundant_self, redundant_type_annotation, required_deinit, required_enum_case, return_value_from_void_function, self_binding, shorthand_argument, shorthand_optional_binding, single_test_class, sorted_enum_cases, sorted_first_last, sorted_imports, static_operator, strict_fileprivate, strong_iboutlet, superfluous_else, switch_case_on_newline, test_case_accessibility, toggle_bool, trailing_closure, type_contents_order, unavailable_function, unhandled_throwing_task, unneeded_escaping, unneeded_parentheses_in_closure_argument, unneeded_throws_rethrows, unowned_variable_capture, untyped_error_in_catch, unused_parameter, variable_shadowing, vertical_parameter_alignment_on_call, vertical_whitespace_between_cases, vertical_whitespace_closing_braces, vertical_whitespace_opening_braces, weak_delegate, xct_specific_matcher, yoda_condition


Analyzer Rules

These rules require the Swift compiler's type-checked AST. Run via swiftlint analyze --compiler-log-path <log>. See the custom rules and analyze reference for the full workflow.

capture_variable, explicit_self, typesafe_array_init, unused_declaration, unused_import

Source: SKILL.md on GitHub

No alerts17d3 checks · Risk SAFE
  • Gen Agent Trust Hub17d

    The skill provides a secure and well-structured guide for adopting and configuring SwiftLint. It explicitly promotes security best practices, such as pinning external dependencies to reviewed versions, avoiding automated fixes in build phases to prevent unpredictable side effects, and warning against CI flags that bypass macro and plugin validation. All external references are standard tools within the Swift development community.

  • Socket17d

    No alerts

  • Snyk17d

    Risk: LOW · No issues

Signed by skilld at 45c9085. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Steadyupdated 3 months ago

README badge

README badge for dpearson2699/swift-ios-skills/swiftlint