Skip to content

Latest commit

 

History

History
475 lines (387 loc) · 27.9 KB

README.de.md

File metadata and controls

475 lines (387 loc) · 27.9 KB
Skylos

Skylos

Open Source, lokal zuerst: Prüfungen auf toten Code, Sicherheitsprobleme, Secrets, Qualitätsregressionen und AI-Code-Fehler vor dem Merge.

License: Apache 2.0 codecov PyPI - Python Version PyPI version VS Code Marketplace Discord

Website | Docs | Repo Map | Quick Start | GitHub Action | VS Code Extension | Real-World Results | Benchmarks | Roadmap | Contributing

English | Deutsch | 简体中文 | Translations

Was ist Skylos?

Skylos ist eine Open-Source-CLI für statische Analyse in Python-, TypeScript-, JavaScript-, Java-, Go-, PHP-, Rust-, Dart-, C#-, C++-, Kotlin- und Shell-Repositories. Python, TypeScript/JavaScript und Java haben die tiefste Abdeckung; die Tabelle unter Sprachunterstützung zeigt die übrigen Sprachen. Skylos läuft standardmäßig lokal und kann auch als CI/CD-PR-Gate verwendet werden.

Nutze Skylos, wenn du mit einem Befehl ein Repository oder einen Pull Request prüfen möchtest auf:

  • toten Code und ungenutzte Dateien
  • Sicherheitslücken und gefährliche Datenflüsse
  • Secrets und Dependency-CVEs
  • Qualitätsregressionen wie Komplexität, doppelte Branches und tiefe Verschachtelung
  • typische Fehler in AI-generiertem Code, etwa fehlende Guards oder erfundene Helper
  • Risiken in LLM-Apps, etwa unsichere Tool-Nutzung und fehlende Ausgabevalidierung

Start in 60 Sekunden

pip install skylos
skylos .            # Probleme finden; Code und Funde bleiben auf deinem Rechner
skylos cloud        # optional: Ergebnisse pro Branch in Skylos Cloud verfolgen
skylos cicd init    # jedem Pull Request eine Skylos-Prüfung hinzufügen

Mit einem Coding-Agenten reichen zwei Befehle:

skylos setup   # einmal pro Repository: verbindet Claude Code und Codex, schreibt die PR-Prüfung, kartiert den Code
skylos open    # jeden Tag: Diagramm des Codes, Änderungen in einfacher Sprache, jeder Prüflauf

Dein Agent führt die Prüfungen selbst aus. Das Tutorial zeigt eine echte Sitzung: Der Agent beschreibt den Code, ändert ihn, wird blockiert und behebt das Problem anhand der Fix-Anleitung von Skylos.

skylos cloud führt alle Prüfungen aus, zeigt die Funde, lädt sie hoch und zeigt das Quality Gate dieses Branches mit einem Link:

✗ Quality gate on feat/login: FAILED (was PASSED on 24 Oct 15:38 UTC, 1ba9895) · 1 critical security issue
  Open: https://skylos.dev/dashboard/projects/<project>?branch=feat%2Flogin
  Next: fix the issues behind the failed gate, then run skylos cloud again.

Beim ersten Mal öffnet sich der Browser zum Anmelden und zur Projektauswahl. Gesendet werden die Funde mit Dateipfaden und Codeausschnitten von bis zu 7 Zeilen (keine bei Secrets), Branch, Commit, die Git-Autor-E-Mail jeder markierten Zeile und eine Übersicht deiner Funktionen und Klassen (Namen, Dateien, Zeilen, Größe, wer wen aufruft). Nicht dein Repository. Der Exit-Code ist auch bei fehlgeschlagenem Skylos-Cloud-Gate 0; mit --gate ist er 1 (für CI). Einen Schlüssel zum Bestehen des Gates brauchst du nie: Behebe die Funde, die es blockieren. Mehr dazu: Skylos Cloud.

Der Standardscan fokussiert sich auf toten Code. Mit -a aktivierst du zusätzlich Security-, Secret-, Quality- und Dependency-Prüfungen:

skylos . -a

Erzeuge eine Projektkonfiguration mit Grenzwerten, Ignorierregeln und Erweiterungen für Vibe-Wörterbücher:

skylos init

Erzeuge ein lokales Starter-Rule-Pack:

skylos rules init
skylos rules validate .skylos/rules/local.yml
skylos rules list --json
skylos rules list cross --json
skylos rules list --packs --json
skylos cache stats

Scans mit --quality oder -a wenden jedes .yml/.yaml-Pack in einem .skylos/rules/-Ordner zwischen gescannter Datei und Repository-Root an. In PR-CI kommen die Packs wie [tool.skylos] aus dem Base-Branch, ein Pull Request kann seine eigenen Regeln also nicht entfernen oder ändern.

Erzeuge ein GitHub-Actions-PR-Gate:

skylos cicd init
git add .github/workflows/skylos.yml
git commit -m "Add Skylos CI gate"
git push

Auf GitLab CI, Jenkins, Bitbucket Pipelines, Azure Pipelines oder CircleCI richtet derselbe Befehl das Gate für dieses CI ein; siehe Skylos on any CI.

Mehr Befehle stehen in der CLI Reference.

Häufige Workflows

Ziel Befehl Ergebnis Details
Erster Dead-Code-Scan skylos . Findet ungenutzte Funktionen, Klassen, Imports, Dateien und Fehler bei Framework-Entrypoints Dead-code docs
Security- und Quality-Audit skylos . -a Aktiviert gefährliche Datenflüsse, Secrets, Dependencies und Quality-Prüfungen Security docs
Einseitiger Bericht zum Teilen skylos report . Schreibt skylos-report.html: Urteil („Not ready: 1 blocking issue“), die fünf zuerst zu behebenden Risiken mit Fix und Doku-Link, Zahlen pro Kategorie, Unterdrücktes und nicht Geprüftes; nichts wird hochgeladen CLI output modes
KI-Gegenprüfung der Findings skylos . -a --ai-review Dead-Code-Findings in jeder Sprache und Security-Findings in Python-Dateien bekommen ein KI-Urteil: bestätigt, KI widerspricht oder unsicher. Nichts wird ausgeblendet, das Gate ändert sich nie; mit skylos cloud --ai-review erscheinen die Urteile in Skylos Cloud AI review
Optionales Python-Linting pip install "skylos[lint]" && skylos lint . Führt Ruff mit nativer Konfiguration, Ausgabe, Fixes und Exit-Codes über die Skylos-CLI aus Python linting
PR-Gate skylos cicd init Richtet das PR-Gate für dein CI ein: einen GitHub-Actions-Workflow mit Annotationen und Failure-Thresholds, oder ein Gate für GitLab CI, Jenkins, Bitbucket Pipelines, Azure Pipelines und CircleCI CI/CD guide
Lesbarer Terminalreport skylos . --format pretty Gruppiert Findings nach Datei, mit Severity, Snippets und kopierbaren file:line-Positionen CLI output modes
Interaktive Terminaltriage skylos . --tui Öffnet eine tastaturgesteuerte Ansicht für Kategorien, Findings und Details CLI output modes
IDE- und Testscript-Ausgabe skylos --format concise src/test.py Gibt nur file:line-Findings aus und endet mit Non-Zero-Exit, wenn Findings existieren CLI Reference
Change Map fürs Review skylos done map --base origin/main Zeigt jede geänderte Python- oder TypeScript/JavaScript-Funktion mit altem und neuem Code, hinzugefügten und entfernten Aufrufen, ihren Aufrufern, entfernten Sicherheitsprüfungen und dem, was zuerst zu lesen ist; aus dem Code berechnet, nicht von einem Modell geschrieben Change map
Codebase-Graph skylos graph open Zeigt jede Python- und TypeScript/JavaScript-Funktion und -Klasse (Go, Java, Rust und PHP als erster Schritt, Aufrufe nach Namen zugeordnet), gruppiert in Bereiche, wer was aufruft, Tests und ihre erwarteten Ausgaben in einer lokalen Browseransicht; markiert geänderten Code und sagt, ob die Logik gleich geblieben ist (nur wenn bewiesen). Beschreibungen in einfachem Englisch schreibt Ihr Coding-Agent, Ihr eigener Modell-Key oder Skylos gegen Credits; Skylos Cloud kann zu jedem Pull Request einen Kommentar zu Logikänderungen posten. skylos done map sortiert jede Änderung in „zuerst lesen“, „lesen“, „überfliegen“ und „überspringen“ (nur bei bewiesen gleicher Logik); die MCP-Tools dafür brauchen keinen Key Codebase graph
Review geänderter Zeilen skylos . -a --diff origin/main Fokussiert Findings auf aktive Arbeit statt auf Legacy-Schulden Quality gate docs
Laufzeitgestützter Dead-Code-Check skylos . --trace Nutzt Runtime-Traces, um False Positives bei dynamischem Code zu reduzieren Smart tracing
Lokales Rule-Pack skylos rules init Erstellt .skylos/rules/local.yml, projektspezifische YAML-Prüfungen, die Scans mit --quality und -a anwenden Custom rules
AI-gestütztes Review skylos agent scan . Statische Analyse plus optionales LLM-Review und Fix-Vorschläge AI features
LLM-App-Defense skylos defend . Findet fehlende AI-App-Guardrails, gemappt auf OWASP-LLM-Risiken AI app safety
Technical-Debt-Triage skylos debt . Sortiert Hotspots und Debt-Trends Technical debt

Was Skylos findet

Kategorie Beispiele Warum es wichtig ist
Toter Code ungenutzte Funktionen, Klassen, Imports, Paket-Entrypoints, Route-Handler reduziert Wartungskosten, ohne dynamische Frameworks unnötig zu beschädigen
Sicherheitsprobleme SQL Injection, XSS, SSRF, Path Traversal, Command Injection, unsichere Deserialisierung findet ausnutzbare Pfade, bevor Code in main landet
Secrets API-Keys, Tokens, private Credentials, Strings mit hoher Entropie verhindert, dass Credentials über Commits und PRs leaken
CI/CD-Workflows gefährliche GitHub-Actions- und GitLab-CI-Trigger, unpinned Actions/Includes, breite Tokens, OIDC-Missbrauch, Cache Poisoning, mutable Images reduziert Supply-Chain-Risiken in CI/CD vor Release-Jobs
Qualitätsregressionen Komplexität, tiefe Verschachtelung, doppelte Branches, lange Funktionen, inkonsistente Returns verhindert, dass AI-gestützte Refactorings fragilen Code erzeugen
AI-Code-Fehler erfundene Security-Calls, fehlende Decorators, unfertige Stubs, deaktivierte Controls, Netzwerkaufrufe ohne Timeouts findet häufige halluzinierte oder unvollständige Codepfade
LLM-App-Risiken unsichere Tool-Nutzung, Prompt-Injection-Exposition, fehlende Ausgabevalidierung, fehlende Rate Limits hilft Teams, AI-Features mit Guardrails zu veröffentlichen

Siehe die vollständige Rules Reference.

Wie Skylos einzuordnen ist

Skylos ersetzt nicht jeden spezialisierten Scanner. Es ist ein lokaler Repo- und PR-Checker, der mehrere häufige Review-Prüfungen hinter einer CLI bündelt.

  • Framework-aware Dead-Code-Erkennung: FastAPI, Django, Flask, pytest, SQLAlchemy, Next.js, React, Paket-Entrypoints und gängige Plugin-Muster.
  • PR-fokussierte Ausgabe: Diff-Scanning, CI-Grenzwerte, GitHub-Annotationen und Baselines für bestehende Findings.
  • Local-first-Betrieb: Die Kernanalyse benötigt keinen Cloud-Upload und keine LLM-Aufrufe.
  • Review AI-gestützter Änderungen: prüft auf entfernte Validierung, Auth, Logging, CSRF, Rate Limiting, Timeouts und andere Guards in generiertem oder editiertem Code.
  • Projektspezifische Regeln: lokale YAML-Regeln sowie erweiterbare Prompt-, Credential-, Sensitive-File- und Timeout-Wörterbücher über Config.
  • Eine CLI-Oberfläche: Dead Code, Security, Secrets, Dependencies, Quality, Technical Debt, Agent Review und AI app safety nutzen dieselbe CLI.

Installation

# Kernanalyse
pip install skylos

# LLM-gestützte Agent-Workflows
pip install "skylos[llm]"

# Ruff-Python-Linting über `skylos lint`
pip install "skylos[lint]"

# Alle veröffentlichten optionalen Extras
pip install "skylos[all]"

Container-Image:

docker pull ghcr.io/duriantaco/skylos:latest
docker run --rm -v "$PWD":/work -w /work ghcr.io/duriantaco/skylos:latest . --json --no-provenance

Quellinstallation, Container-Nutzung und optionale Dependencies stehen in der Installation.

Vibe-Checks konfigurieren

skylos init ergänzt diesen Abschnitt in pyproject.toml:

[tool.skylos.vibe]
extra_phantom_names = ["verify_enterprise_auth"]
extra_phantom_decorators = ["tenant_admin_required"]
extra_credential_names = ["tenant_signing_secret"]
extra_network_timeout_calls = ["vendor_sdk.fetch"]

LLM-Prompt-Templates liest Skylos nicht aus dem Repository: Übergib eine vertrauenswürdige Datei mit --prompt-template KIND=PATH an skylos agent scan, agent audit, agent security-quick oder agent security-deep. Ein Template erweitert den eingebauten Prompt; es ersetzt weder den JSON-only-Ausgabevertrag noch die Sicherheitsregeln für untrusted code. Vibe-Wörterbücher helfen Teams, Skylos lokale Fake-Auth-Helper, projektspezifische Credential-Namen, sensible Dateien und Netzwerkaufrufe mit Timeout-Pflicht beizubringen.

Sprachunterstützung

Sprache Dead Code Security Quality Hinweise
Python Ja Ja Ja stärkste Abdeckung; framework-aware statische Analyse und optionales Tracing
TypeScript / JavaScript Ja Ja Ja Tree-sitter-Parsing, Paketgraph-Reachability, Framework-Konventionen
Java Ja Ja Ja Tree-sitter-Parsing und strukturierte Security-Flow-Analyse
Go Ja¹ Teilweise¹ Teilweise Dead-Code- und ausgewählte Security-Benchmark-Abdeckung
PHP Ja Ja Nein PHP-Parser-Abdeckung; Security verfolgt Request-Daten (Superglobals, Laravel/Symfony/PSR-7/CodeIgniter-Requests, Drupal Form API) innerhalb einer Funktion oder Datei bis zu Command- und Code-Ausführung, include, XSS über echo/<?= ?>/Blade {!! !!}, SQL, SSRF, unserialize und Dateipfaden; nicht über Funktions- oder Dateigrenzen und nicht in Twig-Templates
Rust Experimentell⁴ Teilweise Teilweise Rust-Parser; Command Injection, Path Traversal, direkt unerreichbare Anweisungen und doppelte Zweige
Dart Ja³ Teilweise³ Nein Dart-Parser-Abdeckung; Security prüft Command Injection, Path Traversal und SSRF
C# Teilweise Teilweise Teilweise C#-Symbole, unerreichbare Anweisungen in direkten Blöcken, ASP.NET-bewusste Security-Prüfung (Anfragequellen, typgebundene Senken, unsichere Deserialisierung, XSS) und NuGet-Inventarisierung (.csproj und packages.lock.json)
C++ Teilweise Nein Nein nur scheinbar ungenutzte dateilokale Funktionen in .cpp, .cc, .cxx; C++-Header werden für Referenzen gelesen
Kotlin Teilweise² Teilweise² Nein lexikalische Symbolerkennung; meldet nur private Deklarationen und Imports; Security-Prüfungen für Spring, Ktor, Servlets und Android-WebView
Shell Nein Teilweise Nein Shell-Script-Security-Prüfungen für Command Injection, SSRF und Path Traversal

¹ Dead-Code- und Security-Prüfungen für Go brauchen die native skylos-go-Engine. Seit 4.50 enthalten die PyPI-Wheels für Linux, macOS und Windows (x86_64 und arm64) sie, ebenso das Container-Image; die offizielle GitHub Action baut sie. Auf anderen Plattformen zeigt skylos doctor den Befehl zum Bauen. Ohne sie laufen nur die Go-Quality-Prüfungen, und die Go-Dateien werden als nicht analysiert gemeldet.

² Kotlin-Dead-Code meldet nur private Typen und Funktionen sowie ungenutzte Imports; jede nicht-private Deklaration gilt als verwendet. Jede Verwendung im Code zählt: Typpositionen, ::foo, Trailing-Lambda- und Infix-Aufrufe, String-Templates und KDoc-Links; Imports von Operator-Konventionen (getValue, plus, component1) werden nie gemeldet. Die Kotlin-Security arbeitet lexikalisch (ohne Kotlin-Parser) mit den Java-Quellen und -Senken: Spring-Handler-Parameter, HttpServletRequest, Ktor call.parameters, call.receive<T>() und WebFlux ServerRequest als Eingaben; Command Injection (SKY-D212, SKY-D203), SQL inklusive String-Templates (SKY-D211), Path Traversal (SKY-D215), SSRF (SKY-D216), Open Redirect (SKY-D230), HTML- Antworten (SKY-D226), ObjectInputStream/XMLDecoder (SKY-D204, SKY-D233), XXE (SKY-D236), SpEL/JNDI (SKY-D237) sowie Android-WebView-JavaScript-Bridges (SKY-D257) und Dateizugriff über file://-URLs (SKY-D258). Der Datenfluss wird innerhalb einer Funktion oder Route-Lambda verfolgt. Die Secret-Prüfung deckt .kt- und .kts-Dateien ab.

³ Dart-Prüfungen brauchen das optionale Extra skylos[dart] (pip install "skylos[dart]", benötigt einen C-Compiler). Ohne es meldet ein Scan .dart-Dateien als nicht analysiert (SKY-ANALYSIS-INCOMPLETE).

⁴ Rust-Dead-Code ist experimentell: Trait-Methodenaufrufe, über Crates hinweg genutzte pub-Elemente, Re-Exports und Makros werden nicht aufgelöst.

Inline-Unterdrückung funktioniert in jeder Sprache oben gleich: skylos: ignore[SKY-D211] Grund (nur die genannten Regeln), skylos: ignore (alle Regeln) oder ein Block skylos: ignore-start … skylos: ignore-end in einem Kommentar auf der Zeile des Befunds (# in Python, Shell und PHP; // oder ein einzeiliges /* */ in den anderen). Das gilt für Dead Code, Security, Quality und Secrets; Text in einem String-Literal zählt nie, und Marker anderer Tools (#nosec, //nolint, NOSONAR, @SuppressWarnings) blenden keine Skylos-Befunde aus.

--secrets liest außerdem Shell-Skripte (auch solche ohne Endung, die mit einer Shell-#!-Zeile beginnen), C- und C++-Quellen und -Header, Dockerfiles, Terraform .tf/.tfvars/.hcl, .properties, XML, Gradle, .npmrc und .pypirc. Rust-Kandidaten haben höchstens Konfidenz 40, also unter dem Standard-Schwellenwert 60; sie erscheinen nur mit --confidence 40.

C#-Dead-Code-Funde sind konservativ: Bei einer vollständigen Analyse einer ausführbaren oder Web-Anwendung gelten unreferenzierte öffentliche Typen und Methoden als Kandidaten mit geringer Konfidenz. Bibliotheks-APIs, geschützte Member sowie bekannte Framework- und konfigurierte Einstiegspunkte bleiben extern erreichbar. Konstruktoren gelten nur dann als ungenutzte Funktionen, wenn sie privat sind, Parameter haben und nichts sie aufruft (die Regel von Roslyn IDE0051); Controller- und Dependency-Injection-Konstruktoren ruft das Framework auf. Die Erreichbarkeit von C#-Quelldateien wird nicht analysiert. Die Qualitätsprüfung erkennt Anweisungen nach einem unbedingten return, throw, break oder continue im direkten Block, bietet aber keine vollständige Kontrollflussanalyse. Die Sicherheitsprüfung (--danger) wertet ASP.NET-Anfragedaten als Eingabe: Parameter von Controller-Actions, Razor-Page-Handlern, Minimal APIs und [From*] sowie Request.*, nicht Konstruktor- oder gewöhnliche Service-Parameter, und folgt ihnen in Hilfsmethoden derselben Datei. Sie meldet SQL-Injection (ADO.NET, EF-Raw-SQL, Dapper), Command Injection, Path Traversal, SSRF (HttpClient, WebClient, WebRequest, RestSharp), Open Redirects (nicht bei LocalRedirect oder einer Url.IsLocalUrl-Prüfung), unsichere Deserialisierung (BinaryFormatter-Familie, Json.NET TypeNameHandling, SimpleTypeResolver) und XSS über HtmlString/Html.Raw/MarkupString und HTML-Antworten, jeweils mit CWE. Methoden, die nur den Namen einer Senke teilen (das GetAsync eines Repositorys), zählen nur mit dem passenden Empfängertyp. Generische Secret-Prüfungen decken .cs-Dateien mit --secrets oder -a ab. .cshtml/.razor-Markup, dateiübergreifender Datenfluss und Ausdrücke in interpolierten Raw-Strings werden von der C#-Taint-Analyse noch nicht verfolgt. SCA inventarisiert direkte NuGet-PackageReference-Einträge in .csproj-Dateien. Nur unbedingte, exakt festgelegte Version-Werte ([version]) ohne lokale Update-/Remove-Änderungen werden gegen Advisories geprüft; VersionOverride und zentral verwaltete Versionen nicht. Gewöhnliche NuGet-Versionen sind Untergrenzen. Ohne aufgelöste Lockdatei bleiben installierte Version und Schwachstellenstatus unbekannt. Mit packages.lock.json (RestorePackagesWithLockFile) wird jedes aufgelöste Paket je Ziel-Framework geprüft, auch transitive.

Regelfamilien und Scanner-Scope stehen in der Rules Reference.

Abhängigkeitsdateien

Die Prüfung auf bekannte Schwachstellen in Abhängigkeiten (--sca, in -a enthalten) liest diese Dateien als Daten und fragt OSV nach den darin festgehaltenen exakten Versionen:

Ökosystem Lockdateien (alle erfassten Pakete) Manifeste (nur exakte Versionen; Bereiche gelten als nicht aufgelöst) Genannt, aber nicht gelesen
PyPI uv.lock, poetry.lock, Pipfile.lock requirements.txt, pyproject.toml, setup.cfg, setup.py Pipfile ohne Lockdatei
npm package-lock.json, npm-shrinkwrap.json, pnpm-lock.yaml, yarn.lock, bun.lock package.json bun.lockb
Go go.mod go.sum vor Go 1.17
Maven / Gradle gradle.lockfile pom.xml (Properties, lokale Parent-POMs und <dependencyManagement>) build.gradle(.kts) ohne gradle.lockfile
crates.io Cargo.lock Cargo.toml (=x.y.z)
Packagist composer.lock composer.json
RubyGems Gemfile.lock Gemfile ohne Lockdatei
Pub pubspec.lock pubspec.yaml
NuGet packages.lock.json *.csproj ([x.y.z])

Git-, Pfad-, SDK-, Private-Registry- und Branch-Einträge (dev-*) werden als nicht geprüft aufgeführt und nie als öffentliche Pakete abgefragt. Details in Dependency scanning.

Benchmark-Snapshot

Skylos enthält eingecheckte Regression-Suites für Dead Code, Security, Quality, Agent Review und AI-Code-Fehler. Diese sind Regression-Gates, keine unabhängigen Genauigkeitsbenchmarks. Die Fallzahlen ändern sich; die jeweiligen Manifeste sind die aktuelle Quelle.

Methodik, datierte Ergebnisse, Vergleichszeilen und Grenzen stehen in BENCHMARK.md.

Projektnachweise

Skylos-unterstützte Dead-Code-Cleanup-PRs wurden in Black, NetworkX, Optuna, mitmproxy, pypdf und beets gemerged. Das sind akzeptierte Cleanup-PRs, keine Empfehlungen oder Endorsements dieser Projekte. Siehe Real-World Results.

Integrationen

Integration Link Zweck
GitHub Action GitHub Action PR-Gates, Annotationen und CI-Enforcement
VS Code Extension VS Code extension Findings im Editor und AI-gestützte Fixes
MCP server MCP setup Skylos-Scans für AI Agents und Coding Assistants bereitstellen
Docker image Installation Skylos ohne lokale Python-Installation ausführen
Skylos Cloud Cloud workflow optionale Upload- und Dashboard-Workflows

GitHub-Actions-Workflow über die CLI erzeugen:

skylos cicd init --upload
skylos cicd init --upload --scan-path apps/api

Der erzeugte Workflow lädt per GitHub OIDC zu Skylos Cloud hoch: Pushes auf den Default-Branch und Pull Requests auf den Default-Branch. Ein Pull Request wird als nicht vertrauenswürdige Daten in einem Job ohne Zugangsdaten gescannt und von einem Job hochgeladen, der seine Dateien nie auscheckt. Monorepo-Subprojekte gehen über --scan-path.

Dokumentationskarte

Bedarf Dokument
Installation, Quellinstallation und Docker Installation
Erster Scan und Kernworkflows Quick Start
CLI-Befehle, Flags und Beispiele CLI Reference
CLI-Ausgabemodi, Pretty Reports und TUI-Steuerung CLI Output Modes
Optionales Ruff-Linting über die Skylos-CLI Python Linting
CI-Setup, PR-Gates, Annotationen und Branch Protection CI/CD
Dead-Code-Verhalten und Framework-Awareness Dead Code Detection
Security-Scanning und Taint-Analyse Security Analysis
Rule-ID-Präfixe und Produktterminologie Rule Dictionary
Agent Scan, Verifikation, Remediation und Modellsetup AI Features
AI-app-safety-Prüfungen und LLM-Guardrails AI app safety
Was eine Änderung berührt und was zuerst zu lesen ist (skylos done map) Change map
Tutorial: skylos setup, skylos open, die Pipeline-Ansicht und die PR-Prüfung, aus einer echten Agenten-Sitzung Tutorial
Wer was aufruft, in einfachen Worten, und ob geänderte Logik gleich geblieben ist (skylos graph) Codebase graph
MCP-Server-Setup MCP Server
Real-world gemergte Cleanup-PRs Real-World Results
Baselines, Filtering, Suppressions und Whitelists Configuration
Smart Tracing Smart Tracing
Regelfamilien und Sprachunterstützung Rules Reference
Cloud-Uploads und Dashboard-Flow CLI to Dashboard
VS Code Extension VS Code Extension
Benchmarks und Methodik BENCHMARK.md
Security Policy SECURITY.md
Release-Prozess RELEASE_WORKFLOW.md
Contribution-Prioritäten ROADMAP.md
Contributing CONTRIBUTING.md

Häufige Fragen

Ersetzt Skylos Bandit, Semgrep, CodeQL oder Vulture?

Nein. Skylos kann parallel zu diesen Tools laufen. Der Fokus liegt auf framework-aware Dead-Code-Signal, PR-Gating, AI-era Regression Checks und einem kombinierten Workflow für Dead Code, Security, Secrets und Quality.

Benötigt Skylos ein LLM?

Nein. Die Kernanalyse läuft lokal ohne API Keys. LLM-Funktionen sind optional über skylos[llm] und Agent-Befehle.

Ersetzt Skylos Ruff?

Nein. skylos lint ist ein optionaler Einstiegspunkt, der an Ruff delegiert. Die Installation erfolgt mit pip install "skylos[lint]"; normale Skylos-Scans führen Ruff nicht aus.

Kann ich nur geänderten Code prüfen?

Ja. Lokal mit skylos . -a --diff origin/main oder in CI-Gates, die auf neue Findings fokussieren.

Wie gehe ich mit absichtlich dynamischem Code um?

Nutze Baselines, Whitelists, Inline-Suppressions oder Runtime-Tracing. Siehe configuration docs und smart tracing docs.

Mitwirken und Support

  • Sicherheitsprobleme über SECURITY.md melden.
  • Bugs und False Positives mit minimaler Reproduktion öffnen.
  • ROADMAP.md für sinnvolle Contribution-Bereiche prüfen.
  • Vor Pull Requests CONTRIBUTING.md lesen.
  • QUALITY.md beschreibt Qualitäts- und Gate-Erwartungen.
  • Für Community-Support dem Discord beitreten.

Lizenz

Skylos steht unter der Apache License 2.0.