Back to list
DaveSkender

code-completion

by DaveSkender

Stock Indicators for .NET is a C# NuGet package that transforms raw equity, commodity, forex, or cryptocurrency financial market price quotes into technical indicators and trading insights. You'll need this essential data in the investment tools that you're building for algorithmic trading, technical analysis, machine learning, or visual charting.

1,169🍴 265📅 Jan 22, 2026

SKILL.md


name: code-completion description: Quality gates checklist for completing code work before finishing implementation cycles

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}.md for indicator changes
  • Update src/MigrationGuide.V3.md for 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

GateCommandVS Code task
Lint .NET (fix)roslynator fix --properties TargetFramework=net10.0 --severity-level infoLint: .NET Roslynator (fix)
Lint all (fix)dotnet format --severity info --no-restore && npx markdownlint-cli2 --fixLint: All (fix)
Lint markdown (fix)npx markdownlint-cli2 --fixLint: Markdown (fix)
Builddotnet build -v minimal --nologoBuild: .NET Solution (incremental)
Testdotnet test --no-restore --nologoTest: Unit tests
Full checkdotnet format --no-restore && dotnet build && dotnet test --no-restore && npx markdownlint-cli2Run 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

Score

Total Score

90/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 1000以上

+15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

+5
Issue管理

オープンIssueが50未満

0/5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon