@lvlup-sw/exarchos 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +22 -0
- package/.claude-plugin/plugin.json +17 -0
- package/.mcp.json +17 -0
- package/AGENTS.md +59 -0
- package/CLAUDE.md.template +62 -0
- package/LICENSE +202 -0
- package/README.md +258 -0
- package/commands/autocompact.md +37 -0
- package/commands/checkpoint.md +85 -0
- package/commands/cleanup.md +99 -0
- package/commands/debug.md +145 -0
- package/commands/delegate.md +56 -0
- package/commands/ideate.md +82 -0
- package/commands/plan.md +150 -0
- package/commands/refactor.md +139 -0
- package/commands/reload.md +37 -0
- package/commands/resume.md +130 -0
- package/commands/review.md +51 -0
- package/commands/sync-schemas.md +74 -0
- package/commands/synthesize.md +122 -0
- package/commands/tdd.md +58 -0
- package/dist/exarchos-cli.js +8828 -0
- package/dist/exarchos-mcp.js +50 -0
- package/hooks/hooks.json +53 -0
- package/package.json +59 -0
- package/rules/coding-standards.md +46 -0
- package/rules/mcp-tool-guidance.md +26 -0
- package/rules/pr-descriptions.md +12 -0
- package/rules/rm-safety.md +9 -0
- package/rules/skill-path-resolution.md +10 -0
- package/rules/tdd.md +41 -0
- package/rules/telemetry-awareness.md +9 -0
- package/scripts/assess-refactor-scope.sh +239 -0
- package/scripts/check-benchmark-regression.sh +229 -0
- package/scripts/check-coderabbit.sh +288 -0
- package/scripts/check-coverage-thresholds.sh +194 -0
- package/scripts/check-polish-scope.sh +245 -0
- package/scripts/check-property-tests.sh +167 -0
- package/scripts/check-tdd-compliance.sh +265 -0
- package/scripts/coderabbit-review-gate.sh +518 -0
- package/scripts/debug-review-gate.sh +201 -0
- package/scripts/extract-fix-tasks.sh +179 -0
- package/scripts/extract-task.sh +67 -0
- package/scripts/generate-traceability.sh +209 -0
- package/scripts/investigation-timer.sh +171 -0
- package/scripts/needs-schema-sync.sh +174 -0
- package/scripts/new-project.sh +103 -0
- package/scripts/post-delegation-check.sh +317 -0
- package/scripts/pre-synthesis-check.sh +440 -0
- package/scripts/reconcile-state.sh +346 -0
- package/scripts/reconstruct-stack.sh +432 -0
- package/scripts/review-diff.sh +63 -0
- package/scripts/review-verdict.sh +169 -0
- package/scripts/security-scan.sh +248 -0
- package/scripts/select-debug-track.sh +186 -0
- package/scripts/setup-worktree.sh +323 -0
- package/scripts/spec-coverage-check.sh +230 -0
- package/scripts/static-analysis-gate.sh +236 -0
- package/scripts/sync-labels.sh +122 -0
- package/scripts/validate-companion.sh +161 -0
- package/scripts/validate-dotnet-standards.sh +267 -0
- package/scripts/validate-installation.sh +101 -0
- package/scripts/validate-plugin.sh +223 -0
- package/scripts/validate-refactor.sh +234 -0
- package/scripts/validate-rm.sh +93 -0
- package/scripts/verify-delegation-saga.sh +240 -0
- package/scripts/verify-doc-links.sh +211 -0
- package/scripts/verify-ideate-artifacts.sh +296 -0
- package/scripts/verify-plan-coverage.sh +228 -0
- package/scripts/verify-review-triage.sh +219 -0
- package/scripts/verify-worktree-baseline.sh +159 -0
- package/scripts/verify-worktree.sh +84 -0
- package/settings.json +47 -0
- package/skills/brainstorming/SKILL.md +127 -0
- package/skills/brainstorming/references/design-template.md +65 -0
- package/skills/cleanup/SKILL.md +147 -0
- package/skills/cleanup/references/merge-verification.md +40 -0
- package/skills/debug/SKILL.md +204 -0
- package/skills/debug/references/hotfix-track.md +134 -0
- package/skills/debug/references/investigation-checklist.md +217 -0
- package/skills/debug/references/rca-template.md +150 -0
- package/skills/debug/references/state-schema.md +294 -0
- package/skills/debug/references/thorough-track.md +194 -0
- package/skills/debug/references/triage-questions.md +155 -0
- package/skills/debug/references/troubleshooting.md +47 -0
- package/skills/delegation/SKILL.md +150 -0
- package/skills/delegation/references/adaptive-orchestration.md +31 -0
- package/skills/delegation/references/agent-teams-saga.md +248 -0
- package/skills/delegation/references/fix-mode.md +74 -0
- package/skills/delegation/references/fixer-prompt.md +162 -0
- package/skills/delegation/references/implementer-prompt.md +322 -0
- package/skills/delegation/references/parallel-strategy.md +124 -0
- package/skills/delegation/references/pbt-patterns.md +172 -0
- package/skills/delegation/references/pr-fixes-mode.md +154 -0
- package/skills/delegation/references/state-management.md +51 -0
- package/skills/delegation/references/testing-patterns.md +129 -0
- package/skills/delegation/references/troubleshooting.md +33 -0
- package/skills/delegation/references/workflow-steps.md +127 -0
- package/skills/delegation/references/worktree-enforcement.md +64 -0
- package/skills/dotnet-standards/SKILL.md +269 -0
- package/skills/dotnet-standards/references/csharp-standards.md +120 -0
- package/skills/dotnet-standards/templates/.editorconfig +366 -0
- package/skills/dotnet-standards/templates/Directory.Build.props +56 -0
- package/skills/dotnet-standards/templates/Directory.Packages.props +69 -0
- package/skills/dotnet-standards/templates/global.json +6 -0
- package/skills/dotnet-standards/templates/nuget.config +9 -0
- package/skills/dotnet-standards/templates/stylecop.json +37 -0
- package/skills/git-worktrees/SKILL.md +255 -0
- package/skills/implementation-planning/SKILL.md +233 -0
- package/skills/implementation-planning/references/plan-document-template.md +42 -0
- package/skills/implementation-planning/references/spec-tracing-guide.md +51 -0
- package/skills/implementation-planning/references/task-template.md +43 -0
- package/skills/implementation-planning/references/testing-strategy-guide.md +88 -0
- package/skills/quality-review/SKILL.md +278 -0
- package/skills/quality-review/references/code-quality-checklist.md +159 -0
- package/skills/quality-review/references/review-report-template.md +65 -0
- package/skills/quality-review/references/security-checklist.md +79 -0
- package/skills/quality-review/references/typescript-standards.md +24 -0
- package/skills/refactor/COMMAND.md +67 -0
- package/skills/refactor/SKILL.md +198 -0
- package/skills/refactor/phases/auto-chain.md +262 -0
- package/skills/refactor/phases/brief.md +176 -0
- package/skills/refactor/phases/explore.md +132 -0
- package/skills/refactor/phases/overhaul-delegate.md +136 -0
- package/skills/refactor/phases/overhaul-plan.md +312 -0
- package/skills/refactor/phases/overhaul-review.md +304 -0
- package/skills/refactor/phases/polish-implement.md +349 -0
- package/skills/refactor/phases/polish-validate.md +218 -0
- package/skills/refactor/phases/update-docs.md +234 -0
- package/skills/refactor/references/brief-template.md +81 -0
- package/skills/refactor/references/doc-update-checklist.md +110 -0
- package/skills/refactor/references/explore-checklist.md +73 -0
- package/skills/refactor/references/overhaul-track.md +215 -0
- package/skills/refactor/references/polish-track.md +170 -0
- package/skills/shared/prompts/context-reading.md +58 -0
- package/skills/shared/prompts/report-format.md +54 -0
- package/skills/shared/prompts/tdd-requirements.md +39 -0
- package/skills/shepherd/SKILL.md +264 -0
- package/skills/shepherd/references/assess-checklist.md +124 -0
- package/skills/shepherd/references/fix-strategies.md +191 -0
- package/skills/spec-review/SKILL.md +229 -0
- package/skills/spec-review/references/review-checklist.md +60 -0
- package/skills/sync-schemas/SKILL.md +114 -0
- package/skills/sync-schemas/references/configuration.md +73 -0
- package/skills/synthesis/SKILL.md +129 -0
- package/skills/synthesis/references/pr-descriptions.md +87 -0
- package/skills/synthesis/references/synthesis-steps.md +109 -0
- package/skills/synthesis/references/troubleshooting.md +115 -0
- package/skills/validate-all-skills.sh +57 -0
- package/skills/validate-frontmatter.sh +237 -0
- package/skills/workflow-state/SKILL.md +210 -0
- package/skills/workflow-state/references/mcp-tool-reference.md +111 -0
- package/skills/workflow-state/references/phase-transitions.md +141 -0
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
# Levelup Software .NET EditorConfig Template
|
|
2
|
+
# Version: 1.0.0
|
|
3
|
+
#
|
|
4
|
+
# This file defines code style standards for all Levelup Software C# projects.
|
|
5
|
+
# Do not modify rules above the PROJECT-LOCAL marker. Add overrides below it.
|
|
6
|
+
|
|
7
|
+
root = true
|
|
8
|
+
|
|
9
|
+
#-----------------------------------------------------------------------
|
|
10
|
+
# Global Settings
|
|
11
|
+
#-----------------------------------------------------------------------
|
|
12
|
+
[*]
|
|
13
|
+
charset = utf-8
|
|
14
|
+
end_of_line = crlf
|
|
15
|
+
indent_style = space
|
|
16
|
+
indent_size = 4
|
|
17
|
+
tab_width = 4
|
|
18
|
+
trim_trailing_whitespace = true
|
|
19
|
+
insert_final_newline = false
|
|
20
|
+
max_line_length = 120
|
|
21
|
+
|
|
22
|
+
[*.xml]
|
|
23
|
+
indent_size = 2
|
|
24
|
+
|
|
25
|
+
[*.json]
|
|
26
|
+
indent_size = 2
|
|
27
|
+
|
|
28
|
+
[*.yml]
|
|
29
|
+
indent_size = 2
|
|
30
|
+
|
|
31
|
+
[*.yaml]
|
|
32
|
+
indent_size = 2
|
|
33
|
+
|
|
34
|
+
#-----------------------------------------------------------------------
|
|
35
|
+
# .NET Code Style Settings
|
|
36
|
+
#-----------------------------------------------------------------------
|
|
37
|
+
[*.{cs,vb}]
|
|
38
|
+
|
|
39
|
+
# Organize usings
|
|
40
|
+
dotnet_separate_import_directive_groups = true
|
|
41
|
+
dotnet_sort_system_directives_first = true
|
|
42
|
+
file_header_template = unset
|
|
43
|
+
|
|
44
|
+
# Qualification preferences (no 'this.' prefix)
|
|
45
|
+
dotnet_style_qualification_for_field = false:silent
|
|
46
|
+
dotnet_style_qualification_for_property = false:silent
|
|
47
|
+
dotnet_style_qualification_for_method = false:silent
|
|
48
|
+
dotnet_style_qualification_for_event = false:silent
|
|
49
|
+
|
|
50
|
+
# Language keywords vs BCL types (prefer 'int' over 'Int32')
|
|
51
|
+
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
|
|
52
|
+
dotnet_style_predefined_type_for_member_access = true:silent
|
|
53
|
+
|
|
54
|
+
# Parentheses preferences
|
|
55
|
+
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
|
|
56
|
+
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
|
|
57
|
+
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
|
|
58
|
+
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
|
|
59
|
+
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
|
|
60
|
+
|
|
61
|
+
# Expression-level preferences
|
|
62
|
+
dotnet_style_coalesce_expression = true:suggestion
|
|
63
|
+
dotnet_style_null_propagation = true:suggestion
|
|
64
|
+
dotnet_style_object_initializer = true:suggestion
|
|
65
|
+
dotnet_style_collection_initializer = true:suggestion
|
|
66
|
+
dotnet_style_prefer_collection_expression = when_types_loosely_match:suggestion
|
|
67
|
+
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
|
|
68
|
+
dotnet_style_prefer_compound_assignment = true:suggestion
|
|
69
|
+
dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion
|
|
70
|
+
dotnet_style_prefer_conditional_expression_over_return = true:suggestion
|
|
71
|
+
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
|
|
72
|
+
dotnet_style_prefer_inferred_tuple_names = true:suggestion
|
|
73
|
+
dotnet_style_explicit_tuple_names = true:suggestion
|
|
74
|
+
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
|
|
75
|
+
dotnet_style_prefer_simplified_interpolation = true:suggestion
|
|
76
|
+
dotnet_style_prefer_auto_properties = true:suggestion
|
|
77
|
+
dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed:suggestion
|
|
78
|
+
dotnet_style_operator_placement_when_wrapping = beginning_of_line
|
|
79
|
+
dotnet_style_namespace_match_folder = true:suggestion
|
|
80
|
+
dotnet_style_readonly_field = true:warning
|
|
81
|
+
dotnet_code_quality_unused_parameters = all:suggestion
|
|
82
|
+
|
|
83
|
+
#-----------------------------------------------------------------------
|
|
84
|
+
# .NET Naming Conventions
|
|
85
|
+
#-----------------------------------------------------------------------
|
|
86
|
+
|
|
87
|
+
# Naming Styles
|
|
88
|
+
dotnet_naming_style.pascal_case.capitalization = pascal_case
|
|
89
|
+
dotnet_naming_style.camel_case.capitalization = camel_case
|
|
90
|
+
dotnet_naming_style.i_pascal_case.required_prefix = I
|
|
91
|
+
dotnet_naming_style.i_pascal_case.capitalization = pascal_case
|
|
92
|
+
dotnet_naming_style.t_pascal_case.required_prefix = T
|
|
93
|
+
dotnet_naming_style.t_pascal_case.capitalization = pascal_case
|
|
94
|
+
dotnet_naming_style.underscore_camel_case.required_prefix = _
|
|
95
|
+
dotnet_naming_style.underscore_camel_case.capitalization = camel_case
|
|
96
|
+
dotnet_naming_style.s_camel_case.required_prefix = s_
|
|
97
|
+
dotnet_naming_style.s_camel_case.capitalization = camel_case
|
|
98
|
+
|
|
99
|
+
# Symbol Specifications
|
|
100
|
+
dotnet_naming_symbols.types_and_namespaces.applicable_kinds = class, struct, interface, enum, delegate, namespace
|
|
101
|
+
dotnet_naming_symbols.types_and_namespaces.applicable_accessibilities = *
|
|
102
|
+
dotnet_naming_symbols.interfaces.applicable_kinds = interface
|
|
103
|
+
dotnet_naming_symbols.interfaces.applicable_accessibilities = *
|
|
104
|
+
dotnet_naming_symbols.type_parameters.applicable_kinds = type_parameter
|
|
105
|
+
dotnet_naming_symbols.type_parameters.applicable_accessibilities = *
|
|
106
|
+
dotnet_naming_symbols.methods_properties_events.applicable_kinds = method, property, event
|
|
107
|
+
dotnet_naming_symbols.methods_properties_events.applicable_accessibilities = *
|
|
108
|
+
dotnet_naming_symbols.public_internal_fields.applicable_kinds = field
|
|
109
|
+
dotnet_naming_symbols.public_internal_fields.applicable_accessibilities = public, internal, protected_internal
|
|
110
|
+
dotnet_naming_symbols.private_protected_instance_fields.applicable_kinds = field
|
|
111
|
+
dotnet_naming_symbols.private_protected_instance_fields.applicable_accessibilities = private, protected, private_protected
|
|
112
|
+
dotnet_naming_symbols.private_protected_static_fields.applicable_kinds = field
|
|
113
|
+
dotnet_naming_symbols.private_protected_static_fields.applicable_accessibilities = private, protected, private_protected
|
|
114
|
+
dotnet_naming_symbols.private_protected_static_fields.required_modifiers = static
|
|
115
|
+
dotnet_naming_symbols.constant_fields.applicable_kinds = field
|
|
116
|
+
dotnet_naming_symbols.constant_fields.applicable_accessibilities = *
|
|
117
|
+
dotnet_naming_symbols.constant_fields.required_modifiers = const
|
|
118
|
+
dotnet_naming_symbols.static_readonly_fields.applicable_kinds = field
|
|
119
|
+
dotnet_naming_symbols.static_readonly_fields.applicable_accessibilities = *
|
|
120
|
+
dotnet_naming_symbols.static_readonly_fields.required_modifiers = static, readonly
|
|
121
|
+
dotnet_naming_symbols.local_variables.applicable_kinds = local
|
|
122
|
+
dotnet_naming_symbols.local_variables.applicable_accessibilities = local
|
|
123
|
+
dotnet_naming_symbols.parameters.applicable_kinds = parameter
|
|
124
|
+
dotnet_naming_symbols.parameters.applicable_accessibilities = *
|
|
125
|
+
dotnet_naming_symbols.local_functions.applicable_kinds = local_function
|
|
126
|
+
dotnet_naming_symbols.local_functions.applicable_accessibilities = *
|
|
127
|
+
|
|
128
|
+
# Naming Rules
|
|
129
|
+
dotnet_naming_rule.pascal_case_for_most_members.symbols = types_and_namespaces, methods_properties_events, public_internal_fields, constant_fields, static_readonly_fields, local_functions
|
|
130
|
+
dotnet_naming_rule.pascal_case_for_most_members.style = pascal_case
|
|
131
|
+
dotnet_naming_rule.pascal_case_for_most_members.severity = suggestion
|
|
132
|
+
|
|
133
|
+
dotnet_naming_rule.i_pascal_case_for_interfaces.symbols = interfaces
|
|
134
|
+
dotnet_naming_rule.i_pascal_case_for_interfaces.style = i_pascal_case
|
|
135
|
+
dotnet_naming_rule.i_pascal_case_for_interfaces.severity = suggestion
|
|
136
|
+
|
|
137
|
+
dotnet_naming_rule.t_pascal_case_for_type_parameters.symbols = type_parameters
|
|
138
|
+
dotnet_naming_rule.t_pascal_case_for_type_parameters.style = t_pascal_case
|
|
139
|
+
dotnet_naming_rule.t_pascal_case_for_type_parameters.severity = suggestion
|
|
140
|
+
|
|
141
|
+
dotnet_naming_rule.camel_case_for_locals_and_parameters.symbols = local_variables, parameters
|
|
142
|
+
dotnet_naming_rule.camel_case_for_locals_and_parameters.style = camel_case
|
|
143
|
+
dotnet_naming_rule.camel_case_for_locals_and_parameters.severity = suggestion
|
|
144
|
+
|
|
145
|
+
dotnet_naming_rule.underscore_camel_case_for_private_instance_fields.symbols = private_protected_instance_fields
|
|
146
|
+
dotnet_naming_rule.underscore_camel_case_for_private_instance_fields.style = underscore_camel_case
|
|
147
|
+
dotnet_naming_rule.underscore_camel_case_for_private_instance_fields.severity = suggestion
|
|
148
|
+
|
|
149
|
+
dotnet_naming_rule.s_camel_case_for_private_static_fields.symbols = private_protected_static_fields
|
|
150
|
+
dotnet_naming_rule.s_camel_case_for_private_static_fields.style = s_camel_case
|
|
151
|
+
dotnet_naming_rule.s_camel_case_for_private_static_fields.severity = suggestion
|
|
152
|
+
|
|
153
|
+
#-----------------------------------------------------------------------
|
|
154
|
+
# C# Specific Settings
|
|
155
|
+
#-----------------------------------------------------------------------
|
|
156
|
+
[*.cs]
|
|
157
|
+
|
|
158
|
+
# 'var' preferences (prefer explicit types)
|
|
159
|
+
csharp_style_var_for_built_in_types = false:silent
|
|
160
|
+
csharp_style_var_when_type_is_apparent = false:silent
|
|
161
|
+
csharp_style_var_elsewhere = false:silent
|
|
162
|
+
|
|
163
|
+
# Expression-bodied members
|
|
164
|
+
csharp_style_expression_bodied_methods = false:silent
|
|
165
|
+
csharp_style_expression_bodied_constructors = false:silent
|
|
166
|
+
csharp_style_expression_bodied_operators = false:silent
|
|
167
|
+
csharp_style_expression_bodied_properties = true:silent
|
|
168
|
+
csharp_style_expression_bodied_indexers = true:silent
|
|
169
|
+
csharp_style_expression_bodied_accessors = true:silent
|
|
170
|
+
csharp_style_expression_bodied_local_functions = false:silent
|
|
171
|
+
csharp_style_expression_bodied_lambdas = true:suggestion
|
|
172
|
+
|
|
173
|
+
# Pattern matching
|
|
174
|
+
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
|
|
175
|
+
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
|
|
176
|
+
csharp_style_prefer_pattern_matching = true:suggestion
|
|
177
|
+
csharp_style_prefer_switch_expression = true:suggestion
|
|
178
|
+
csharp_style_prefer_not_pattern = true:suggestion
|
|
179
|
+
csharp_style_prefer_extended_property_pattern = true:suggestion
|
|
180
|
+
|
|
181
|
+
# Null-checking
|
|
182
|
+
csharp_style_conditional_delegate_call = true:suggestion
|
|
183
|
+
|
|
184
|
+
# Modifiers
|
|
185
|
+
csharp_preferred_modifier_order = public,private,protected,internal,file,const,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async:suggestion
|
|
186
|
+
csharp_prefer_static_local_function = true:warning
|
|
187
|
+
csharp_prefer_static_anonymous_function = true:suggestion
|
|
188
|
+
csharp_style_prefer_readonly_struct = true:suggestion
|
|
189
|
+
csharp_style_prefer_readonly_struct_member = true:suggestion
|
|
190
|
+
|
|
191
|
+
# Code-block preferences
|
|
192
|
+
csharp_prefer_braces = true:silent
|
|
193
|
+
csharp_style_namespace_declarations = file_scoped:suggestion
|
|
194
|
+
csharp_prefer_simple_using_statement = true:suggestion
|
|
195
|
+
csharp_style_prefer_method_group_conversion = true:silent
|
|
196
|
+
csharp_style_prefer_primary_constructors = true:suggestion
|
|
197
|
+
csharp_style_prefer_top_level_statements = true:silent
|
|
198
|
+
|
|
199
|
+
# Expression-level preferences
|
|
200
|
+
csharp_prefer_simple_default_expression = true:suggestion
|
|
201
|
+
csharp_style_deconstructed_variable_declaration = true:suggestion
|
|
202
|
+
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
|
|
203
|
+
csharp_style_inlined_variable_declaration = true:suggestion
|
|
204
|
+
csharp_style_prefer_index_operator = true:suggestion
|
|
205
|
+
csharp_style_prefer_range_operator = true:suggestion
|
|
206
|
+
csharp_style_prefer_local_over_anonymous_function = true:suggestion
|
|
207
|
+
csharp_style_prefer_null_check_over_type_check = true:suggestion
|
|
208
|
+
csharp_style_prefer_tuple_swap = true:suggestion
|
|
209
|
+
csharp_style_throw_expression = true:suggestion
|
|
210
|
+
csharp_style_prefer_utf8_string_literals = true:suggestion
|
|
211
|
+
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
|
|
212
|
+
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
|
|
213
|
+
|
|
214
|
+
# 'using' directive preferences
|
|
215
|
+
csharp_using_directive_placement = outside_namespace:warning
|
|
216
|
+
csharp_blank_lines_between_using_directives = 0
|
|
217
|
+
|
|
218
|
+
#-----------------------------------------------------------------------
|
|
219
|
+
# C# Formatting Rules
|
|
220
|
+
#-----------------------------------------------------------------------
|
|
221
|
+
|
|
222
|
+
# New line preferences
|
|
223
|
+
csharp_new_line_before_catch = true:warning
|
|
224
|
+
csharp_new_line_before_else = true:warning
|
|
225
|
+
csharp_new_line_before_finally = true:warning
|
|
226
|
+
csharp_new_line_before_members_in_object_initializers = true:warning
|
|
227
|
+
csharp_new_line_before_members_in_anonymous_types = true:warning
|
|
228
|
+
csharp_new_line_between_query_expression_clauses = true:warning
|
|
229
|
+
csharp_new_line_before_open_brace = all:warning
|
|
230
|
+
|
|
231
|
+
# Indentation
|
|
232
|
+
csharp_indent_block_contents = true:warning
|
|
233
|
+
csharp_indent_braces = false:warning
|
|
234
|
+
csharp_indent_case_contents = true:warning
|
|
235
|
+
csharp_indent_case_contents_when_block = true:warning
|
|
236
|
+
csharp_indent_switch_labels = true:warning
|
|
237
|
+
csharp_indent_labels = one_less_than_current:warning
|
|
238
|
+
|
|
239
|
+
# Spacing
|
|
240
|
+
csharp_space_after_cast = false
|
|
241
|
+
csharp_space_after_colon_in_inheritance_clause = true
|
|
242
|
+
csharp_space_after_comma = true
|
|
243
|
+
csharp_space_after_dot = false
|
|
244
|
+
csharp_space_after_semicolon_in_for_statement = true
|
|
245
|
+
csharp_space_after_keywords_in_control_flow_statements = true
|
|
246
|
+
csharp_space_around_binary_operators = before_and_after
|
|
247
|
+
csharp_space_around_declaration_statements = false
|
|
248
|
+
csharp_space_before_colon_in_inheritance_clause = true
|
|
249
|
+
csharp_space_before_comma = false
|
|
250
|
+
csharp_space_before_dot = false
|
|
251
|
+
csharp_space_before_open_square_brackets = false
|
|
252
|
+
csharp_space_before_semicolon_in_for_statement = false
|
|
253
|
+
csharp_space_between_empty_square_brackets = false
|
|
254
|
+
csharp_space_between_method_call_empty_parameter_list_parentheses = false
|
|
255
|
+
csharp_space_between_method_call_name_and_opening_parenthesis = false
|
|
256
|
+
csharp_space_between_method_call_parameter_list_parentheses = false
|
|
257
|
+
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
|
|
258
|
+
csharp_space_between_method_declaration_name_and_open_parenthesis = false
|
|
259
|
+
csharp_space_between_method_declaration_parameter_list_parentheses = false
|
|
260
|
+
csharp_space_between_parentheses = false
|
|
261
|
+
csharp_space_between_square_brackets = false
|
|
262
|
+
|
|
263
|
+
# Wrapping
|
|
264
|
+
csharp_preserve_single_line_blocks = true
|
|
265
|
+
csharp_preserve_single_line_statements = true
|
|
266
|
+
|
|
267
|
+
#-----------------------------------------------------------------------
|
|
268
|
+
# Analyzer Rule Severities
|
|
269
|
+
#-----------------------------------------------------------------------
|
|
270
|
+
|
|
271
|
+
# IDE Analyzers
|
|
272
|
+
dotnet_diagnostic.IDE0130.severity = warning
|
|
273
|
+
dotnet_diagnostic.IDE1006.severity = none
|
|
274
|
+
dotnet_diagnostic.IDE0290.severity = none
|
|
275
|
+
|
|
276
|
+
# Code Analysis
|
|
277
|
+
dotnet_diagnostic.CA1860.severity = silent
|
|
278
|
+
dotnet_diagnostic.CA2254.severity = silent
|
|
279
|
+
|
|
280
|
+
# StyleCop - Disabled rules
|
|
281
|
+
dotnet_diagnostic.SA0001.severity = none
|
|
282
|
+
dotnet_diagnostic.SA1000.severity = none
|
|
283
|
+
dotnet_diagnostic.SA1005.severity = none
|
|
284
|
+
dotnet_diagnostic.SA1008.severity = none
|
|
285
|
+
dotnet_diagnostic.SA1009.severity = none
|
|
286
|
+
dotnet_diagnostic.SA1010.severity = none
|
|
287
|
+
dotnet_diagnostic.SA1011.severity = none
|
|
288
|
+
dotnet_diagnostic.SA1013.severity = none
|
|
289
|
+
dotnet_diagnostic.SA1028.severity = none
|
|
290
|
+
dotnet_diagnostic.SA1101.severity = none
|
|
291
|
+
dotnet_diagnostic.SA1116.severity = none
|
|
292
|
+
dotnet_diagnostic.SA1117.severity = none
|
|
293
|
+
dotnet_diagnostic.SA1118.severity = none
|
|
294
|
+
dotnet_diagnostic.SA1122.severity = none
|
|
295
|
+
dotnet_diagnostic.SA1124.severity = none
|
|
296
|
+
dotnet_diagnostic.SA1127.severity = suggestion
|
|
297
|
+
dotnet_diagnostic.SA1200.severity = none
|
|
298
|
+
dotnet_diagnostic.SA1201.severity = none
|
|
299
|
+
dotnet_diagnostic.SA1202.severity = none
|
|
300
|
+
dotnet_diagnostic.SA1203.severity = none
|
|
301
|
+
dotnet_diagnostic.SA1204.severity = none
|
|
302
|
+
dotnet_diagnostic.SA1206.severity = none
|
|
303
|
+
dotnet_diagnostic.SA1207.severity = none
|
|
304
|
+
dotnet_diagnostic.SA1208.severity = none
|
|
305
|
+
dotnet_diagnostic.SA1209.severity = none
|
|
306
|
+
dotnet_diagnostic.SA1210.severity = none
|
|
307
|
+
dotnet_diagnostic.SA1211.severity = none
|
|
308
|
+
dotnet_diagnostic.SA1214.severity = none
|
|
309
|
+
dotnet_diagnostic.SA1216.severity = none
|
|
310
|
+
dotnet_diagnostic.SA1217.severity = none
|
|
311
|
+
dotnet_diagnostic.SA1300.severity = none
|
|
312
|
+
dotnet_diagnostic.SA1302.severity = none
|
|
313
|
+
dotnet_diagnostic.SA1303.severity = none
|
|
314
|
+
dotnet_diagnostic.SA1304.severity = none
|
|
315
|
+
dotnet_diagnostic.SA1306.severity = none
|
|
316
|
+
dotnet_diagnostic.SA1307.severity = none
|
|
317
|
+
dotnet_diagnostic.SA1308.severity = none
|
|
318
|
+
dotnet_diagnostic.SA1309.severity = none
|
|
319
|
+
dotnet_diagnostic.SA1310.severity = none
|
|
320
|
+
dotnet_diagnostic.SA1311.severity = none
|
|
321
|
+
dotnet_diagnostic.SA1312.severity = none
|
|
322
|
+
dotnet_diagnostic.SA1313.severity = none
|
|
323
|
+
dotnet_diagnostic.SA1316.severity = none
|
|
324
|
+
dotnet_diagnostic.SA1400.severity = none
|
|
325
|
+
dotnet_diagnostic.SA1401.severity = suggestion
|
|
326
|
+
dotnet_diagnostic.SA1402.severity = none
|
|
327
|
+
dotnet_diagnostic.SA1403.severity = none
|
|
328
|
+
dotnet_diagnostic.SA1404.severity = none
|
|
329
|
+
dotnet_diagnostic.SA1405.severity = none
|
|
330
|
+
dotnet_diagnostic.SA1406.severity = none
|
|
331
|
+
dotnet_diagnostic.SA1407.severity = none
|
|
332
|
+
dotnet_diagnostic.SA1408.severity = none
|
|
333
|
+
dotnet_diagnostic.SA1410.severity = none
|
|
334
|
+
dotnet_diagnostic.SA1411.severity = none
|
|
335
|
+
dotnet_diagnostic.SA1413.severity = none
|
|
336
|
+
dotnet_diagnostic.SA1502.severity = suggestion
|
|
337
|
+
dotnet_diagnostic.SA1503.severity = suggestion
|
|
338
|
+
dotnet_diagnostic.SA1512.severity = none
|
|
339
|
+
dotnet_diagnostic.SA1515.severity = suggestion
|
|
340
|
+
dotnet_diagnostic.SA1516.severity = suggestion
|
|
341
|
+
dotnet_diagnostic.SA1518.severity = none
|
|
342
|
+
dotnet_diagnostic.SA1649.severity = none
|
|
343
|
+
|
|
344
|
+
# StyleCop - Documentation (warnings)
|
|
345
|
+
dotnet_diagnostic.SA1600.severity = warning
|
|
346
|
+
dotnet_diagnostic.SA1601.severity = warning
|
|
347
|
+
dotnet_diagnostic.SA1602.severity = warning
|
|
348
|
+
dotnet_diagnostic.SA1623.severity = none
|
|
349
|
+
dotnet_diagnostic.SA1633.severity = none
|
|
350
|
+
dotnet_diagnostic.SA1636.severity = none
|
|
351
|
+
|
|
352
|
+
# Visual Studio Threading Analyzers
|
|
353
|
+
dotnet_diagnostic.VSTHRD001.severity = error
|
|
354
|
+
dotnet_diagnostic.VSTHRD002.severity = error
|
|
355
|
+
dotnet_diagnostic.VSTHRD004.severity = error
|
|
356
|
+
dotnet_diagnostic.VSTHRD012.severity = suggestion
|
|
357
|
+
dotnet_diagnostic.VSTHRD101.severity = error
|
|
358
|
+
dotnet_diagnostic.VSTHRD105.severity = warning
|
|
359
|
+
dotnet_diagnostic.VSTHRD111.severity = error
|
|
360
|
+
dotnet_diagnostic.VSTHRD114.severity = error
|
|
361
|
+
dotnet_diagnostic.VSTHRD200.severity = suggestion
|
|
362
|
+
|
|
363
|
+
#-----------------------------------------------------------------------
|
|
364
|
+
# === PROJECT-LOCAL RULES BELOW ===
|
|
365
|
+
# Add project-specific overrides here. This section is preserved during sync.
|
|
366
|
+
#-----------------------------------------------------------------------
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!-- Levelup Software Directory.Build.props Template -->
|
|
2
|
+
<!-- Version: 1.0.0 -->
|
|
3
|
+
<!--
|
|
4
|
+
This file defines centralized build settings for all projects in the solution.
|
|
5
|
+
Do not modify settings above the PROJECT-LOCAL marker. Add overrides below it.
|
|
6
|
+
-->
|
|
7
|
+
<Project>
|
|
8
|
+
|
|
9
|
+
<!-- Lvlup.Build meta-package provides analyzers and default settings -->
|
|
10
|
+
<ItemGroup>
|
|
11
|
+
<PackageReference Include="Lvlup.Build" PrivateAssets="all" />
|
|
12
|
+
</ItemGroup>
|
|
13
|
+
|
|
14
|
+
<!-- Project-wide settings -->
|
|
15
|
+
<PropertyGroup>
|
|
16
|
+
<TargetFramework>net10.0</TargetFramework>
|
|
17
|
+
<LangVersion>latest</LangVersion>
|
|
18
|
+
<Nullable>enable</Nullable>
|
|
19
|
+
<ImplicitUsings>enable</ImplicitUsings>
|
|
20
|
+
<Company>{{COMPANY_NAME}}</Company>
|
|
21
|
+
<Copyright>Copyright (c) {{COMPANY_NAME}}. All rights reserved.</Copyright>
|
|
22
|
+
</PropertyGroup>
|
|
23
|
+
|
|
24
|
+
<!-- Analyzer settings -->
|
|
25
|
+
<PropertyGroup>
|
|
26
|
+
<EnableNETAnalyzers>true</EnableNETAnalyzers>
|
|
27
|
+
<AnalysisLevel>latest</AnalysisLevel>
|
|
28
|
+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
|
29
|
+
<RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
|
|
30
|
+
</PropertyGroup>
|
|
31
|
+
|
|
32
|
+
<!-- Code coverage settings -->
|
|
33
|
+
<PropertyGroup>
|
|
34
|
+
<CollectCoverage>true</CollectCoverage>
|
|
35
|
+
<CoverletOutputFormat>cobertura</CoverletOutputFormat>
|
|
36
|
+
<ThresholdType>line,branch,method</ThresholdType>
|
|
37
|
+
<Threshold>80</Threshold>
|
|
38
|
+
</PropertyGroup>
|
|
39
|
+
|
|
40
|
+
<!-- Test project detection and settings -->
|
|
41
|
+
<PropertyGroup Condition="$(MSBuildProjectName.EndsWith('.Tests'))">
|
|
42
|
+
<IsPackable>false</IsPackable>
|
|
43
|
+
<IsPublishable>false</IsPublishable>
|
|
44
|
+
</PropertyGroup>
|
|
45
|
+
|
|
46
|
+
<!--
|
|
47
|
+
StyleCop configuration is provided by Lvlup.Build package.
|
|
48
|
+
To override company name, add a local stylecop.json in this directory.
|
|
49
|
+
-->
|
|
50
|
+
|
|
51
|
+
<!-- =========================================================================== -->
|
|
52
|
+
<!-- === PROJECT-LOCAL OVERRIDES BELOW === -->
|
|
53
|
+
<!-- Add project-specific settings here. This section is preserved during sync. -->
|
|
54
|
+
<!-- =========================================================================== -->
|
|
55
|
+
|
|
56
|
+
</Project>
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<!-- Levelup Software Directory.Packages.props Template -->
|
|
2
|
+
<!-- Version: 1.0.0 -->
|
|
3
|
+
<!--
|
|
4
|
+
Central Package Management (CPM) - All package versions are defined here.
|
|
5
|
+
Never specify versions in individual .csproj files.
|
|
6
|
+
Do not modify packages above the PROJECT-LOCAL marker. Add overrides below it.
|
|
7
|
+
-->
|
|
8
|
+
<Project>
|
|
9
|
+
|
|
10
|
+
<PropertyGroup>
|
|
11
|
+
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
|
12
|
+
</PropertyGroup>
|
|
13
|
+
|
|
14
|
+
<ItemGroup>
|
|
15
|
+
<!-- ===================================================================== -->
|
|
16
|
+
<!-- Build Tooling (via Lvlup.Build meta-package) -->
|
|
17
|
+
<!-- ===================================================================== -->
|
|
18
|
+
<PackageVersion Include="Lvlup.Build" Version="1.2.1" />
|
|
19
|
+
|
|
20
|
+
<!-- ===================================================================== -->
|
|
21
|
+
<!-- Testing -->
|
|
22
|
+
<!-- ===================================================================== -->
|
|
23
|
+
<PackageVersion Include="TUnit" Version="0.15.0" />
|
|
24
|
+
<PackageVersion Include="NSubstitute" Version="5.3.0" />
|
|
25
|
+
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
|
|
26
|
+
|
|
27
|
+
<!-- ===================================================================== -->
|
|
28
|
+
<!-- Microsoft Extensions -->
|
|
29
|
+
<!-- ===================================================================== -->
|
|
30
|
+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.3" />
|
|
31
|
+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.3" />
|
|
32
|
+
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.3" />
|
|
33
|
+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.3" />
|
|
34
|
+
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.3" />
|
|
35
|
+
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.3" />
|
|
36
|
+
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.3" />
|
|
37
|
+
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.3" />
|
|
38
|
+
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.3" />
|
|
39
|
+
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.3" />
|
|
40
|
+
<PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.3" />
|
|
41
|
+
|
|
42
|
+
<!-- ===================================================================== -->
|
|
43
|
+
<!-- ASP.NET Core -->
|
|
44
|
+
<!-- ===================================================================== -->
|
|
45
|
+
<!-- ASP.NET Core packages use framework reference, no explicit versions needed -->
|
|
46
|
+
|
|
47
|
+
<!-- ===================================================================== -->
|
|
48
|
+
<!-- Resilience -->
|
|
49
|
+
<!-- ===================================================================== -->
|
|
50
|
+
<PackageVersion Include="Polly" Version="8.6.0" />
|
|
51
|
+
<PackageVersion Include="Polly.Core" Version="8.6.0" />
|
|
52
|
+
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="10.3.0" />
|
|
53
|
+
|
|
54
|
+
<!-- ===================================================================== -->
|
|
55
|
+
<!-- Serialization -->
|
|
56
|
+
<!-- ===================================================================== -->
|
|
57
|
+
<PackageVersion Include="System.Text.Json" Version="10.0.3" />
|
|
58
|
+
|
|
59
|
+
</ItemGroup>
|
|
60
|
+
|
|
61
|
+
<!-- =========================================================================== -->
|
|
62
|
+
<!-- === PROJECT-LOCAL PACKAGES BELOW === -->
|
|
63
|
+
<!-- Add project-specific package versions here. Preserved during sync. -->
|
|
64
|
+
<!-- =========================================================================== -->
|
|
65
|
+
<ItemGroup>
|
|
66
|
+
|
|
67
|
+
</ItemGroup>
|
|
68
|
+
|
|
69
|
+
</Project>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Levelup Software NuGet Configuration Template -->
|
|
3
|
+
<!-- Version: 1.1.0 -->
|
|
4
|
+
<configuration>
|
|
5
|
+
<packageSources>
|
|
6
|
+
<clear />
|
|
7
|
+
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
|
|
8
|
+
</packageSources>
|
|
9
|
+
</configuration>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
|
|
3
|
+
"settings": {
|
|
4
|
+
"documentationRules": {
|
|
5
|
+
"companyName": "{{COMPANY_NAME}}",
|
|
6
|
+
"copyrightText": "Copyright (c) {companyName}. All rights reserved.",
|
|
7
|
+
"headerDecoration": "=====================================================================",
|
|
8
|
+
"documentExposedElements": true,
|
|
9
|
+
"documentInternalElements": false,
|
|
10
|
+
"documentPrivateElements": false,
|
|
11
|
+
"documentInterfaces": true,
|
|
12
|
+
"documentPrivateFields": false
|
|
13
|
+
},
|
|
14
|
+
"orderingRules": {
|
|
15
|
+
"usingDirectivesPlacement": "outsideNamespace",
|
|
16
|
+
"systemUsingDirectivesFirst": true,
|
|
17
|
+
"blankLinesBetweenUsingGroups": "omit"
|
|
18
|
+
},
|
|
19
|
+
"namingRules": {
|
|
20
|
+
"includeInferredTupleElementNames": false,
|
|
21
|
+
"tupleElementNameCasing": "camelCase"
|
|
22
|
+
},
|
|
23
|
+
"maintainabilityRules": {
|
|
24
|
+
"topLevelTypes": ["class", "interface", "struct", "enum", "delegate"]
|
|
25
|
+
},
|
|
26
|
+
"layoutRules": {
|
|
27
|
+
"newlineAtEndOfFile": "omit",
|
|
28
|
+
"allowConsecutiveUsings": true
|
|
29
|
+
},
|
|
30
|
+
"readabilityRules": {
|
|
31
|
+
"allowBuiltInTypeAliases": true
|
|
32
|
+
},
|
|
33
|
+
"spacingRules": {
|
|
34
|
+
"allowLineEndingComment": true
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|