Skip to content

Projektkonfiguration ​

Legen Sie mit wenigen Zeilen in config.yaml fest, wie die Workflows Änderungen planen sollen.

openspec/config.yaml teilt den Workflows mit, wie Änderungen geplant werden sollen.

Die folgende Konfiguration aktualisiert beispielsweise die Erstellungsregeln für das tasks.md-Artefakt:

yaml
rules:
  tasks:
    - End every task with a commit

Wenn der Agent ausgeführt wird, greift er auf diese Regeln zu und stellt sicher, dass jede Aufgabe mit einem Commit-Schritt endet.

Halten Sie Regeln kurz. Alles hier gelangt in den Kontext des Agents, und ausführliche Regeln können die Ausgabe verschlechtern.

Funktionsweise ​

config.yaml enthält Anweisungen, die der Agent erhält, wenn er Artefakte erstellt oder den Workflow durchläuft.

Bei jedem Durchlauf geschieht Folgendes:

  1. Sie führen einen Workflow aus (z. B. /openspec-propose).
  2. Der Agent ruft den Befehl openspec instructions auf.
  3. Der Befehl liest Ihren Kontext und Ihre Regeln aus config.yaml.
  4. Die integrierten Anweisungen von OpenSpec und Ihre Anpassungen werden zu einem einzigen Prompt für den Agenten kombiniert.
  5. Der Agent befolgt diesen Prompt, um das Artefakt zu schreiben.

Wenn ein context-Feld und die Regel von oben auf dieser Seite vorhanden sind, liefert openspec instructions für tasks.md beispielsweise Folgendes zurück (gekürzt und kommentiert):

xml
<artifact id="tasks" change="add-dark-mode" schema="spec-driven">

  <!-- Aus Ihrer config.yaml: Kontext -->
  <project_context>
    Designs and tasks must cover Windows, macOS, and Linux
    Write all artifacts in Spanish
  </project_context>

  <!-- Aus Ihrer config.yaml: Regeln für tasks -->
  <rules>
    - End every task with a commit
  </rules>

  <!-- Von OpenSpec: die integrierten Anweisungen -->
  <instruction>
    ...how to write a good tasks.md...
  </instruction>

  <template>
    ...the tasks.md structure to fill in...
  </template>

</artifact>

Ihre Konfiguration kommt zuerst, dann die integrierte Anweisung und Vorlage von OpenSpec. Regeln ergänzen die integrierten Inhalte und ersetzen sie nie. Änderungen an config.yaml erreichen den Agenten beim nächsten Durchlauf.

Die Felder ​

Drei Felder bestimmen, was der Agent erhält. Der genaue Vertrag jedes Felds (Typen, Grenzen, Validierung) ist unter Projektkonfiguration (config.yaml) dokumentiert.

FeldFunktionEingefügt in
contextAnweisungen, die der Agent immer erhältAlles: jedes Artefakt, apply, archive
rulesZusätzliche Anweisungen für ein ArtefaktNur die Erstellung dieses Artefakts
operationsAnleitung zur Ausführung eines Workflow-SchrittsNur apply und archive

Die übrigen Felder von config.yaml (schema, store, references) bestimmen, welches Schema und welchen OpenSpec-Root ein Projekt verwendet. Die Vertragsseite behandelt sie.

Die letzte Spalte ist exakt: Ein Feld erreicht nur die dort aufgeführten Schritte. Insbesondere empfängt verify niemals rules. Es prüft die Implementierung anhand der Artefakte, so wie sie geschrieben sind.

context ​

context ist Hintergrundwissen, das der Agent erhält, wenn er ein Artefakt erstellt, Aufgaben anwendet oder eine Änderung archiviert.

yaml
context: |
  We ship cross-platform. Designs and tasks must cover Windows, macOS, and Linux
  Write all artifacts in Spanish

Verwenden Sie context für Fakten und Einschränkungen, die die Workflow-Ausgabe beeinflussen sollen. Behalten Sie dauerhafte Projektdokumentation in den Dokumentationsdateien des Projekts und lassen Sie alles weg, was der Agent durch Lesen des Codes lernen kann.

Eine andere Sprache: Da context jedes Artefakt erreicht, können Sie Write all artifacts in Spanish. hinzufügen, um den Agenten anzuweisen, die Artefakte proposal, spec, design und tasks auf Spanisch zu schreiben.

rules ​

rules sind an ein Artefakt gebunden, mit der Artefakt-ID als Schlüssel. Jede Zeile wird zu den integrierten Anweisungen dieses Artefakts hinzugefügt:

yaml
rules:
  proposal:
    - Keep proposals under 500 words
  tasks:
    - Every UI task includes a Playwright test

Proposals bleiben nun kurz und tasks.md plant immer Browser-Tests. Alle anderen Artefakte bleiben unberührt.

operations ​

operations steuert, wie der Agent apply und archive ausführt, und nicht, was die Artefakte sagen:

yaml
operations:
  apply:
    guidance:
      - Run the linter before marking a task complete
  archive:
    guidance:
      - Summarize what shipped before archiving

Während apply lintet der Agent, während er Aufgaben abschließt. Während archive schließt er mit einer Zusammenfassung ab.

Wenn config.yaml nicht ausreicht ​

Config fügt dem Standard-Workflow Anweisungen hinzu, kann aber nicht ändern, welche Artefakte existieren oder wie sie strukturiert sind. Wenn Sie diese Kontrollebene wünschen oder Regeln das Verhalten nicht konsistent steuern, forken Sie ein Schema.