Code completion checklist
Execute these quality gates before finishing any code work cycle to ensure the codebase is production-ready.
When to use this skill
Use this skill when:
- •Implementing new features
- •Fixing bugs
- •Refactoring code
- •Modifying existing functionality
- •Making any changes to C# source code
- •Adding or updating indicators
- •A human reminds you to run the "code completion checklist"
Required tools
- •#tool:runCommands - Execute shell commands for linting, building, testing
- •#tool:read - Read error output and configuration files
Workflow
Step 0: Remove dead code
Before running quality gates:
- •Delete obsolete or commented-out code
- •Remove unused imports, variables, helper methods
- •Strip debugging aids (
Console.WriteLine, breakpoints) - •Remove scratch files (
.bak,.new,.debug.*)
Step 1: Run linters
Execute linting for all code (markdown + .NET):
dotnet format --severity info --no-restore npx markdownlint-cli2 --fix
Success criteria: Zero linting errors and zero warnings. All warnings must be fixed before completing work.
CRITICAL: Suppressing warnings is not an appropriate way to resolve lint or build warnings.
Individual checks (if needed):
# Roslynator only (fast) roslynator fix --properties TargetFramework=net10.0 --severity-level info --verbosity normal # .NET format only dotnet format --severity info --no-restore # Markdown only npx markdownlint-cli2 --fix
VS Code tasks: Lint: All (fix) or Lint: .NET code & markdown files (fix) (faster)
Handle failures:
- •Review reported issues
- •Fix manually or re-run fix commands
- •For unfixable issues, document justification and seek approval
- •Re-run lint to verify
Step 2: Build solution
Verify compilation and build artifacts:
dotnet build "Stock.Indicators.sln" -v minimal --nologo
Success criteria: All projects compile without errors. No build warnings.
VS Code task: Build: .NET Solution (incremental)
Handle failures:
- •Review compilation errors and warnings
- •Fix code issues, type errors, or configuration problems
- •Ensure all packages are restored (
dotnet restore) - •Re-run build to verify
Step 3: Run test suites
Execute all unit tests (integration tests run in CI only):
dotnet test "Stock.Indicators.sln" --no-restore --nologo
Success criteria: All tests pass. No test failures. Coverage ≥ 98% (validated in CI/CD via Codacy).
VS Code task: Test: Unit tests
Handle failures:
- •Review test output and failure messages
- •Fix code or update tests as appropriate
- •Re-run test suite to verify
Step 4: Update documentation
When changing indicators or public APIs:
- •Update XML documentation for changed public APIs
- •Update
docs/_indicators/{IndicatorName}.mdfor indicator changes - •Update
src/MigrationGuide.V3.mdfor breaking changes - •Update obsolete bridge files (
src/Obsolete.V3.*.cs) for deprecated APIs
Step 5: Verify and commit
After all gates pass:
dotnet format --verify-no-changes --severity info --no-restore dotnet build "Stock.Indicators.sln" -v minimal --nologo dotnet test "Stock.Indicators.sln" --no-build --nologo npx markdownlint-cli2
- •Review changes for completeness
- •Address any remaining warnings
- •Document intentional deviations
- •Commit changes if working in unattended mode
Quality standards
Before marking work complete:
- •Zero linting errors and zero warnings - all warnings must be fixed
- •Zero build warnings and zero errors - all compilation warnings must be addressed
- •All projects build successfully
- •All tests pass with no warnings
- •Coverage threshold maintained (≥ 98% validated in CI/CD)
- •Documentation updated for public API changes
- •Migration bridges updated for breaking changes
Critical: Treat all warnings as errors. Do not ignore, defer, suppress, or accept warnings regardless of scope, type, or reason. Warnings indicate issues that must be resolved.
Abbreviated verification command:
dotnet format --no-restore && dotnet build && dotnet test --no-restore && npx markdownlint-cli2
Required indicator components
For new or updated indicators, MUST include:
- •Series implementation (
*.StaticSeries.cs) - •Catalog entry and registration (
*.Catalog.cs) - •Unit tests with full coverage (
*.Tests.cs) - •Documentation (
docs/_indicators/{Name}.md) - •Regression test baseline (if algorithm changed)
- •Performance benchmark (for complex indicators)
Required migration bridge
When changing public APIs, MUST:
- •Add
[Obsolete]attribute with migration message - •Update
src/MigrationGuide.V3.md - •Update bridge files:
- •
src/Obsolete.V3.Indicators.cs - •
src/Obsolete.V3.Other.cs
- •
Best practices
- •Run linters frequently during development, not just at the end
- •Address linting errors as they appear
- •Use VS Code tasks for quick access to quality gates
- •Run specific tests during active development
- •Document exceptions when disabling analyzer rules
Quick reference
| Gate | Command | VS Code task |
|---|---|---|
| Lint .NET (fix) | roslynator fix --properties TargetFramework=net10.0 --severity-level info | Lint: .NET Roslynator (fix) |
| Lint all (fix) | dotnet format --severity info --no-restore && npx markdownlint-cli2 --fix | Lint: All (fix) |
| Lint markdown (fix) | npx markdownlint-cli2 --fix | Lint: Markdown (fix) |
| Build | dotnet build -v minimal --nologo | Build: .NET Solution (incremental) |
| Test | dotnet test --no-restore --nologo | Test: Unit tests |
| Full check | dotnet format --no-restore && dotnet build && dotnet test --no-restore && npx markdownlint-cli2 | Run sequentially |
Configuration files
Linting:
- •Analyzers: #file:../../../src/Directory.Build.props
- •.NET format: #file:../../../.editorconfig
- •Roslynator: Global configuration
- •Markdown: #file:../../../.markdownlint-cli2.jsonc
Build:
- •Solution: #file:../../../Stock.Indicators.sln
- •Project: #file:../../../src/Indicators.csproj
- •Dependencies: #file:../../../src/Directory.Packages.props
Test:
- •Unit tests: #file:../../../tests/tests.unit.runsettings
- •Regression: #file:../../../tests/tests.regression.runsettings
- •Integration: #file:../../../tests/tests.integration.runsettings
About maintenance of this file
When lint/build/test commands change or new quality gates are added, update this skill file to reflect current workflow
Last updated: January 2, 2026