CommunityCodierung & Entwicklunggithub.com

Feature-Anforderungen vorschlagen

Erstellen oder aktualisieren Sie eine formale Anforderungsspezifikation für eine Funktion unter Verwendung der EARS-Notation mit Beispielen und Anhängen.

Was ist Feature-Anforderungen vorschlagen?

Dieser Skill hilft dir, eine formale Anforderungsspezifikation für eine Funktion mithilfe der EARS-Notation (Easy Approach to Requirements Syntax) zu erstellen oder zu aktualisieren. Du beginnst mit der Überprüfung, ob das Konzeptdokument und gegebenenfalls das Ideenverfeinerungsdokument existieren, um Erkenntnisse zu gewinnen. Der Skill leitet dich Schritt für Schritt durch das Ausfüllen einer Vorlage, das Definieren von funktionalen und nicht-funktionalen Anforderungen, das Festlegen von Fehlerbehandlungsszenarien und das Hinzufügen von Anhängen für größere Beispiele. Er betont die Verwendung von EARS-Schlüsselwörtern (WHILE, WHEN, THEN, SHALL, WHERE), um testbare und spezifische Anforderungen zu formulieren. Der Skill ist plattformunabhängig, unterstützt alle CLI-basierten Entwicklungsumgebungen (wie Claude Code, Cursor, Codex) und folgt der Konvention von Feature-Dokumenten unter `docs/features/NNNN-feature-name/`. Nach der Erstellung der Anforderungen validierst du das Dokument mit bereitgestellten Bash-Befehlen und gehst dann zum nächsten Schritt über, dem Design mit dem Skill `propose-feature-design`.

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

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

Skill: Feature-Anforderungen vorschlagen

Zweck

Erstellen einer formellen Anforderungsspezifikation für eine Funktion unter Verwendung der EARS-Notation. Dies übersetzt das Konzept in testbare, spezifische Anforderungen.

Wann verwenden

  • Funktionskonzept existiert und ist genehmigt
  • Es muss genau festgelegt werden, was das System tun muss
  • Bereit, funktionale und nicht-funktionale Anforderungen zu definieren

Voraussetzungen

  • Funktionskonzeptdokument existiert unter docs/features/NNNN-feature-name/concept.md
  • Das Konzept wurde überprüft und genehmigt
  • Der Benutzer versteht den Funktionsumfang

Vorgehen

1. Überprüfen, ob das Konzept existiert

# Prüfen, ob das Konzept existiert
ls ./docs/features/NNNN-feature-name/concept.md

Falls es nicht existiert, verwenden Sie zuerst den Skill propose-feature-concept.

2. Nach Ideenverfeinerungsdokument suchen

ls ./planning/NNNN-feature-name/idea-honing.md 2>/dev/null

Falls es existiert, überprüfen Sie es auf Erkenntnisse, die die Anforderungen informieren. Die Fragen und Antworten können Randfälle und Einschränkungen aufdecken.

3. Anforderungsvorlage kopieren

cp ./docs/features/0000-templates/requirements.md ./docs/features/NNNN-feature-name/

4. Anforderungspräfix festlegen

Wählen Sie ein kurzes Präfix (2-5 Zeichen) für die Anforderungs-IDs:

  • Sollte beschreibend für die Funktion sein
  • Beispiele: SEM für semantische-Suche, REG für Registrierungsverwaltung
  • Wird wie SEM-1, SEM-2 usw. verwendet

5. Übersicht ausfüllen

Schreiben Sie eine kurze Beschreibung, was diese Spezifikation abdeckt. Verweisen Sie auf das Konzeptdokument.

6. Funktionale Anforderungen definieren

Für jede Anforderung das EARS-Format verwenden:

**WHILE** [State oder Bedingung]
**WHEN** [Auslöser oder Ereignis]
**THEN** das System **SHALL** [erforderliches Verhalten]

Inline-Beispiele nur hinzufügen, wenn sie wirklich klein sind (1-3 Zeilen):

key = "value"

Für größere Beispiele in die Anhänge verschieben.

7. Nicht-funktionale Anforderungen definieren

Leistungs-, Benutzbarkeits-, Sicherheits- oder andere Qualitätsanforderungen hinzufügen:

**WHILE** [Betriebsbedingung]
**THEN** das System **SHALL** [Leistungsanforderung]

Skalierbarkeitsfragen (diese für jede Hauptoperation stellen):

  • Was passiert, wenn es 1000x mehr Elemente gibt? 1M Dateien? 10M Zeilen?
  • Soll der Speicherverbrauch mit der Datenmenge skalieren oder konstant bleiben?
  • Was ist die akzeptable Latenz? Verschlechtert sie sich mit der Skalierung?

Diese Fragen decken Einschränkungen auf, die in der Entwurfsphase zu kritischen Einschränkungen werden. Wenn eine Operation O(1) Speicher oder O(log n) Zeit benötigt, hier angeben.

8. Fehlerbehandlung definieren

Festlegen, wie Fehler behandelt werden sollen:

**WHILE** [laufende Operation]
**WHERE** [Fehlerbedingung tritt ein]
**THEN** das System **SHALL** [Fehlerbehandlungsverhalten]

9. Anhänge hinzufügen

Für größere Beispiele, die die Anforderungen überladen würden:

  • API-Antwortschemata
  • Konfigurationsdateiformate
  • Datenstrukturen
  • Protokollspezifikationen

Jeder Anhang sollte klar gekennzeichnet sein:

## Anhang A: API-Antwortschema
## Anhang B: Konfigurationsdateiformat

10. Auf Vollständigkeit prüfen

Sicherstellen:

  • Alle Anforderungen verwenden EARS-Schlüsselwörter
  • Anforderungen sind testbar und spezifisch
  • Inline-Beispiele sind wirklich klein
  • Größere Beispiele befinden sich in Anhängen
  • Anforderungen haben eindeutige IDs mit dem gewählten Präfix

Validierung

Das Anforderungsdokument überprüfen:

# Prüfen, ob die Datei existiert
ls ./docs/features/NNNN-feature-name/requirements.md

# Prüfen, ob sie Inhalt hat
head -50 ./docs/features/NNNN-feature-name/requirements.md

# Nach EARS-Schlüsselwörtern suchen
grep -E "WHILE|WHEN|WHERE|THEN|SHALL" ./docs/features/NNNN-feature-name/requirements.md

Häufige Probleme

Fehlende EARS-Schlüsselwörter: Jede Anforderung sollte WHILE/WHEN/WHERE/THEN/SHALL verwenden.

Zu vage: Anforderungen sollten spezifisch genug sein, um getestet zu werden.

Inline-Beispiele zu groß: Alles über 3 Zeilen in einen Anhang verschieben.

Inkonsistentes Präfix: Alle Anforderungs-IDs sollten dasselbe Präfix verwenden.

Nächste Schritte

Nach der Erstellung der Anforderungen:

  1. Auf Vollständigkeit und Testbarkeit prüfen
  2. Rückmeldung von Implementierenden einholen
  3. Sobald die Anforderungen solide sind, mit dem Entwurf mit dem Skill propose-feature-design fortfahren

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-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

review-style

Verify code follows project style guides without providing improvement suggestions

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