Skip to content

Quality Hub Overview

The Quality Hub is SnakeFlow’s most powerful feature: a comprehensive code quality system that runs 85+ checks in parallel and streams results live to the sidebar as each check completes.

The legacy sequential build pipeline (devManager.pipeline.*, lint → typecheck → test → build in one terminal) was removed — use custom checks in Quality Hub for the same commands, or rely on built-in and CLI providers. Ctrl+Alt+F runs all enabled Quality Hub checks.

Check Categories

Built-in (70+)

Mostly pure Node.js heuristics; some built-ins call npx or local CLIs (tsc, ESLint, Biome, YAMLlint, Spectral, …) and skip when unavailable. Covers project health, code size, security, architecture, TypeScript/React/Next.js hints, ORM schema and migration hygiene (No Manual Migrations, Migrations CI Gate, Squawk extras), and more.

CLI Tools (20+)

External tools (Semgrep, Trivy, Checkov, hadolint, etc.). Returns skip gracefully if the tool is not installed.

Cloud Services (9)

SonarCloud, Snyk, Codecov, Coveralls, Codacy, DeepSource, Qlty, CodeQL, Aikido — reads data already collected by your CI/CD or vendor APIs; no full local workspace upload.

Custom Checks

Project-specific checks — any package script or shell command, integrated into the Quality Hub panel.

How It Works

  1. Click Run (play) in the Quality Hub panel title bar — or press Ctrl+Alt+F, or run SnakeFlow: Run Quality Checks from the Command Palette. For a faster loop on a large repo, use SnakeFlow: Run Quality Checks (changed files only) (or Run Changed Files Only on a single check / category) so providers scope work to git-changed files where supported.
  2. While checks run, Stop (square icon) appears in the title bar — use it to cancel the full run.
  3. Checks run in parallel; results appear in the sidebar as each check completes.
  4. Results are sorted: failwarnerrorpassskip.
  5. Expand any result to see details and file paths.
  6. Use inline actions on a row: Run This Check (re-run one provider), Copy Result, or Stop This Check while it is still running.
  7. On a category header (Built-in, CLI, Cloud, Custom), use Run Category Checks or Stop Category Checks to scope the run.
  8. Send to Chat — sends the aggregated report to your editor’s AI chat (see Report to Chat for auto-send options).
  9. Save — writes the same style of report as a Markdown file under .snakeflow/ in your project root (timestamped filename). You can open it from the notification.
  10. From the Command Palette you can Refresh Quality Results (re-render the tree) or Clear Quality Results (reset the panel).

Title bar order (when not running): Run → Send to Chat → Save report → Configure (opens Settings filtered to devManager.quality) → Add custom check → Remove custom check.

Skipping Directories

The extension has 70+ built-in exclusions: node_modules, dist, build, __pycache__, target, vendor, .venv, .next, .nuxt, .svelte-kit, coverage, etc.

Add project-specific directories that are not already excluded:

"devManager.quality.skipDirs": [
"generated",
"proto-gen",
"legacy",
".output",
"storybook-static"
]

Skipping Files

Use devManager.quality.skipFiles to exclude specific paths or patterns from checks that walk source files (line counts, TODOs, import depth, test ratio, and similar) and from Semgrep result aggregation.

"devManager.quality.skipFiles": [
"docs/generated/api.md",
"*.vsix",
"**/generated-types.ts"
]

Use forward slashes relative to the project root. Forms supported: exact relative path, patterns like *.vsix, or suffix globs such as **/file.ext.

Performance Settings

"devManager.quality.timeout": 30,
"devManager.quality.maxBuffer": 50
SettingDefaultDescription
timeout30Max runtime per check in minutes
maxBuffer50Max stdout buffer per check in MB

Report to Chat

"devManager.quality.chatReport": "onFail",
"devManager.quality.chatPrompt": "Analyze these results and prioritize the 3 most important issues to fix."
chatReport valueBehavior
autoAfter every run, open chat with the report
onFail (default)Open chat only when there are failures
manualNever auto-send; use Send to Chat when you want
neverDo not send to chat

chatPrompt — optional text prepended when sending the report.