code-completion by DaveSkender
Quality gates checklist for completing code work before finishing implementation cycles
Coding
1.2K Stars
265 Forks
Updated Jan 12, 2026, 04:25 AM
Why Use This
This skill provides specialized capabilities for DaveSkender's codebase.
Use Cases
- Developing new features in the DaveSkender repository
- Refactoring existing code to follow DaveSkender standards
- Understanding and working with DaveSkender's codebase structure
Skill Snapshot
Auto scan of skill assets. Informational only.
Valid SKILL.md
Checks against SKILL.md specification
Source & Community
Skill Stats
SKILL.md 222 Lines
Total Files 1
Total Size 0 B
License NOASSERTION
---
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):
```bash
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):
```bash
# 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:
```bash
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):
```bash
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:
```bash
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:
```bash
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
Name Size