CommunityCodierung & Entwicklunggithub.com

Review-Stil

Überprüft, ob der Code den Projekt-Stilrichtlinien entspricht, ohne Verbesserungsvorschläge zu liefern.

Was ist Review-Stil?

Diese Skill-Komponente führt eine strikte, binäre Überprüfung des Codes auf Einhaltung der definierten Stilrichtlinien durch. Sie fungiert als Pass/Fail-Gate, was bedeutet, dass sie nur feststellt, ob Verstöße vorliegen oder nicht, und keine konstruktiven Verbesserungsvorschläge oder Code-Reviews im herkömmlichen Sinne liefert. Die Prüfung basiert ausschließlich auf den in `docs/style/` hinterlegten, phasenspezifischen Leitfäden (z.B. für Rust-Design, Implementierung oder Tests). Die Skill unterstützt eine mehrzyklische Prüfung durch die Berücksichtigung eines „Ledger“-Files, um bereits bekannte oder strittige Verstöße zu respektieren und nur neue Probleme zu melden. Das Ergebnis wird immer als strukturiertes `StyleResult`-Objekt mit Status `accept` oder `violations` sowie einer Liste der Verstöße und optionalen Themenmustern zurückgegeben.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cbgbt/bottlerocket-forest/tree/main/skills/review-style

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Fähigkeit: Code-Stil-Prüfung (Review Style)

Zweck

Überprüfen, ob der Code allen Projekt-Stilrichtlinien entspricht. Dies ist ein Bestehen/Durchfallen-Tor, keine Feedback-Sitzung.

Wann verwenden

  • TDD-Überprüfungsphase
  • PR-Review auf Einhaltung des Stils
  • Jegliche Code-Überprüfung, die eine Stilvalidierung erfordert

Erforderliche Eingaben

context_files

  • Stilleitfaden für die zu überprüfende Phase (z. B. docs/style/rust-design.md)
  • Zu überprüfende geänderte Dateien
  • Ledger-Datei (optional) für mehrzyklische Überprüfungen

context_data

  • phase: Welche Phase (Designer/Tester/Implementierer) – bestimmt, welche Stilregeln gelten
  • changed_files: Liste der zu überprüfenden Dateien

Antwortformat

Geben Sie eine strukturierte Antwort zurück, die diesem Schema entspricht:

class StyleResult(BaseModel):
    status: Literal["accept", "violations"]
    violations: list[str] = []  # Jeder Eintrag: "datei:zeile - beschreibung"
    themes: str | None = None   # Optionales Muster über die Verstöße hinweg

Wenn alle Prüfungen bestanden sind:

StyleResult(status="accept")

Wenn eine Prüfung fehlschlägt:

StyleResult(
    status="violations",
    violations=[
        "src/config.rs:23 - snafu-Selektoren auf Modulebene importiert; sollten innerhalb einer Funktion sein",
        "src/parser.rs:45 - Fehlende Given/When/Then-Kommentare im Test",
    ],
    themes="Mehrere Verstöße resultieren aus einem inkonsistenten Fehlerbehandlungsansatz"
)

Ledger-Bewusstsein

Wenn eine Ledger-Datei in context_files bereitgestellt wird:

  1. Vorherige Zyklen lesen – Überprüfen, welche Verstöße gemeldet wurden und wie der Implementierer reagiert hat
  2. AUFGELÖSTE Elemente überprüfen – Bestätigen, dass Korrekturen tatsächlich angewendet wurden
  3. BESTRITTENE Elemente respektieren – NICHT erneut melden, wenn der Grund des Implementierers gültig ist
  4. Nur NEUE Verstöße melden – Probleme, die zuvor nicht besprochen wurden

Stilleitfäden (Autoritative Quellen)

Die Stilleitfäden in docs/style/ sind die EINZIGE Quelle der Wahrheit:

  • docs/style/rust-design.md – Regeln für die Designphase (Typen, Signaturen, bon, nutype, snafu)
  • docs/style/rust-impl.md – Regeln für die Implementierungsphase (Fehlerbehandlung, Importe, keine Panics)
  • docs/style/rust-test.md – Regeln für die Testphase (Given/When/Then, test_case, Behauptungen)

Lesen Sie den anwendbaren Leitfaden und wenden Sie Ihr Urteilsvermögen an. Verlassen Sie sich nicht auf Zusammenfassungen.

Vorgehen

1. Anwendbare Regeln identifizieren

Basierend auf der Phase:

  • designer: Regeln aus rust-design.md (insbesondere die Tabelle „Projekt-Crate-Auswahl“)
  • tester: Regeln aus rust-test.md
  • implementor: Regeln aus rust-impl.md
  • Testdateien (#[cfg(test)]-Module) erhalten unabhängig von der Phase immer die Regeln aus rust-test.md

2. Jede Datei überprüfen

Prüfen gegen die anwendbaren Stilregeln. Nur eindeutige Verstöße melden, keine Stilpräferenzen.

Wichtige Prüfungen für die Designphase:

  • Zusammengesetzte Strukturen (2+ Felder) verwenden #[derive(Builder)] mit #[non_exhaustive]
  • Validierte neue Typen verwenden nutype
  • Fehler verwenden snafu mit #[snafu(module)]
  • Funktionsrümpfe sind todo!(), keine Implementierungen

Wichtige Prüfungen für die Implementierungsphase:

  • Kein unwrap()/expect() im Produktionscode
  • Snafu-Kontextselektoren innerhalb von Funktionen importieren
  • Keine Leerzeilen zwischen Importen

Wichtige Prüfungen für die Testphase:

  • Given/When/Then-Kommentare in jedem Test
  • test_case für parametrisierte Tests

3. Strukturiertes Ergebnis zurückgeben

Verwenden Sie das StyleResult-Schema. Der Orchestrator parst dies, um die nächsten Schritte zu bestimmen.

Was diese Fähigkeit NICHT tut

  • Verbesserungen vorschlagen, die nicht mit Verstößen zusammenhängen
  • Allgemeines konstruktives Feedback geben
  • Umfang/Korrektheit überprüfen (dafür ist review-scope zuständig)
  • Stilpräferenzen melden, die nicht in den Leitfäden stehen

Dies ist ein binäres Tor: Bestanden oder Verstöße.

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

ad-hoc-implementation-plan

Transform a rough plan into implement-commit ready artifacts. Allows rigorous review while implementing.

build-kit-locally

Build a kit and publish it to a locally hosted registry for development testing

build-variant-from-local-kits

Build a variant using locally published kits for development validation

deep-research

Create educational documents that build understanding progressively with citations

edit-spec-file

Edit Bottlerocket RPM spec files following project style conventions

fact-find

Quick lookup of specific facts about Bottlerocket with citations

idea-honing

Clarify feature ideas through iterative Q&A, recording insights to guide concept development

implement-commit

Implement commits from an implementation plan using a TDD pipeline

local-registry

Start and manage a local OCI registry for Bottlerocket kit development

prepare-core-kit-release

Prepare bottlerocket-core-kit for release by bumping version and updating changelog

propose-feature-concept

Create a new feature concept document to pitch the idea and explain the problem/solution

propose-feature-design

Create or update feature technical design document with architecture and implementation guidance

propose-feature-requirements

Create or update feature requirements specification using EARS notation with examples and appendices

propose-feature-test-plan

Create a test plan mapping EARS requirements and Critical Constraints to specific tests

propose-implementation-plan

Create an implementation plan with atomic commits that build toward a complete feature

review-code

Deep code review generating PR comments via principled question-driven analysis

review-scope

Verify code changes match intended scope and requirements without exceeding boundaries

test-local-twoliter

Build and test local changes to twoliter before releasing

update-twoliter

Update all Bottlerocket repositories to a new Twoliter version

Verwandte Skills