Documentação/CLI do Feature Rollout
FEATURE ROLLOUT · DOCUMENTAÇÃO

Feature Rollout no terminal

Referência completa da CLI oficial: instalação, login, sintaxe, flags, arquivos de entrada e respostas para cada comando de gestão disponível.

Instalar e vincular

shell
curl -fsSL https://feature-rollout.dev/cli/install.sh | bash
fr login
fr whoami

Requisitos e atualização

CHAVE
DESCRIÇÃO
NODE.JS
20.9 ou superior
PLATAFORMA
https://feature-rollout.dev por padrão
VERSÃO
fr --version; a versão documentada é 0.6.0
ATUALIZAR
Execute novamente o instalador público; checksum e versão são verificados antes da instalação

Ajuda, versão e autenticação

O login usa um código temporário confirmado no navegador. A credencial fica em ~/.config/feature-rollout/credentials.json com permissão 0600, dura 90 dias e pode ser revogada pelo terminal.

01

fr --version

Imprime a versão instalada; use este valor ao diagnosticar compatibilidade ou atualizar o binário.

REFERÊNCIA
COMANDOshell
fr --version
SAÍDAtext
0.6.0
02

fr --help

Lista recursos, convenções de entrada, variáveis de ambiente e comandos de identidade.

REFERÊNCIA
COMANDOshell
fr --help
SAÍDAtext
Feature Rollout CLI 0.6.0

Uso:
  fr login [--host URL] [--no-open]
  fr <recurso> <ação> [opções]
  fr help <recurso>
03

fr help <recurso>

Mostra todas as ações, identificadores e formatos de entrada aceitos por um recurso.

REFERÊNCIA
COMANDOshell
fr help feature
SAÍDAtext
Feature Rollout CLI 0.6.0 · feature

  fr feature list --portfolio
  fr feature create --portfolio --data JSON | --input ARQUIVO
  fr feature get --feature
  fr feature update --feature --data JSON | --input ARQUIVO
  fr feature delete --feature --confirm VALOR
04

fr login

Inicia o device flow, abre o navegador e salva o token pessoal somente após sua aprovação.

IDENTIDADE
--no-open
Não abre o navegador automaticamente.
--host
Usa outra origem da plataforma.
COMANDOshell
fr login
SAÍDAtext
Confirme este código no navegador:

  FR-W7KM-2Q9P

https://feature-rollout.dev/cli/auth?code=FR-W7KM-2Q9P

Navegador aberto. Aguardando autorização…
Autenticado com sucesso como leo@contafacil.com.
05

fr whoami

Mostra a conta vinculada, a origem da plataforma e as empresas acessíveis. O alias fr status executa a mesma consulta.

IDENTIDADE
--json
Imprime a identidade completa em JSON.
--host
Consulta outra origem da plataforma.
COMANDOshell
fr whoami
SAÍDAtext
Leonardo Caldas <leo@contafacil.com>
Plataforma: https://feature-rollout.dev
Workspaces:
  conta-facil · Conta Fácil (owner)
06

fr logout

Revoga a sessão pessoal no servidor e remove a credencial salva na máquina.

IDENTIDADE
--host
Revoga a sessão salva para outra origem.
COMANDOshell
fr logout
SAÍDAtext
Sessão removida de https://feature-rollout.dev.

Como passar dados

Os exemplos usam arquivos JSON porque são mais fáceis de revisar e versionar. Para alterações pequenas, substitua --input arquivo.json por --data '{"campo":"valor"}'. Nunca use os dois na mesma chamada.

CHAVE
DESCRIÇÃO
--input ARQUIVO
Lê o corpo JSON de um arquivo local
--data JSON
Envia o corpo JSON inline
--confirm VALOR
Confirma nome ou ID antes de uma exclusão
--host URL
Aponta a chamada para outro ambiente
FEATURE_ROLLOUT_URL
Define a origem padrão sem repetir --host
FEATURE_ROLLOUT_TOKEN
Injeta token em ambientes efêmeros sem salvar credencial

Saídas, erros e exit codes

Resultados são impressos como JSON formatado. Downloads imprimem o caminho salvo e exclusões bem-sucedidas retornam Operação concluída.. Qualquer falha escreve uma mensagem em stderr e encerra com status diferente de zero, adequado para scripts.

text
Erro: VALIDATION_FAILED: A entrada não atende ao contrato da operação. · requestId req_01J5…

$ echo $?
1
Correlação

Guarde o requestId exibido em erros; ele identifica a chamada nos logs da plataforma.

Empresas

Crie e administre empresas, consulte os projetos associados e remova uma empresa com confirmação explícita.

fr company5 ações documentadas
01

fr company list

Lista empresas acessíveis no escopo informado.

LEITURA
COMANDOshell
fr company list
SAÍDAjson
{
  "companies": [
    {
      "id": "6ed807bd-7480-45d9-a95b-483649833a22",
      "slug": "conta-facil",
      "name": "Conta Fácil",
      "kind": "Empresa",
      "role": "owner",
      "canManage": true,
      "projectCount": 3
    }
  ]
}
02

fr company create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr company create --input company-create.json
ARQUIVO DE INPUTjson
{
  "name": "Conta Fácil"
}
SAÍDAjson
{
  "company": {
    "id": "6ed807bd-7480-45d9-a95b-483649833a22",
    "slug": "conta-facil",
    "name": "Conta Fácil",
    "kind": "Empresa",
    "role": "owner",
    "canManage": true,
    "projectCount": 3
  }
}
03

fr company get

Obtém o recurso e seus relacionamentos visíveis.

LEITURA
--company
Slug ou UUID da empresa.
COMANDOshell
fr company get --company
SAÍDAjson
{
  "company": {
    "id": "6ed807bd-7480-45d9-a95b-483649833a22",
    "slug": "conta-facil",
    "name": "Conta Fácil",
    "kind": "Empresa",
    "role": "owner",
    "canManage": true,
    "projectCount": 3
  }
}
04

fr company update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--company
Slug ou UUID da empresa.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr company update --company --input company-update.json
ARQUIVO DE INPUTjson
{
  "name": "Conta Fácil Brasil"
}
SAÍDAjson
{
  "company": {
    "id": "6ed807bd-7480-45d9-a95b-483649833a22",
    "slug": "conta-facil",
    "name": "Conta Fácil Brasil",
    "kind": "Empresa",
    "role": "owner",
    "canManage": true,
    "projectCount": 3
  }
}
05

fr company delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--company
Slug ou UUID da empresa.
--confirm
Nome ou ID atual exigido antes da exclusão.
COMANDOshell
fr company delete --company --confirm "Conta Fácil"
SAÍDAtext
Operação concluída.

Projetos

Liste, crie, edite, transfira ou exclua projetos dentro das empresas autorizadas.

fr project6 ações documentadas
01

fr project list

Lista projetos acessíveis no escopo informado.

LEITURA
--company
Slug ou UUID da empresa.
COMANDOshell
fr project list --company
SAÍDAjson
{
  "workspace": {
    "id": "6ed807bd-7480-45d9-a95b-483649833a22",
    "slug": "conta-facil",
    "name": "Conta Fácil",
    "kind": "Empresa",
    "role": "owner",
    "canManage": true,
    "projectCount": 3
  },
  "projects": [
    {
      "id": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
      "workspaceId": "6ed807bd-7480-45d9-a95b-483649833a22",
      "slug": "checkout",
      "name": "Checkout",
      "description": "Jornada de pagamento do e-commerce.",
      "portfolioCount": 1
    }
  ]
}
02

fr project create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr project create --input project-create.json
ARQUIVO DE INPUTjson
{
  "workspace": "conta-facil",
  "name": "Checkout",
  "description": "Jornada de pagamento do e-commerce."
}
SAÍDAjson
{
  "project": {
    "id": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
    "workspaceId": "6ed807bd-7480-45d9-a95b-483649833a22",
    "slug": "checkout",
    "name": "Checkout",
    "description": "Jornada de pagamento do e-commerce.",
    "portfolioCount": 1,
    "workspace": "conta-facil"
  }
}
03

fr project get

Obtém o recurso e seus relacionamentos visíveis.

LEITURA
--project
UUID do projeto.
COMANDOshell
fr project get --project
SAÍDAjson
{
  "project": {
    "id": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
    "workspaceId": "6ed807bd-7480-45d9-a95b-483649833a22",
    "slug": "checkout",
    "name": "Checkout",
    "description": "Jornada de pagamento do e-commerce.",
    "portfolioCount": 1
  }
}
04

fr project update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--project
UUID do projeto.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr project update --project --input project-update.json
ARQUIVO DE INPUTjson
{
  "name": "Checkout & Pagamentos",
  "description": "Plataforma de pagamentos."
}
SAÍDAjson
{
  "project": {
    "id": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
    "workspaceId": "6ed807bd-7480-45d9-a95b-483649833a22",
    "slug": "checkout",
    "name": "Checkout & Pagamentos",
    "description": "Plataforma de pagamentos.",
    "portfolioCount": 1
  }
}
05

fr project delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--project
UUID do projeto.
--confirm
Nome ou ID atual exigido antes da exclusão.
COMANDOshell
fr project delete --project --confirm "Checkout"
SAÍDAtext
Operação concluída.
06

fr project transfer

Move o projeto e seus descendentes para outra empresa autorizada.

ESCRITA
--project
UUID do projeto.
--to
Slug ou UUID da empresa de destino.
--confirm
Nome atual do projeto.
COMANDOshell
fr project transfer --project --to plataforma-brasil --confirm "Checkout"
SAÍDAjson
{
  "transfer": {
    "workspaceSlug": "plataforma-brasil",
    "workspaceName": "Plataforma Brasil",
    "featureId": "FEAT-142"
  }
}

Portfólios

Gerencie as aplicações ou produtos que organizam features, documentos, ambientes e repositórios.

fr portfolio5 ações documentadas
01

fr portfolio list

Lista portfólios acessíveis no escopo informado.

LEITURA
--project
UUID do projeto.
COMANDOshell
fr portfolio list --project
SAÍDAjson
{
  "project": {
    "id": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
    "workspaceId": "6ed807bd-7480-45d9-a95b-483649833a22",
    "slug": "checkout",
    "name": "Checkout",
    "description": "Jornada de pagamento do e-commerce.",
    "portfolioCount": 1
  },
  "portfolios": [
    {
      "id": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
      "projectId": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
      "slug": "checkout-web",
      "name": "Checkout Web",
      "description": "Aplicação do checkout."
    }
  ]
}
02

fr portfolio create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--project
UUID do projeto.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr portfolio create --project --input portfolio-create.json
ARQUIVO DE INPUTjson
{
  "name": "Checkout Web",
  "description": "Aplicação do checkout.",
  "repository": "conta-facil/checkout",
  "defaultBranch": "main"
}
SAÍDAjson
{
  "portfolio": {
    "id": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "projectId": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
    "slug": "checkout-web",
    "name": "Checkout Web",
    "description": "Aplicação do checkout.",
    "repository": "conta-facil/checkout",
    "defaultBranch": "main"
  }
}
03

fr portfolio get

Obtém o recurso e seus relacionamentos visíveis.

LEITURA
--portfolio
UUID do portfólio.
COMANDOshell
fr portfolio get --portfolio
SAÍDAjson
{
  "portfolio": {
    "id": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "projectId": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
    "slug": "checkout-web",
    "name": "Checkout Web",
    "description": "Aplicação do checkout."
  }
}
04

fr portfolio update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--portfolio
UUID do portfólio.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr portfolio update --portfolio --input portfolio-update.json
ARQUIVO DE INPUTjson
{
  "name": "Checkout Omnichannel",
  "description": "Checkout web e mobile."
}
SAÍDAjson
{
  "portfolio": {
    "id": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "projectId": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
    "slug": "checkout-web",
    "name": "Checkout Omnichannel",
    "description": "Checkout web e mobile."
  }
}
05

fr portfolio delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--portfolio
UUID do portfólio.
--confirm
Nome ou ID atual exigido antes da exclusão.
COMANDOshell
fr portfolio delete --portfolio --confirm "Checkout Web"
SAÍDAtext
Operação concluída.

Features

Gerencie unidades de entrega planejada e todo o contexto de prontidão associado.

fr feature5 ações documentadas
01

fr feature list

Lista features acessíveis no escopo informado.

LEITURA
--portfolio
UUID do portfólio.
COMANDOshell
fr feature list --portfolio
SAÍDAjson
{
  "portfolio": {
    "id": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "projectId": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
    "slug": "checkout-web",
    "name": "Checkout Web",
    "description": "Aplicação do checkout."
  },
  "features": [
    {
      "id": "FEAT-142",
      "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
      "kind": "feature",
      "useCase": "Pagamento com Pix",
      "name": "Pix no checkout",
      "status": "Em progresso",
      "score": 72,
      "deployWindow": "2026-08-21 22:00 BRT"
    }
  ]
}
02

fr feature create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--portfolio
UUID do portfólio.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr feature create --portfolio --input feature-create.json
ARQUIVO DE INPUTjson
{
  "id": "FEAT-142",
  "useCase": "Pagamento com Pix",
  "name": "Pix no checkout",
  "description": "Permite concluir a compra por Pix.",
  "kind": "feature",
  "status": "Em progresso",
  "score": 72,
  "deployWindow": "2026-08-21 22:00 BRT"
}
SAÍDAjson
{
  "feature": {
    "id": "FEAT-142",
    "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "kind": "feature",
    "useCase": "Pagamento com Pix",
    "name": "Pix no checkout",
    "status": "Em progresso",
    "score": 72,
    "deployWindow": "2026-08-21 22:00 BRT",
    "description": "Permite concluir a compra por Pix."
  }
}
03

fr feature get

Obtém o recurso e seus relacionamentos visíveis.

LEITURA
--feature
ID de negócio da feature ou hotfix.
COMANDOshell
fr feature get --feature
SAÍDAjson
{
  "feature": {
    "id": "FEAT-142",
    "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "kind": "feature",
    "useCase": "Pagamento com Pix",
    "name": "Pix no checkout",
    "status": "Em progresso",
    "score": 72,
    "deployWindow": "2026-08-21 22:00 BRT"
  }
}
04

fr feature update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--feature
ID de negócio da feature ou hotfix.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr feature update --feature --input feature-update.json
ARQUIVO DE INPUTjson
{
  "status": "Pronta para rollout",
  "score": 94,
  "deployWindow": "2026-08-21 22:00 BRT"
}
SAÍDAjson
{
  "feature": {
    "id": "FEAT-142",
    "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "kind": "feature",
    "useCase": "Pagamento com Pix",
    "name": "Pix no checkout",
    "status": "Pronta para rollout",
    "score": 94,
    "deployWindow": "2026-08-21 22:00 BRT"
  }
}
05

fr feature delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--feature
ID de negócio da feature ou hotfix.
--confirm
Nome ou ID atual exigido antes da exclusão.
COMANDOshell
fr feature delete --feature --confirm FEAT-142
SAÍDAtext
Operação concluída.

Hotfixes

Use os mesmos contratos de feature com o tipo hotfix aplicado e filtrado automaticamente pela CLI.

fr hotfix5 ações documentadas
01

fr hotfix list

Lista hotfixes acessíveis no escopo informado.

LEITURA
--portfolio
UUID do portfólio.
COMANDOshell
fr hotfix list --portfolio
SAÍDAjson
{
  "portfolio": {
    "id": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "projectId": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
    "slug": "checkout-web",
    "name": "Checkout Web",
    "description": "Aplicação do checkout."
  },
  "features": [
    {
      "id": "FIX-031",
      "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
      "kind": "hotfix",
      "useCase": "Recuperar checkout",
      "name": "Corrigir timeout do Pix",
      "status": "Em validação",
      "score": 88,
      "deployWindow": "imediata"
    }
  ]
}
02

fr hotfix create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--portfolio
UUID do portfólio.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr hotfix create --portfolio --input hotfix-create.json
ARQUIVO DE INPUTjson
{
  "id": "FIX-031",
  "useCase": "Pagamento com Pix",
  "name": "Corrigir timeout do Pix",
  "description": "Permite concluir a compra por Pix.",
  "kind": "hotfix",
  "status": "Em progresso",
  "score": 72,
  "deployWindow": "2026-08-21 22:00 BRT"
}
SAÍDAjson
{
  "feature": {
    "id": "FIX-031",
    "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "kind": "hotfix",
    "useCase": "Pagamento com Pix",
    "name": "Corrigir timeout do Pix",
    "status": "Em progresso",
    "score": 72,
    "deployWindow": "2026-08-21 22:00 BRT",
    "description": "Permite concluir a compra por Pix."
  }
}
03

fr hotfix get

Obtém o recurso e seus relacionamentos visíveis.

LEITURA
--feature
ID de negócio da feature ou hotfix.
COMANDOshell
fr hotfix get --feature
SAÍDAjson
{
  "feature": {
    "id": "FIX-031",
    "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "kind": "hotfix",
    "useCase": "Recuperar checkout",
    "name": "Corrigir timeout do Pix",
    "status": "Em validação",
    "score": 88,
    "deployWindow": "imediata"
  }
}
04

fr hotfix update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--feature
ID de negócio da feature ou hotfix.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr hotfix update --feature --input hotfix-update.json
ARQUIVO DE INPUTjson
{
  "status": "Pronta para rollout",
  "score": 94,
  "deployWindow": "2026-08-21 22:00 BRT",
  "kind": "hotfix"
}
SAÍDAjson
{
  "feature": {
    "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "kind": "hotfix",
    "useCase": "Recuperar checkout",
    "status": "Pronta para rollout",
    "score": 94,
    "deployWindow": "2026-08-21 22:00 BRT"
  }
}
05

fr hotfix delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--feature
ID de negócio da feature ou hotfix.
--confirm
Nome ou ID atual exigido antes da exclusão.
COMANDOshell
fr hotfix delete --feature --confirm FIX-031
SAÍDAtext
Operação concluída.

Ambientes

Leia ou substitua o catálogo de serviços e estados de local, homologação e produção.

fr environment2 ações documentadas
01

fr environment get

Obtém o recurso e seus relacionamentos visíveis.

LEITURA
--portfolio
UUID do portfólio.
COMANDOshell
fr environment get --portfolio
SAÍDAjson
{
  "categories": [
    {
      "key": "payments",
      "label": "Pagamentos",
      "groups": [
        {
          "title": "APIs",
          "detailALabel": "Versão",
          "detailBLabel": "Região",
          "rows": [
            {
              "name": "checkout-api",
              "description": "Orquestra pagamentos do checkout.",
              "detailA": "v2.8.0",
              "detailB": "sa-east-1",
              "local": {
                "value": "Disponível",
                "tone": "good"
              },
              "homologation": {
                "value": "Disponível",
                "tone": "good"
              },
              "production": {
                "value": "Mudança pendente",
                "tone": "warn"
              },
              "service": "checkout-api"
            }
          ]
        }
      ]
    }
  ]
}
02

fr environment replace

Substitui integralmente o catálogo atual pelo JSON informado.

ESCRITA
--portfolio
UUID do portfólio.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr environment replace --portfolio --input environment-replace.json
ARQUIVO DE INPUTjson
{
  "categories": [
    {
      "key": "payments",
      "label": "Pagamentos",
      "groups": [
        {
          "title": "APIs",
          "detailALabel": "Versão",
          "detailBLabel": "Região",
          "rows": [
            {
              "name": "checkout-api",
              "description": "Orquestra pagamentos do checkout.",
              "detailA": "v2.8.0",
              "detailB": "sa-east-1",
              "local": {
                "value": "Disponível",
                "tone": "good"
              },
              "homologation": {
                "value": "Disponível",
                "tone": "good"
              },
              "production": {
                "value": "Mudança pendente",
                "tone": "warn"
              },
              "service": "checkout-api"
            }
          ]
        }
      ]
    }
  ]
}
SAÍDAjson
{
  "categories": [
    {
      "key": "payments",
      "label": "Pagamentos",
      "groups": [
        {
          "title": "APIs",
          "detailALabel": "Versão",
          "detailBLabel": "Região",
          "rows": [
            {
              "name": "checkout-api",
              "description": "Orquestra pagamentos do checkout.",
              "detailA": "v2.8.0",
              "detailB": "sa-east-1",
              "local": {
                "value": "Disponível",
                "tone": "good"
              },
              "homologation": {
                "value": "Disponível",
                "tone": "good"
              },
              "production": {
                "value": "Mudança pendente",
                "tone": "warn"
              },
              "service": "checkout-api"
            }
          ]
        }
      ]
    }
  ]
}

Loops de verificação

Defina sequências locais ou globais de prompts, checks e scripts para validação repetível.

fr loop5 ações documentadas
01

fr loop list

Lista loops de verificação acessíveis no escopo informado.

LEITURA
--portfolio
UUID do portfólio.
COMANDOshell
fr loop list --portfolio
SAÍDAjson
{
  "canManage": true,
  "loops": [
    {
      "id": "cc65d1b5-6bee-4024-9d27-3623ba83491d",
      "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
      "scope": "local",
      "name": "Revisão antes do merge",
      "description": "Valida implementação e testes.",
      "steps": [
        {
          "title": "Executar testes",
          "kind": "code",
          "script": "npm test"
        }
      ]
    }
  ]
}
02

fr loop create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--portfolio
UUID do portfólio.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr loop create --portfolio --input loop-create.json
ARQUIVO DE INPUTjson
{
  "name": "Revisão antes do merge",
  "description": "Valida implementação e testes.",
  "scope": "local",
  "steps": [
    {
      "title": "Executar testes",
      "kind": "code",
      "script": "npm test",
      "prompt": "",
      "question": "",
      "expectedType": "boolean",
      "expectedValue": "",
      "repeatMode": "once",
      "repeatCount": null
    }
  ]
}
SAÍDAjson
{
  "loop": {
    "id": "cc65d1b5-6bee-4024-9d27-3623ba83491d",
    "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "scope": "local",
    "name": "Revisão antes do merge",
    "description": "Valida implementação e testes.",
    "steps": [
      {
        "title": "Executar testes",
        "kind": "code",
        "script": "npm test",
        "prompt": "",
        "question": "",
        "expectedType": "boolean",
        "expectedValue": "",
        "repeatMode": "once",
        "repeatCount": null
      }
    ]
  }
}
03

fr loop get

Obtém o recurso e seus relacionamentos visíveis.

LEITURA
--loop
UUID do loop de verificação.
COMANDOshell
fr loop get --loop
SAÍDAjson
{
  "loop": {
    "id": "cc65d1b5-6bee-4024-9d27-3623ba83491d",
    "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "scope": "local",
    "name": "Revisão antes do merge",
    "description": "Valida implementação e testes.",
    "steps": [
      {
        "title": "Executar testes",
        "kind": "code",
        "script": "npm test"
      }
    ]
  }
}
04

fr loop update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--loop
UUID do loop de verificação.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr loop update --loop --input loop-update.json
ARQUIVO DE INPUTjson
{
  "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
  "name": "Revisão antes do rollout",
  "description": "Valida o release completo.",
  "scope": "local",
  "steps": [
    {
      "title": "Score mínimo",
      "kind": "check",
      "prompt": "",
      "script": "",
      "question": "O score de prontidão é suficiente?",
      "expectedType": "min_score",
      "expectedValue": "90",
      "repeatMode": "until_resolved",
      "repeatCount": null
    }
  ]
}
SAÍDAjson
{
  "loop": {
    "id": "cc65d1b5-6bee-4024-9d27-3623ba83491d",
    "applicationId": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "scope": "local",
    "name": "Revisão antes do rollout",
    "description": "Valida o release completo.",
    "steps": [
      {
        "title": "Score mínimo",
        "kind": "check",
        "prompt": "",
        "script": "",
        "question": "O score de prontidão é suficiente?",
        "expectedType": "min_score",
        "expectedValue": "90",
        "repeatMode": "until_resolved",
        "repeatCount": null
      }
    ]
  }
}
05

fr loop delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--loop
UUID do loop de verificação.
COMANDOshell
fr loop delete --loop
SAÍDAtext
Operação concluída.

Fases

Organize a implementação da feature em fases ordenadas e acompanhe suas tarefas.

fr phase5 ações documentadas
01

fr phase list

Lista fases acessíveis no escopo informado.

LEITURA
--feature
ID de negócio da feature ou hotfix.
COMANDOshell
fr phase list --feature
SAÍDAjson
{
  "phases": [
    {
      "id": "15f8c035-c4f6-4314-b61d-6471c7a0a499",
      "featureId": "FEAT-142",
      "key": "observability",
      "title": "Observabilidade",
      "status": "Em progresso",
      "position": 3
    }
  ]
}
02

fr phase create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--feature
ID de negócio da feature ou hotfix.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr phase create --feature --input phase-create.json
ARQUIVO DE INPUTjson
{
  "key": "observability",
  "title": "Observabilidade",
  "description": "Métricas, logs e alertas.",
  "status": "Em progresso",
  "position": 3
}
SAÍDAjson
{
  "phase": {
    "id": "15f8c035-c4f6-4314-b61d-6471c7a0a499",
    "featureId": "FEAT-142",
    "key": "observability",
    "title": "Observabilidade",
    "status": "Em progresso",
    "position": 3,
    "description": "Métricas, logs e alertas."
  }
}
03

fr phase get

Obtém o recurso e seus relacionamentos visíveis.

LEITURA
--phase
UUID da fase.
COMANDOshell
fr phase get --phase
SAÍDAjson
{
  "phase": {
    "id": "15f8c035-c4f6-4314-b61d-6471c7a0a499",
    "featureId": "FEAT-142",
    "key": "observability",
    "title": "Observabilidade",
    "status": "Em progresso",
    "position": 3
  }
}
04

fr phase update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--phase
UUID da fase.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr phase update --phase --input phase-update.json
ARQUIVO DE INPUTjson
{
  "status": "Concluída",
  "position": 3
}
SAÍDAjson
{
  "phase": {
    "id": "15f8c035-c4f6-4314-b61d-6471c7a0a499",
    "featureId": "FEAT-142",
    "key": "observability",
    "title": "Observabilidade",
    "status": "Concluída",
    "position": 3
  }
}
05

fr phase delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--phase
UUID da fase.
--confirm
Nome ou ID atual exigido antes da exclusão.
COMANDOshell
fr phase delete --phase --confirm 15f8c035-c4f6-4314-b61d-6471c7a0a499
SAÍDAtext
Operação concluída.

Tarefas

Crie trabalho executável com detalhes, critérios de aceite, progresso e fase responsável.

fr task5 ações documentadas
01

fr task list

Lista tarefas acessíveis no escopo informado.

LEITURA
--feature
ID de negócio da feature ou hotfix.
COMANDOshell
fr task list --feature
SAÍDAjson
{
  "tasks": [
    {
      "id": "TASK-318",
      "featureId": "FEAT-142",
      "phaseId": "15f8c035-c4f6-4314-b61d-6471c7a0a499",
      "title": "Adicionar alerta de erro Pix",
      "area": "Observabilidade",
      "status": "Concluída",
      "progress": 100
    }
  ]
}
02

fr task create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--feature
ID de negócio da feature ou hotfix.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr task create --feature --input task-create.json
ARQUIVO DE INPUTjson
{
  "id": "TASK-318",
  "title": "Adicionar alerta de erro Pix",
  "description": "Alertar falhas acima do baseline.",
  "implementationDetails": "Criar alerta no serviço checkout-api.",
  "acceptanceCriteria": [
    "Alerta dispara acima de 2%",
    "Runbook está vinculado"
  ],
  "phaseId": "15f8c035-c4f6-4314-b61d-6471c7a0a499",
  "status": "Não iniciada",
  "progress": 0,
  "remainingWork": "Implementar e validar em homologação."
}
SAÍDAjson
{
  "task": {
    "id": "TASK-318",
    "featureId": "FEAT-142",
    "phaseId": "15f8c035-c4f6-4314-b61d-6471c7a0a499",
    "title": "Adicionar alerta de erro Pix",
    "area": "Observabilidade",
    "status": "Não iniciada",
    "progress": 0,
    "description": "Alertar falhas acima do baseline.",
    "implementationDetails": "Criar alerta no serviço checkout-api.",
    "acceptanceCriteria": [
      "Alerta dispara acima de 2%",
      "Runbook está vinculado"
    ],
    "remainingWork": "Implementar e validar em homologação."
  }
}
03

fr task get

Obtém o recurso e seus relacionamentos visíveis.

LEITURA
--task
ID de negócio da tarefa.
COMANDOshell
fr task get --task
SAÍDAjson
{
  "task": {
    "id": "TASK-318",
    "featureId": "FEAT-142",
    "phaseId": "15f8c035-c4f6-4314-b61d-6471c7a0a499",
    "title": "Adicionar alerta de erro Pix",
    "area": "Observabilidade",
    "status": "Concluída",
    "progress": 100
  }
}
04

fr task update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--task
ID de negócio da tarefa.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr task update --task --input task-update.json
ARQUIVO DE INPUTjson
{
  "status": "Concluída",
  "progress": 100,
  "remainingWork": ""
}
SAÍDAjson
{
  "task": {
    "id": "TASK-318",
    "featureId": "FEAT-142",
    "phaseId": "15f8c035-c4f6-4314-b61d-6471c7a0a499",
    "title": "Adicionar alerta de erro Pix",
    "area": "Observabilidade",
    "status": "Concluída",
    "progress": 100,
    "remainingWork": ""
  }
}
05

fr task delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--task
ID de negócio da tarefa.
--confirm
Nome ou ID atual exigido antes da exclusão.
COMANDOshell
fr task delete --task --confirm TASK-318
SAÍDAtext
Operação concluída.

Cenários

Modele resultados verificáveis de uma feature e atualize o estado de execução.

fr scenario4 ações documentadas
01

fr scenario list

Lista cenários acessíveis no escopo informado.

LEITURA
--feature
ID de negócio da feature ou hotfix.
COMANDOshell
fr scenario list --feature
SAÍDAjson
{
  "scenarios": [
    {
      "id": "SCN-PIX-01",
      "featureId": "FEAT-142",
      "title": "Cliente paga com Pix aprovado",
      "result": "PASS",
      "meta": "Validado em homologação"
    }
  ]
}
02

fr scenario create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--feature
ID de negócio da feature ou hotfix.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr scenario create --feature --input scenario-create.json
ARQUIVO DE INPUTjson
{
  "id": "SCN-PIX-01",
  "title": "Cliente paga com Pix aprovado",
  "result": "PEND",
  "meta": "Aguardando execução em homologação"
}
SAÍDAjson
{
  "scenario": {
    "id": "SCN-PIX-01",
    "featureId": "FEAT-142",
    "title": "Cliente paga com Pix aprovado",
    "result": "PEND",
    "meta": "Aguardando execução em homologação"
  }
}
03

fr scenario update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--scenario
ID de negócio do cenário.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr scenario update --scenario --input scenario-update.json
ARQUIVO DE INPUTjson
{
  "result": "PASS",
  "meta": "Validado em homologação"
}
SAÍDAjson
{
  "scenario": {
    "id": "SCN-PIX-01",
    "featureId": "FEAT-142",
    "title": "Cliente paga com Pix aprovado",
    "result": "PASS",
    "meta": "Validado em homologação"
  }
}
04

fr scenario delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--scenario
ID de negócio do cenário.
--confirm
Nome ou ID atual exigido antes da exclusão.
COMANDOshell
fr scenario delete --scenario --confirm SCN-PIX-01
SAÍDAtext
Operação concluída.

Testes

Vincule casos de teste a cenários e registre seu último estado de verificação.

fr test5 ações documentadas
01

fr test list

Lista testes acessíveis no escopo informado.

LEITURA
--feature
ID de negócio da feature ou hotfix.
COMANDOshell
fr test list --feature
SAÍDAjson
{
  "tests": [
    {
      "id": "2620c03f-a154-48fa-b271-99653815a974",
      "featureId": "FEAT-142",
      "scenarioId": "SCN-PIX-01",
      "stableKey": "checkout.pix.success",
      "name": "conclui pagamento Pix",
      "testType": "e2e",
      "verificationStatus": "passed"
    }
  ]
}
02

fr test create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--feature
ID de negócio da feature ou hotfix.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr test create --feature --input test-create.json
ARQUIVO DE INPUTjson
{
  "scenarioId": "SCN-PIX-01",
  "stableKey": "checkout.pix.success",
  "name": "conclui pagamento Pix",
  "suite": [
    "checkout",
    "pix"
  ],
  "filePath": "tests/e2e/pix.spec.ts",
  "testType": "e2e",
  "tags": [
    "critical"
  ],
  "labels": {
    "layer": "checkout"
  },
  "verificationStatus": "passed",
  "verificationNote": "Executado no commit a73dab5."
}
SAÍDAjson
{
  "test": {
    "id": "2620c03f-a154-48fa-b271-99653815a974",
    "featureId": "FEAT-142",
    "scenarioId": "SCN-PIX-01",
    "stableKey": "checkout.pix.success",
    "name": "conclui pagamento Pix",
    "testType": "e2e",
    "verificationStatus": "passed",
    "suite": [
      "checkout",
      "pix"
    ],
    "filePath": "tests/e2e/pix.spec.ts",
    "tags": [
      "critical"
    ],
    "labels": {
      "layer": "checkout"
    },
    "verificationNote": "Executado no commit a73dab5."
  }
}
03

fr test get

Obtém o recurso e seus relacionamentos visíveis.

LEITURA
--test
UUID do caso de teste.
COMANDOshell
fr test get --test
SAÍDAjson
{
  "test": {
    "id": "2620c03f-a154-48fa-b271-99653815a974",
    "featureId": "FEAT-142",
    "scenarioId": "SCN-PIX-01",
    "stableKey": "checkout.pix.success",
    "name": "conclui pagamento Pix",
    "testType": "e2e",
    "verificationStatus": "passed"
  }
}
04

fr test update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--test
UUID do caso de teste.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr test update --test --input test-update.json
ARQUIVO DE INPUTjson
{
  "verificationStatus": "passed",
  "verificationNote": "Revalidado em homologação."
}
SAÍDAjson
{
  "test": {
    "id": "2620c03f-a154-48fa-b271-99653815a974",
    "featureId": "FEAT-142",
    "scenarioId": "SCN-PIX-01",
    "stableKey": "checkout.pix.success",
    "name": "conclui pagamento Pix",
    "testType": "e2e",
    "verificationStatus": "passed",
    "verificationNote": "Revalidado em homologação."
  }
}
05

fr test delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--test
UUID do caso de teste.
--confirm
Nome ou ID atual exigido antes da exclusão.
COMANDOshell
fr test delete --test --confirm 2620c03f-a154-48fa-b271-99653815a974
SAÍDAtext
Operação concluída.

Evidências e revisões

Registre provas, atualize metadados e grave revisões independentes aprovando ou rejeitando a evidência.

fr evidence6 ações documentadas
01

fr evidence list

Lista evidências e revisões acessíveis no escopo informado.

LEITURA
--feature
ID de negócio da feature ou hotfix.
COMANDOshell
fr evidence list --feature
SAÍDAjson
{
  "evidences": [
    {
      "id": 91,
      "featureId": "FEAT-142",
      "kind": "test-report",
      "title": "Relatório E2E do Pix",
      "doubleChecked": true,
      "scenarioRef": "SCN-PIX-01"
    }
  ]
}
02

fr evidence create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--feature
ID de negócio da feature ou hotfix.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr evidence create --feature --input evidence-create.json
ARQUIVO DE INPUTjson
{
  "kind": "test-report",
  "title": "Relatório E2E do Pix",
  "description": "Execução do fluxo aprovado.",
  "doubleChecked": false,
  "scenarioRef": "SCN-PIX-01",
  "meta": "commit a73dab5",
  "payloadType": "text",
  "contentType": "text/plain",
  "content": "12 testes passaram",
  "encoding": "utf8",
  "sourcePath": "artifacts/e2e.txt"
}
SAÍDAjson
{
  "evidence": {
    "id": 91,
    "featureId": "FEAT-142",
    "kind": "test-report",
    "title": "Relatório E2E do Pix",
    "doubleChecked": false,
    "scenarioRef": "SCN-PIX-01",
    "description": "Execução do fluxo aprovado.",
    "meta": "commit a73dab5",
    "payloadType": "text",
    "contentType": "text/plain",
    "content": "12 testes passaram",
    "encoding": "utf8",
    "sourcePath": "artifacts/e2e.txt"
  }
}
03

fr evidence update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--evidence
ID numérico da evidência.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr evidence update --evidence --input evidence-update.json
ARQUIVO DE INPUTjson
{
  "title": "Relatório E2E do Pix — homologação",
  "doubleChecked": true,
  "meta": "Revisado por QA"
}
SAÍDAjson
{
  "evidence": {
    "id": 91,
    "featureId": "FEAT-142",
    "kind": "test-report",
    "title": "Relatório E2E do Pix — homologação",
    "doubleChecked": true,
    "scenarioRef": "SCN-PIX-01",
    "meta": "Revisado por QA"
  }
}
04

fr evidence delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--evidence
ID numérico da evidência.
--confirm
Nome ou ID atual exigido antes da exclusão.
COMANDOshell
fr evidence delete --evidence --confirm 91
SAÍDAtext
Operação concluída.
05

fr evidence reviews

Lista as revisões independentes registradas para a evidência.

LEITURA
--evidence
ID numérico da evidência.
COMANDOshell
fr evidence reviews --evidence
SAÍDAjson
{
  "reviews": [
    {
      "id": "8688b3da-7e45-46f5-9ed2-341c4751bb84",
      "evidenceId": 91,
      "reviewerProvider": "openai",
      "decision": "approved",
      "score": 96,
      "rationale": "O artefato cobre o cenário."
    }
  ]
}
06

fr evidence review

Registra uma decisão auditável de aprovação ou rejeição.

ESCRITA
--evidence
ID numérico da evidência.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr evidence review --evidence --input evidence-review.json
ARQUIVO DE INPUTjson
{
  "reviewerProvider": "openai",
  "reviewerModel": "gpt-5.6",
  "decision": "approved",
  "score": 96,
  "rationale": "O artefato cobre o cenário e corresponde ao commit informado.",
  "criteria": [
    {
      "label": "Cenário coberto",
      "passed": true,
      "detail": "SCN-PIX-01 aparece no relatório."
    }
  ],
  "evidenceChecksum": "sha256:9d3c…"
}
SAÍDAjson
{
  "review": {
    "id": "8688b3da-7e45-46f5-9ed2-341c4751bb84",
    "evidenceId": 91,
    "reviewerProvider": "openai",
    "decision": "approved",
    "score": 96,
    "rationale": "O artefato cobre o cenário."
  }
}

Pull requests

Liste vínculos, sincronize o estado atual de um PR e remova vínculos obsoletos. A resposta inclui o campo stack, com a pilha de dependências derivada dos branches (stacked PRs).

fr pull-request3 ações documentadas
01

fr pull-request list

Lista pull requests acessíveis no escopo informado.

LEITURA
--feature
ID de negócio da feature ou hotfix.
COMANDOshell
fr pull-request list --feature
SAÍDAjson
{
  "pullRequests": [
    {
      "id": "9fd33a3c-2478-42b7-a668-a41e211768c4",
      "number": 482,
      "repository": "conta-facil/checkout",
      "title": "feat: adiciona pagamento Pix",
      "state": "open",
      "headBranch": "feat/pix-checkout",
      "baseBranch": "main",
      "reviewDecision": "approved",
      "ciStatus": "success",
      "stack": {
        "role": "independent",
        "depth": 0,
        "dependsOn": null
      }
    }
  ]
}
02

fr pull-request sync

Cria ou atualiza o vínculo do pull request de forma idempotente.

ESCRITA
--feature
ID de negócio da feature ou hotfix.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr pull-request sync --feature --input pull-request-sync.json
ARQUIVO DE INPUTjson
{
  "repository": "conta-facil/checkout",
  "number": 482,
  "title": "feat: adiciona pagamento Pix",
  "url": "https://github.com/conta-facil/checkout/pull/482",
  "state": "open",
  "headBranch": "feat/pix-checkout",
  "baseBranch": "main",
  "headSha": "a73dab50996b",
  "authorLogin": "leo",
  "isDraft": false,
  "reviewDecision": "approved",
  "ciStatus": "success",
  "approvalsCount": 2,
  "approvalsRequired": 2,
  "commentCount": 4,
  "additions": 318,
  "deletions": 42,
  "changedFiles": 12
}
SAÍDAjson
{
  "pullRequest": {
    "id": "9fd33a3c-2478-42b7-a668-a41e211768c4",
    "number": 482,
    "repository": "conta-facil/checkout",
    "title": "feat: adiciona pagamento Pix",
    "state": "open",
    "headBranch": "feat/pix-checkout",
    "baseBranch": "main",
    "reviewDecision": "approved",
    "ciStatus": "success",
    "stack": {
      "role": "independent",
      "depth": 0,
      "dependsOn": null
    },
    "url": "https://github.com/conta-facil/checkout/pull/482",
    "headSha": "a73dab50996b",
    "authorLogin": "leo",
    "isDraft": false,
    "approvalsCount": 2,
    "approvalsRequired": 2,
    "commentCount": 4,
    "additions": 318,
    "deletions": 42,
    "changedFiles": 12
  }
}

Riscos

Registre severidade, mitigação e contexto dos riscos ligados à feature.

fr risk4 ações documentadas
01

fr risk list

Lista riscos acessíveis no escopo informado.

LEITURA
--feature
ID de negócio da feature ou hotfix.
COMANDOshell
fr risk list --feature
SAÍDAjson
{
  "risks": [
    {
      "id": 14,
      "featureId": "FEAT-142",
      "title": "Timeout do provedor Pix",
      "severity": "ALTO",
      "mitigation": "Circuit breaker e fallback com retentativa."
    }
  ]
}
02

fr risk create

Cria um novo recurso a partir de um documento JSON.

ESCRITA
--feature
ID de negócio da feature ou hotfix.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr risk create --feature --input risk-create.json
ARQUIVO DE INPUTjson
{
  "title": "Timeout do provedor Pix",
  "severity": "ALTO",
  "mitigation": "Circuit breaker e fallback com retentativa.",
  "meta": "Owner: Payments"
}
SAÍDAjson
{
  "risk": {
    "id": 14,
    "featureId": "FEAT-142",
    "title": "Timeout do provedor Pix",
    "severity": "ALTO",
    "mitigation": "Circuit breaker e fallback com retentativa.",
    "meta": "Owner: Payments"
  }
}
03

fr risk update

Atualiza somente os campos enviados no documento JSON.

ESCRITA
--risk
ID numérico do risco.
--input
Arquivo JSON com o corpo da operação. Use --data para JSON inline.
COMANDOshell
fr risk update --risk --input risk-update.json
ARQUIVO DE INPUTjson
{
  "severity": "MÉDIO",
  "mitigation": "Circuit breaker validado em teste de carga."
}
SAÍDAjson
{
  "risk": {
    "id": 14,
    "featureId": "FEAT-142",
    "title": "Timeout do provedor Pix",
    "severity": "MÉDIO",
    "mitigation": "Circuit breaker validado em teste de carga."
  }
}
04

fr risk delete

Exclui o recurso após validar a confirmação explícita.

ESCRITA
--risk
ID numérico do risco.
--confirm
Nome ou ID atual exigido antes da exclusão.
COMANDOshell
fr risk delete --risk --confirm 14
SAÍDAtext
Operação concluída.

Documentações

Liste o centro documental, faça upload, adicione versões imutáveis e baixe o conteúdo original.

fr document4 ações documentadas
01

fr document list

Lista documentações acessíveis no escopo informado.

LEITURA
--portfolio
UUID do portfólio.
COMANDOshell
fr document list --portfolio
SAÍDAjson
{
  "portfolio": {
    "id": "8b82188a-111e-45f1-a44a-8edc7e7e2c18",
    "name": "Checkout Web"
  },
  "canManage": true,
  "documents": [
    {
      "id": "a80bf86a-29b2-44d3-b8bf-23f225968b35",
      "title": "Arquitetura do checkout",
      "currentVersion": 2,
      "versions": [
        {
          "id": "c4ac0cee-1e9a-43ef-8b47-1de78804f8ab",
          "version": 2,
          "fileName": "arquitetura-v2.pdf",
          "mimeType": "application/pdf",
          "sizeBytes": 248192
        }
      ]
    }
  ],
  "analyses": []
}
02

fr document upload

Cria um documento e sua primeira versão a partir de um arquivo local.

ARQUIVO
--portfolio
UUID do portfólio.
--file
Caminho do arquivo local, limitado a 25 MB.
--title
Título opcional do documento.
--description
Descrição opcional do documento.
COMANDOshell
fr document upload --portfolio --file arquitetura.pdf --title "Arquitetura do checkout"
SAÍDAjson
{
  "document": {
    "id": "a80bf86a-29b2-44d3-b8bf-23f225968b35",
    "title": "Arquitetura do checkout",
    "currentVersion": 2,
    "versions": [
      {
        "id": "c4ac0cee-1e9a-43ef-8b47-1de78804f8ab",
        "version": 2,
        "fileName": "arquitetura-v2.pdf",
        "mimeType": "application/pdf",
        "sizeBytes": 248192
      }
    ]
  }
}
03

fr document version

Adiciona uma versão imutável e calcula o diff documental.

ARQUIVO
--document
UUID do documento.
--file
Caminho do arquivo local, limitado a 25 MB.
--note
Nota opcional explicando a nova versão.
COMANDOshell
fr document version --document --file arquitetura-v2.pdf --note "Adiciona topologia de produção"
SAÍDAjson
{
  "version": {
    "id": "c4ac0cee-1e9a-43ef-8b47-1de78804f8ab",
    "version": 2,
    "fileName": "arquitetura-v2.pdf",
    "mimeType": "application/pdf",
    "sizeBytes": 248192,
    "versionNote": "Adiciona topologia de produção"
  }
}
04

fr document download

Baixa os bytes originais de uma versão para o caminho escolhido.

LEITURA
--version
UUID da versão do documento.
--output
Caminho onde o arquivo será salvo.
--force
Permite sobrescrever um arquivo existente.
COMANDOshell
fr document download --version --output arquitetura-v2.pdf
SAÍDAtext
/workspace/arquitetura-v2.pdf

Stacked pull requests

Um PR é empilhado quando o base branch dele é o head branch de outro PR aberto do mesmo repositório. A pilha é derivada automaticamente desse grafo de branches — não existe vínculo manual entre PRs. A aba Pull requests do painel indenta a cadeia e rotula cada PR, e fr pull-request list devolve o campo stack com role (independent, base ou stacked), depth e dependsOn.

Para empilhar: crie a branch nova a partir da branch do PR base, abra o PR apontando o base para ela e sincronize informando o baseBranch correspondente. Quando o PR base faz merge, atualize o base do PR seguinte (ex.: gh pr edit --base main) e sincronize de novo — ele passa a independent ou vira a nova base da pilha.

CHAVE
DESCRIÇÃO
INDEPENDENTE
Sem dependências e sem PRs empilhados sobre ele
BASE DA PILHA
Sustenta outros PRs; faça merge dele primeiro
APÓS #N
Depende do PR #N; a profundidade cresce a cada nível da cadeia
shell
# 1. PR base da pilha (sai da main)
git checkout -b test/FT-1042-e2e-cancelamento main
gh pr create --base main --title "test(e2e): cobrir cancelamento pelo pagador"

# 2. PR empilhado: a branch nasce da branch do PR base…
git checkout -b fix/FT-1042-reagendamento test/FT-1042-e2e-cancelamento
# …e o PR aponta o base para ela
gh pr create --base test/FT-1042-e2e-cancelamento --title "fix(cobranca): reagendar em D+1"

# 3. Vínculo na plataforma: o baseBranch define a pilha, sem vínculo manual
fr pull-request sync --feature FT-1042 --data '{
  "repository": "northbank/pix-recurrence-engine",
  "number": 482,
  "title": "fix(cobranca): reagendar em D+1",
  "url": "https://github.com/northbank/pix-recurrence-engine/pull/482",
  "state": "open",
  "headBranch": "fix/FT-1042-reagendamento",
  "baseBranch": "test/FT-1042-e2e-cancelamento"
}'

Acesso HTTP de baixo nível

Use fr api somente quando precisar testar diretamente uma operação Management. Para automações estáveis, prefira os comandos nomeados acima: eles validam identificadores, arquivos e confirmações antes da chamada.

01

fr api

Escape hatch autenticado para chamar diretamente uma rota relativa da Management API.

AVANÇADO
METHOD
GET, POST, PATCH ou DELETE.
PATH
Caminho iniciado por /, relativo a /api/v2/management.
--data
Corpo JSON inline para operações de escrita.
COMANDOshell
fr api GET '/projects?workspace=conta-facil'
SAÍDAjson
{
  "workspace": {
    "id": "6ed807bd-7480-45d9-a95b-483649833a22",
    "slug": "conta-facil",
    "name": "Conta Fácil",
    "kind": "Empresa",
    "role": "owner",
    "canManage": true,
    "projectCount": 3
  },
  "projects": [
    {
      "id": "7c57a572-2d28-43f0-9ce1-103ab32b9047",
      "workspaceId": "6ed807bd-7480-45d9-a95b-483649833a22",
      "slug": "checkout",
      "name": "Checkout",
      "description": "Jornada de pagamento do e-commerce.",
      "portfolioCount": 1
    }
  ]
}

Permissões e segurança

CHAVE
DESCRIÇÃO
LEITURA
Exige management:read e participação na empresa
ESCRITA
Exige management:write e papel owner ou admin
EXCLUIR EMPRESA
Exige papel owner e confirmação igual ao nome atual
CREDENCIAL
Nunca copie cookies do navegador; use fr login ou FEATURE_ROLLOUT_TOKEN