Skip to content

Configuração do projeto (config.yaml) ​

Cada campo do openspec/config.yaml: o esquema, contexto e regras com os quais este projeto planeja.

Localização ​

Cada projeto OpenSpec mantém seu arquivo de configuração em openspec/config.yaml, na raiz do projeto.

Campos ​

ChaveTipoObrigatórioEfeito
schemastringSimO esquema de fluxo de trabalho que as alterações deste projeto seguem
contextstringNãoInjetado em cada artefato, aplicação e arquivamento
rulesmapa: ID do artefato → lista de stringsNãoRegras extras adicionadas às orientações incorporadas de um artefato
operationsmapa: operação → lista de orientaçõesNãoOrientação consultiva para trabalhos de aplicação e arquivamento
storestringNãoRaiz OpenSpec de fallback quando este openspec/ é apenas de configuração
referenceslistaNãoArmazéns cujas especificações são indexadas nas instruções

Campos inválidos nunca causam falha em um comando. Cada campo é validado isoladamente, e um valor inválido é descartado com um aviso. Um arquivo que não pode ser lido ou não é YAML válido é ignorado com um aviso, exceto pelo comando openspec validate, que sai com código 1 para que a CI o detecte.

O que escrever nesses campos está coberto em Configuração do projeto.

schema ​

O esquema de fluxo de trabalho que cada alteração neste projeto segue. Os valores válidos são spec-driven ou um nome de esquema que o projeto define. Execute openspec schemas para listar os nomes de esquema disponíveis.

context ​

Texto livre injetado nas instruções de cada artefato e fornecido para aplicação e arquivamento. O limite é de 50 KB, e um valor maior é ignorado com um aviso.

rules ​

Regras extras para um artefato, adicionadas às orientações incorporadas do esquema:

yaml
rules:
  proposal:
    - Keep proposals under 500 words

Os IDs de artefato não estão restritos aos nomes incorporados, portanto artefatos de esquemas personalizados também funcionam como chaves.

operations ​

Orientação consultiva sobre como o trabalho de aplicação e arquivamento é conduzido, separada das regras de artefato:

yaml
operations:
  apply:
    guidance:
      - Keep test summaries concise

Apenas apply e archive são lidos.

store ​

Um ID de armazém usado como raiz OpenSpec, consultado apenas quando este diretório openspec/ é apenas de configuração (sem specs/ ou changes/). É um fallback, nunca uma substituição. A escada completa é Resolução de raiz.

references ​

IDs de armazéns cujas especificações o trabalho do projeto utiliza. Um índice das especificações de cada armazém (id, resumo, comando de obtenção) é adicionado à saída das instruções. O conteúdo da especificação nunca é incorporado, e a resolução de raiz nunca é afetada. Uma entrada pode ser um ID de armazém ou um mapa com id e uma fonte remote opcional para clone:

yaml
references:
  - platform-specs
  - id: billing-specs
    remote: git@github.com:acme/billing-specs.git

Exemplo ​

Um config.yaml preenchido:

yaml
schema: spec-driven

context: |
  Designs and tasks must cover Windows, macOS, and Linux
  Write all artifacts in Spanish

rules:
  proposal:
    - Keep proposals under 500 words
    - Always state what is out of scope
  tasks:
    - Break tasks into chunks of max 2 hours

operations:
  apply:
    guidance:
      - Keep test summaries concise
  archive:
    guidance:
      - Summarize the archive outcome before finishing

Nomes legados ​

openspec/config.yml é lido como um alias quando config.yaml não existe. Quando ambos os arquivos existem, config.yaml prevalece e config.yml é ignorado. O comando openspec init cria config.yaml.