Business rules
Each rule has a statement, where it lives (file:line), and the
test that covers it. If you change a rule, update the line here in the same
change — that's what
.docmap.yml
requires with block severity.
They all live in apps/api/src/domain/, which is pure: no IO, no
framework, no database. That's why each one has a fast, deterministic unit
test.
- RN-001 — A sessão tem cinco estados e transições fechadas
- RN-002 — Todo evento de sessão é imutável e o
seqé denso - RN-003 — A ação tem seis estados, e negada é terminal
- RN-004 — A decisão é avaliada em três estágios, e
denyvence na hora - RN-005 — Papel mínimo por tipo de ação
- RN-006 — Teto: merge em branch protegida nunca é auto-aprovável
- RN-007 — Teto: patch de instrução nunca é auto-aprovável
- RN-008 — O casamento de comando é por padrão, não por substring
- RN-009 — A história tem quatro estados, e
doneé terminal - RN-010 —
draft → readyexige quatro coisas, validadas no domínio - RN-011 — Regra de negócio sem história é achado, não erro
- RN-012 — A module removed from
module_mapdemotes the story - RN-013 — O grafo de módulos não pode ter ciclo
- RN-014 — A ordem dos gates é imutável e
awaiting_useré terminal - RN-015 — Ciclo K: o teto de correção é finito e herdado
- RN-016 — O veredito do gate prevalece sobre o enunciado da task
- RN-017 — Orçamento tem escopo exclusivo: projeto ou sessão
- RN-018 — Notificação de orçamento em 70%, 90% e 100%, sem repetir
- RN-019 —
policy = 'block'recusa a chamada;'allow'só registra - RN-020 — O modelo é resolvido em cascata, do mais específico ao mais geral
- RN-021 — Hipótese sem evidência válida não é gravada
- RN-022 — O ciclo de vida da hipótese é compare-and-swap
- RN-023 — A causa de término é classificação determinística
- RN-024 — A Anamnese só perfila competência do catálogo — guarda-corpo estrutural
- RN-025 — Apagar o perfil apaga de verdade, e o opt-out impede a re-derivação
- RN-026 — Patch de instrução negado não é reproposto
- RN-027 — Rollback de instrução é operação para frente
- RN-028 — Capability decide, não o nome do provider
- RN-029 — O bootstrap de Gitflow é idempotente e retomável
- RN-030 — Reapresentar um refresh já usado revoga a família inteira
- RN-031 — Falha de login é contada por e-mail e por IP, e o bloqueio escala
- RN-032 — Nenhuma resposta distingue conta existente de inexistente
- RN-033 — Token de verificação e de reset vale uma vez só
- RN-034 — A sessão da web vive em cookie httpOnly, com CSRF
- RN-035 — O tráfego interno engine ↔ api exige o segredo de serviço
- RN-036 — QA vira área: o Lead consolida sem mudar o contrato do gate
- RN-037 — Infra becomes an area: Workflows generates CI per provider, Lead consolidates into a single PR
- RN-038 — Agente contado no resumo do workspace = gastou tokens este mês
- RN-039 — Dot de status do projeto: risco sempre vence inatividade
- RN-040 — Binding de agente exige tool calling nativo
- RN-041 — Contagem de tokens que o provider não deu é marcada como estimada
- RN-042 — O metering registra quem ATENDEU a chamada, não só por onde ela entrou
- RN-043 — Um modelo descoberto entra desabilitado; um modelo que desaparece é marcado, nunca apagado
- RN-044 — O preço vale daqui para a frente, e o custo antigo continua conferindo
- RN-045 — Um repositório adotado só é alterado por um plano aprovado
- RN-046 — Todo repositório de projeto declara a sua origem
- RN-047 — Circuit breaker do dev agent: N bloqueios consecutivos o param, sem queimar orçamento em laço
- RN-048 — A promoção de story é do usuário por padrão; o modo muda quem dispara, nunca o que se valida
- RN-049 — Toda decisão sobre uma ação proposta fica no event log, com quem decidiu
- RN-050 — Sem PR aberta, nenhum gate abre
- RN-051 — Um preço digitado à mão vence o catálogo do provider
- RN-052 — A curadoria de modelos vale só no workspace que a decidiu
- RN-053 — Reativar a execução acorda quem está parado, dentro da sessão que já existe
- RN-054 — O handoff externo se dirige ao lead da área ou a um agente sem área — nunca a um subagente
- RN-055 — Credencial é sempre cifrada e gravada; verificar é ação à parte, com três respostas
- RN-056 — Faceta de capability vem do provider; silêncio preserva o que estava
- RN-057 — "Para que serve" é curadoria do workspace, e marcar uso não liga o modelo
- RN-058 — A chave que o AGENTE gasta é a do owner do workspace
- RN-059 — Falha de turno é evento durável com origem, e o agente fala
- RN-060 — O gasto das chaves é do owner, e só ele vê
- RN-061 — Uma falha de FERRAMENTA também é um evento, e volta para o modelo
- RN-062 — Mensagem a agente conversacional REIDRATA o processo
- RN-063 — Encerrar sem produzir é desfecho, não falha
- RN-064 — Heartbeat não encerra sessão com trabalho pendente
- RN-065 — Um module_map por SESSÃO; revisar é outra sessão
- RN-066 — Toda resposta sobre módulos traz os nomes canônicos
- RN-067 — Toda sessão nasce emitindo
session.created - RN-068 — O dev agent lê o worktree sem pedir permissão
- RN-069 — Repetir uma tarefa recria a branch, não falha
- RN-070 — Todo gate declarado aponta para a evidência que o prova
- RN-071 — Os quatro gates de autoridade do usuário não podem ser declarados automáticos
- RN-072 — Sem escolha explícita, o modelo é o do agente Criativo
- RN-073 — Uma aprovação pendente SUSPENDE o laço, não o queima
- RN-074 — A saída de terminal tem teto de bytes
- RN-075 — Comando de terminal é avaliado por onde toca, não só pelo verbo
- RN-076 — A credencial de git nunca é escrita em arquivo
- RN-077 — A origem da falha é sempre uma das quatro
- RN-078 — Falha em proteger branches pode ser reconhecida, e só ela
- RN-079 — O Psicólogo não analisa sessão sem evento analisável
- RN-080 — Regra de negócio duplicada é recusada na entrada
- RN-081 — História repetida: título igual recusa, justificativa igual avisa
- RN-082 — A credencial de git de uma ação é a do OWNER do workspace
- RN-083 — O lead decide o paralelismo; acima do teto, você autoriza
- RN-084 — A esteira exibida deriva do registro de gates
- RN-085 — O teto de iterações é por TIPO de agente
- RN-086 — Gastar com mais agentes nunca se auto-aprova
- RN-087 — O Dev Lead é o único endereço externo da execução
- RN-088 — Falha de carregamento é dita na tela; 429 não se retenta
- RN-089 — Projeto de nome repetido se desempata na barra lateral
- RN-090 — O dashboard lê o workspace, não um projeto de cada vez
- RN-091 — O navegador manda onde parou de ler; o sino é uma requisição
- RN-092 — O
projectIdé segmento de caminho, e o escopo nunca sai da raiz - RN-093 — Em produção, a api não sobe com a chave de exemplo do
statede OAuth - RN-094 — A área de agentes nasce com o projeto
- RN-095 — A leitura de repositório é contida ao projeto e limitada
- RN-096 — Toda decisão diz em português o que acontece; o payload cru nasce colapsado
- RN-097 — O tipo da sessão é intenção de criação; a execução continua sendo evento
- RN-098 — O nome da sessão soma à hashtag, nunca a substitui
- RN-099 — Atividades pagina o passado sem repolar o que não muda
- RN-100 — A ordem do sino é do SQL, não do front
- RN-101 — O mesmo gasto, duas audiências: a fatura é do owner, o consumo é de quem gastou
- RN-102 — O modelo da área é padrão herdável; divergir é decisão do agente, e voltar a herdar apaga a decisão
- RN-103 — O binding de agente é POR PROJETO, não mais global
- RN-104 — A aba deriva do tipo gravado, e cria nesse tipo
- RN-105 — Sem imagem decidida pelo Arquiteto, o container não sobe e o Code não abre
- RN-106 —
git push, PR e deploy não saem pelo terminal — mesmo dentro do escopo do projeto - RN-107 — A aba Code tem um QUARTO estado: bloqueada por decisão pendente
- RN-108 — O socket da sessão exige um ticket opaco de uso único, não o JWT reaproveitado
- RN-109 — O nome de pasta do workspace é congelado na criação, e projeto antigo mantém o UUID
- RN-110 —
blameé a 13ª operação doGitProviderContract, com o mesmo vocabulário de ausência das outras leituras - RN-111 —
listPullRequestsé a 14ª operação doGitProviderContract; a lista navegável abre o mesmo diff por id - RN-112 —
listBranchesDetailedé operação PRÓPRIA, separada delistBranches - RN-113 — Blame no editor é anotação SOB DEMANDA — um toggle, nunca embutida na leitura do arquivo
- RN-114 — Os quatro segredos irmãos do
GIT_OAUTH_STATE_SECRETtambém não sobem em produção com o valor de exemplo - RN-115 — A Anamnese pode ser pausada globalmente; a pausa é do PRODUTO, nunca apaga dado
- RN-116 — Falha ao CRIAR um handoff não derruba o agente
- RN-117 — O Psicólogo pode ser pausado globalmente; a pausa é do PRODUTO, nunca apaga dado
- RN-118 — A árvore do time expõe detalhe de execução por marco, e abre os "5 últimos"
- RN-119 — O agente ATIVO da sessão é o do
agent.activatedmais recente — nunca uma cadeia fixa - RN-120 — O poll de eventos da sessão pausa durante um turno em andamento
- RN-121 — Dev agent e QA são "executores": aba própria, fora do "Time de agentes"
- RN-122 — O botão "Parar" cancela o turno DE VERDADE, matando a task que segura a chamada de LLM
- RN-123 — Sessão criativa sem agente Criativo ativo: a primeira mensagem TAMBÉM o ativa
- RN-124 — O PO narra épico/história criados no fio, com link direto pro Backlog
- RN-125 — O aceite de handoff é INLINE no fio, com CTA pro Dev Lead apontando pra Executores
- RN-126 — Promoção de história é decidível INLINE no fio, com o mesmo mecanismo da aba Backlog
- RN-127 —
ref/pathda aba Code recusam chegar como ARRAY, não só como caminho fora do escopo - RN-128 —
sessionId/projectId/agent/agentIdsão validados ANTES de virar segmento de URL da requisição interna ao engine - RN-129 — O ToolLoop nunca grava
agent.responsevazio; falha de transporte viraagent.errordurável - RN-131 — Três corridas confirmadas AO VIVO no fio da sessão: convite por cima do histórico, indicador ansioso e turno preso em
handleReadiness - RN-135 — Ativar a execução fecha a sessão de CHAT que originou o pedido
- RN-136 — O card acionável de handoff no chat só considera quem CONVERSA nesta tela
- RN-137 — "Ativar execução" tem atalho inline no card do Dev Lead, sem baixar a exigência de papel
- RN-138 — Mensagens de um agente colapsam depois que ele passa o bastão
- RN-139 — A aba Executores lê a sessão de execução VIGENTE, nunca a mais recente do projeto
- RN-140 — Um ciclo de gate que morre no meio retoma sozinho, sem intervenção manual
- RN-141 — O conteúdo lido por
read_filetambém tem teto de bytes - RN-142 — Confirmar prontidão SEM nenhuma regra de negócio é recusado pelo engine, não só escondido na UI
- RN-143 — Um subcomando de git somente leitura só é permitido ancorado pela flag que torna a leitura inequívoca, nunca pelo verbo solto
- RN-144 — A aba Criativo não lista a sessão de execução vigente
- RN-145 — O Arquiteto também tem um botão de prontidão, e a MESMA confirmação oferece Infra e Dev Lead
- RN-146 —
agent.responsecarrega o nome do modelo que gerou a resposta - RN-147 — O cabeçalho do grupo colapsado mostra o ícone do agente, não só o nome
- RN-148 — Histórias com promoção pendente ao mesmo tempo viram carrossel, não N cards
- RN-149 — O Container level do diagrama C4 é derivado do module_map, nunca redigitado pelo modelo
- RN-150 —
search_workspacetem teto de QUANTIDADE de hits e de BYTES, cada um com sua marca - RN-151 — O badge de projeto na sidebar é aprovações pendentes, não atividade não lida
- RN-152 — A branch de uma task diz de qual dev agent e módulo ela é, no dropdown da aba Code
- RN-153 — "Auto mode": o
ApprovalCardliga autonomia pra QUALQUER ação futura de um agente - RN-154 — Os três tetos absolutos continuam bloqueando MESMO com "auto mode" ligado
- RN-155 — ordenação da timeline usa o vínculo
proposed_action.created, nuncaaction.seqcru - RN-156 — indicador de espera de 5s tem texto fixo, sem interpolar o agente
- RN-157 — criação de épico/história pelo PO vira aviso compacto, não bolha completa
- RN-158 — Markdown leve com highlight no chat
- RN-159 — Artefatos Gerados agrupados por agente
- RN-160 — "Confirmar arquitetura pronta" exige pelo menos 1 história promovida
- RN-161 — Aceitar o handoff pro Dev Lead encadeia a ativação de execução quando o papel efetivo já autoriza
- RN-162 — Perguntas estruturadas do Criativo
- RN-163 — O Criativo cumpre a promessa de tentar de novo
- RN-164 — O PO LÊ o que já existe, escopado ao projeto
- RN-165 — Épico sem história é cobrado, e o PO pergunta quando não sabe
- RN-166 — O teto de iterações do PO deixa rastro
- RN-169 — O projeto escolhe onde o código mora: Local ou Container
- RN-170 — Caminho Local é validado na CRIAÇÃO, e a recusa ensina
- RN-171 — A pergunta de lista tem saída por texto livre, por default
- RN-172 — Handoff e aprovação são o DESFECHO do turno
- RN-173 — O fio acompanha tudo que cresce, e só quem já estava no fim
- RN-174 — Ação que dispara turno de agente arma o indicador do fio
- RN-175 — Toda resposta de agente diz com qual modelo foi gerada
- RN-176 — Tabela em Markdown no fio vira tabela de verdade
- RN-177 — O log mostra tudo, e o histórico se recolhe por ORIGEM
- RN-178 — O painel da sessão lê do último para o primeiro, e a lista de regras pagina
- RN-179 — O artefato do PO é uma ÁRVORE: épico → história → tarefa
- RN-180 — O painel diz o que NÃO está mostrando
- RN-181 — Delegação de área aparece no fio
- RN-182 — O tema é escolhido, persistido e aplicado antes do primeiro paint
- RN-183 — A preferência de tema tem uma fonte, e o atributo do
<html>é a verdade - RN-184 — Contraste é medido nos DOIS temas
- RN-185 — Os oito papéis de sintaxe, e o valor do handoff só entra medido
- RN-186 —
provideré dimensão do relatório do owner, e só dele - RN-187 — A visão do membro não alcança
provider, e quem garante é o TIPO - RN-188 — Pessoa e agente são partição da lista por ator, sem consulta a mais
- RN-189 — O embedding devolve um vetor por entrada, ou um erro
- RN-190 — O embedding tem uma capability em duas camadas, e a do modelo é exclusão
- RN-191 —
embeddings: trueexige execução, não documentação - RN-195 — A sidebar recolhe para uma trilha de ícones, com a preferência persistida
- RN-196 — Projetos expansíveis revelam as abas do projeto, N ao mesmo tempo
- RN-197 — Duas cores de projeto, dois propósitos: identidade não é status
- RN-198 — Atividades agrupa por agente-base/instância REAL, nunca por contador inventado
- RN-199 — Botão de tema no rodapé, funcional recolhido
- RN-200 — Só Projetos e Atividades como itens globais
- RN-201 — Projeto/aba ativos persistem entre páginas; o colapso da sidebar é SÓ do usuário
- RN-202 — A aba
sessionscontinua "Chat", nunca "Chat RAG" - RN-203 — O handoff é referência visual, não teto de quantas abas o produto tem
- RN-210 — "Recomendado" é uso real e custo, nunca nota calculada
- RN-211 — Gasto por provider na tela é Ranking, não paleta categórica inventada
- RN-212 — Bloco "por projeto" é o TokenMeter plugado ao orçamento real
- RN-213 — Alerta de custo é leitura de
lastThresholdNotified, nunca recálculo - RN-214 — KPI de economia com modelo local fica de fora por falta de preço contrafactual
- RN-215 — Aba Problemas nasce com estado vazio honesto
- RN-216 — Aba Saída nasce com estado vazio honesto
- RN-217 — Status bar da aba Código só mostra dado real
- RN-218 — Foco visível nas abas próprias do painel inferior
- RN-219 — Os três escopos do índice de chunks são honestos, e mutuamente exclusivos por CHECK
- RN-220 — Vetor e busca léxica vivem na mesma linha, nunca em tabelas separadas
- RN-221 —
search_vectornunca é escrita pela aplicação — é coluna GENERATED - RN-222 — A dimensão do vetor é documentada, não adivinhada, e
embeddingchega depois do chunk - RN-223 — O índice vetorial é HNSW, não IVFFlat, porque a tabela nasce vazia
- RN-224 — A migração cria a extensão pgvector sozinha, de forma idempotente
- RN-225 — Migração que pode exigir privilégio de operador nasce em
breaking/ - RN-226 —
ChunkRepositorycobre só escrita/leitura básica;createManyé operação de lote - RN-227 — Selo de status da sessão cobre os 5 estados reais, não os 4 do handoff
- RN-228 — Filtro pill agrupa os 2 estados sem pill própria por TRAJETÓRIA
- RN-229 — KPI "custo do mês" da aba Criativo é o consumo do ATOR, não o total do projeto
- RN-230 — KPI "taxa ideação → commit" é declarado ausente, nunca calculado
- RN-231 —
ChunkRepositoryganha DELETE e as duas metades da busca híbrida - RN-232 — Origem do texto indexado:
docs/adrdo repositório do PRÓPRIO projeto,sessionsó dechat.message/agent.response - RN-233 — Provider de embedding indisponível: grava sem vetor e declara a lacuna, nunca finge indexação completa
- RN-234 — Busca híbrida: duas consultas independentes, fusão por peso (0.6/0.4), limiar 0.2, e o contrato de citação
- RN-235 — Chunking: 1200 caracteres, 150 de sobreposição, por parágrafo/heading
- RN-236 — Reindexação é sempre MANUAL, full rebuild idempotente
- RN-237 — Cobertura do índice é contagem REAL, nunca "há N minutos" inventado
- RN-238 — As três rotas HTTP do RAG dividem papel por quem MUDA o que o produto gasta
- RN-239 — Virtualização de linha: só a janela visível vira nó de DOM
- RN-240 — Sem medição de altura, degrada para janela padrão generosa, nunca renderiza tudo
- RN-241 — Minimapa reusa a MESMA tokenização da virtualização — zero segundo passe sobre o arquivo
- RN-242 — Minimapa é CANVAS, um nó de DOM só, nunca um
<div>por linha - RN-243 — O ciclo de vida do container é TABELA, e nenhuma linha dela chama Docker
- RN-244 — A máquina de estados do container: só
removedsai reprovisionando - RN-245 — A primeira transição exige a imagem já decidida, e CONGELA versão e recursos
- RN-246 — Projeto em modo
localnão tem ciclo de vida de container - RN-247 — Uma linha por projeto:
project_idé único - RN-248 — Teto de recursos DECLARADO, não aplicado — o campo existe para quando houver orquestrador
- RN-249 — Alvo de clique do marco com detalhe sobe de 20px para o piso de 24px do
Disclosure - RN-250 — Faixa de arquivo do diff em
ApprovalCardNÃO migra para oDisclosure— a animação própria é a razão - RN-251 — Cinco call sites migram para o
Disclosurecompartilhado; o componente ganhatestIdcomo único hook novo - RN-252 — A tela do Chat RAG mostra as duas degradações honestas que o backend já declara, nunca as esconde
- RN-253 — Citação de origem
sessionnavega até o EVENTO exato, reusando o mecanismo do Psicólogo - RN-254 — O botão de reindexar é maintainer/owner na TELA, espelhando a régua da rota
- RN-267 —
GET /projects/:projectId/container/lifecycleé a primeira exposição HTTP do ciclo de vida do container - RN-268 — A aba Terminal mostra o estado REAL do container, nunca finge um terminal que não existe
- RN-272 — O callback do login social decide em ORDEM: identidade conhecida, depois vínculo por e-mail, depois conta nova
- RN-273 — O
statedo login social tem propósito PRÓPRIO, mesmo assinado pela mesma chave do fluxo de conexão de git - RN-274 — Vincular identidade social a conta existente exige e-mail VERIFICADO pelo provider
- RN-275 — Provisionar conta NOVA não exige e-mail verificado — só vincular a uma existente exige
- RN-276 —
providerUserId, nunca e-mail ou login, é a chave de identidade social - RN-277 — Login social pede escopo MÍNIMO, nunca o de conexão de repositório
- RN-278 — Conta provisionada por login social nasce SEM senha — mesmo estado "pendente" da migração do Keycloak
- RN-279 — Vincular por e-mail verificado também verifica o e-mail da conta existente
- RN-280 — Login social recusa conta DESABILITADA, mesma régua do login por senha
- RN-281 — O login social reusa o MESMO app OAuth da conexão de git — sem variável de ambiente nova
- RN-282 — O access token do login social nunca viaja na URL nem no corpo do callback
- RN-283 — Falha do callback de login social não vaza o motivo na URL
- RN-284 — O turno do agente conversacional pode SUSPENDER esperando aprovação humana
- RN-285 — O UX Designer é conversacional SOLO, sem área
- RN-286 —
propose_prototypegrava artefato sem tabela e sem caso de uso dedicado, e oferece DOIS handoffs sobre o MESMO artefato - RN-287 —
uxDesignerActiveno roster, nas DUAS fontes (RN-090) - RN-305 — O Staff ativa pelo caminho GENÉRICO de handoff, sem
USER_STARTED_AGENTS, e semkickoff/1 - RN-306 —
propose_rfcgrava o artefato DIRETO e devolve o handoff no MESMO tool call, semproposed_action - RN-320 —
analise-funil.tsé script, nunca agente — mesmo esqueleto demedir-execucao.ts - RN-321 — O funil conta SESSÃO por etapa, só ação
executed, e o lead time usaupdated_atda execução - RN-322 — Deployment frequency real filtra merge em branch PROTEGIDA; três métricas ficam DECLARADAS ausentes, nunca aproximadas
- RN-340 — O gate
implementaveldecide a story ANTES do dev agent escrever código - RN-341 — A QA-estratégia é o segundo MOMENTO do qa-lead, e nunca suspende
- RN-360 — O threat model de DESIGN roda sobre story + module_map, sem worktree/task_id, no MESMO processo do secops
- RN-361 — O threat model concluído cria TRÊS handoffs, sempre endereçando o LEAD
- RN-375 — O relatório declara a janela, nunca finge um histórico maior
- RN-376 — O ranking trabalha só com o que
bucket_keyguarda: balde e quando - RN-377 — A seção "não medido" é permanente, e cita as três lacunas por nome
- RN-385 — O papel
platformnasce como SCRIPT de leitura pontual, sobre as mesmas fontes doDomainGaugesCollector - RN-386 — O relatório de telemetria declara, sem inventar, o que NÃO mede
- RN-400 — O parecer de migração é análise ESTÁTICA de SQL, e ignora o padrão de risco quando ele só aparece em comentário
- RN-401 — O linter não é gate de CI: varre o repositório inteiro, não o diff da PR
- RN-402 — O relatório de backup relê exatamente a lógica de
collectBackup(), nunca uma segunda forma de calcular - RN-403 — O relatório de backup NÃO reexecuta o restore; ele aponta para o procedimento já testado
- RN-404 — "Confirmar arquitetura pronta" (RN-160) é revalidada no BACKEND, não só desabilitada na UI
- RN-405 — A delegação Dev Lead → dev vira dado em
delegations, comparecerArtifactIdredefinido para "o que justificou a decisão" - RN-406 — O gate
necessidade-validadase fecha com um clique SEPARADO do usuário, nunca com o Criativo se autovalidando - RN-407 — O PO lê o funil de entrega e DORA parcial, terceira leitura escopada ao projeto
- RN-408 —
MAIL_TRANSPORT=smtpderiva o boot pelo padrão da RN-114, sem o default público - RN-409 — "N online" soma dois mecanismos pela MESMA régua: não ocioso, não travado
- RN-410 — Toda conta NOVA nasce com um workspace pessoal, na MESMA transação da conta
- RN-411 — O quarto sinal de trabalho pendente: dev agents falam
dev.*, nãoagent.status - RN-412 —
dev.awaiting_gate/dev.awaiting_approvalseguram a sessão; a janela efetiva de compactação é coerente com o transporte - RN-413 — Templates de prompt vivem fora do código, versionados no grafo
- RN-414 —
rag_search: agentes ganham a ferramenta que o produto nunca tinha exposto - RN-415 — Modelos Ollama garantidos no boot, degradação do RAG declarada
- RN-416 — O grafo é memória DERIVADA, reconstruível por projeção da outbox
- RN-417 — Psicólogo e Anamnese consultam por relevância, com degradação declarada para recência
- RN-418 — Efeito externo git e comando privilegiado (sudo/doas) viram teto absoluto, nunca
deny - RN-419 — O runner local se autentica por ticket de uso único, escopado a projeto e papel
- RN-420 — Comando de agente roteado ao runner passa pelo MESMO pipeline de aprovação; PTY é ação do usuário, auditada
- RN-421 —
execution_modetem TRÊS valores:container/mounted/runner - RN-422 — A validação de criação DIVERGE por modo:
mountedtoca disco,runnersó o léxico - RN-423 — O runner CONFIRMA o caminho; sem confirmação, o comando é recusado — nunca cai no container
- RN-424 — PAT autentica SÓ
runner-ticket, por construção — nunca dual-auth com JWT nessa rota - RN-425 — Validação de PAT colapsa inexistente/revogado/expirado numa resposta só; escopo errado é 403;
last_used_atnunca throttla - RN-426 — Listar/revogar PAT é escopado ao PRÓPRIO usuário, no WHERE da query — sem admin cross-user nesta onda
- RN-427 —
maintainerrevoga PAT de QUALQUER usuário do projeto, escopado porproject_id— resposta a incidente - RN-428 — Carrossel de promoção de histórias sobrevive à janela de eventos
- RN-429 — Navegação de pasta local é relay puro pelo Runner, nunca a api enumerando o container
- RN-430 — PRs são project-wide; a decisão usa o sessionId da própria ação, nunca a mais recente
- RN-431 — O selo da aba Arquitetura conta pendência de validação, nunca "diagrama não gerado"
- RN-432 — Preferência de idioma vem no payload de login/refresh, nunca numa chamada extra
- RN-433 — O socket do terminal desiste depois de um timeout, o default de
ENGINE_PUBLIC_URLé alcançável PELO BROWSER, e o endpoint não duplica path - RN-434 — No Linux,
--dirdo runner local só é aceito dentro do$HOMEdo usuário - RN-435 —
--dirdo runner local inexistente é criado, não recusado - RN-436 —
FolderBrowserModalvira um explorador de três colunas: atalhos, lista com um clique seleciona/duplo clique entra, e um painel de detalhes - RN-437 — No modo
runner, "Procurar pasta..." cria o projeto ANTECIPADAMENTE, e a confirmação final reusa por SNAPSHOT de identidade - RN-438 —
fs-browser-channel.tstinha o MESMO bug de path duplicado que a RN-433 já tinha corrigido noterminal-channel.tsirmão - RN-439 —
POST .../runner-ticketautentica E autoriza no MESMO guard;RolesGuard(global) se abstém em rota@RequirePatAuth() - RN-440 —
addressableAgents()é o catálogo FECHADO do handoff manual, mais estrito queassertHandoffTargetAllowed - RN-441 —
POST .../sessions/:sessionId/handoffsexigedeveloper; handoff manual nasceoffered, sem estado novo - RN-443 — Budget de área é ADITIVO ao de projeto/sessão, nunca cascata; só
maintainermuda o teto - RN-447 — Converter
execution_modede projeto EXISTENTE recusa (409) enquanto qualquer dev agent do projeto não estáidle - RN-448 —
permissions.jsoné RELOCALIZADO na conversão — o conteúdo nunca muda, só o caminho - RN-449 — Saindo de
container, o ciclo de vida do container é encerrado (removed) ANTES da coluna mudar - RN-450 —
workspaceVerifiedAtzera em TODA conversão real, mesmo voltando pararunnercom o "mesmo" caminho - RN-451 — Smoke do binário standalone roda o SUBPROCESSO real, nunca mock
- RN-452 —
node-ptyresolvido por injeção, não import estático — e a lacuna que isso abriu no smoke do npm foi fechada no mesmo commit - RN-453 —
--dirrelativo do runner local resolve contraINIT_CWD, não contra o cwd rebaseado do pnpm - RN-454 — A aba Insights sabe que o Psicólogo está pausado ANTES de o usuário esbarrar no 503
- RN-455 —
chunks.scopeganha'local', reusando o pipeline de RAG inteiro - RN-456 — Teto agregado REJEITA (400) o upload inteiro; arquivo individual grande/binário só é PULADO
- RN-457 —
maintainer, e reanexar é o MECANISMO de resincronizar — nunca o "Reindexar agora" genérico - RN-458 — Cobertura de
localé forma PRÓPRIA, elastAttachedAté a ÚNICA exceção real ao "nunca Xmin" (RN-237) - RN-459 — Teto de iterações não termina mais calado em quatro dos seis agentes conversacionais
- RN-460 — A faixa de atividade do turno narra em tempo real, e o fio só recebe a resposta no fim
- RN-461 — Ollama nativo: pergunta uma vez, a resposta persiste em
.env, nunca pergunta de novo - RN-462 — Pull de modelo Hugging Face exige confirmação explícita em duas etapas; nunca roda sozinho
- RN-463 — Allowlist de publishers oficiais; comunidade exige opt-in explícito com aviso de segurança
- RN-464 — Chave de dispositivo do runner: registro/revogação self-service; SEM visão de maintainer nesta rodada (corte declarado)
- RN-465 —
POST .../runner-ticketaceita PAT OU chave de dispositivo (Ed25519, TTL ≤60s) — segunda forma de credencial de DISPOSITIVO, nunca dual-auth com JWT de sessão (distinção da RN-439) - RN-466 —
brabo-runnerroda sem--project/--dir/--tokenquando a pasta tem config local gravada pelo navegador - RN-467 — O painel das cinco filas de decisão NUNCA soma e NUNCA executa: separa por fila e encaminha para a decisão
- RN-468 — Sinal de ambiente diz o que SABE:
workspaceVerifiedAté registro de confirmação, nunca garantia de que o runner está vivo - RN-469 — Salvar uma seção são N chamadas, e a tela nunca afirma o desfecho que não obteve
- RN-470 — A origem do modelo distingue binding próprio de herança do Criativo, e nenhum vazio da cascata usa o mesmo símbolo de outro
- RN-471 — Papel na seção de Membros:
maintainer, e derivado da linha do projeto sobre a do workspace - RN-472 — Ninguém rebaixa o
ownerdo workspace, e ninguém rebaixa a si mesmo - RN-473 — A configuração do runner pelo navegador começa pela PASTA, e a falha do binário nunca descarta o que já foi configurado
- RN-474 — Depois da instrução, a tela ESPERA o runner: três estados, teto, e o caminho que vale é o que o runner reportou
- RN-475 — A JWK privada gravada pelo navegador carrega o
kiddo registro; e o CLI distingue "não há chave" de "há chave e ela não serve" - RN-476 — Aplicar um modelo a TODOS os agentes: um valor, N chamadas, e um botão apesar do valor ser nomeado
- RN-477 — Provisionamento que falha DIZ que falhou, e a espera por ele tem teto
- RN-478 — O
permissions.jsonmora onde a api ALCANÇA, o escopo do terminal aponta para o HOST - RN-479 — Toda busca híbrida grava uma linha em
rag_searches, com os pesos CONGELADOS; e a telemetria nunca derruba a busca - RN-480 — O voto sobre um trecho é o único sinal de VERDADE da medição, e ele exige a referência que a busca devolveu
- RN-481 —
rag.search/rag.feedbacksão NARRAÇÃO da timeline, e só existem quando há sessão - RN-485 — O broker de container não aceita especificação: ele recebe um projeto e COMPÕE
- RN-486 — Estado REGISTRADO e estado OBSERVADO nunca se fundem, e "não olhei" tem motivo próprio
- RN-487 — O Arquiteto roteia módulo por módulo, mas só CANDIDATA — quem elege é a Infra
- RN-490 — O golden-set de acerto do RAG mede por CAMINHO DE ARQUIVO, no TOP-5, nunca por chunk exato ou rank 1
- RN-491 — A Infra elege entre as candidatas do Arquiteto, e a eleição vira uma NOVA versão de
artifact.project_image - RN-492 — O comando de terminal do dev agent roda DENTRO do container real, quando há um
- RN-493 — Terminal dentro do container real ganha PISO de auto-aprovação, sem tocar nos tetos absolutos
- RN-494 — O portão da imagem (RN-105) vale nos TRÊS modos de execução
- RN-495 —
container_stop/container_removenascem comoproposed_action, e sócontainer_removeentra no teto absoluto - RN-496 — A página global de containers pergunta ao broker com TETO, e nunca funde registrado com observado
- RN-497 — O
brabo-runnersobe o container do projeto NA MÁQUINA DO USUÁRIO, com o Docker DELE - RN-498 — O golden-set do RAG roda em CI de verdade, AGENDADO — e o gate continua
warn - RN-499 — O handoff da Infra tem card acionável PRÓPRIO, fora do fio — sem alargar
AGENTES_DE_CHAT - RN-500 — Existe UMA base para os projetos montados, ela é montada por identidade, e ausente quer dizer "não ofereça o modo"
- RN-501 —
mountedvalida só o LÉXICO e a base na criação; a pasta é MATERIALIZADA depois, por quem tem autoridade sobre o disco - RN-502 — Dev agent só reivindica task com container
running, e o terminal não cai mais fora dele - RN-503 — Projeto
mountedsobe container pelo BROKER, e o que atravessa a rede é um localizador discriminado — nunca um caminho absoluto - RN-504 — O navegador de pastas é escopado à base de projetos e NUNCA sai dela
- RN-505 —
decision_recordreusa o padrão GENÉRICO deemit_artifact, não o dedicado - RN-507 — Docker vira pré-requisito real do modo
runner: os TRÊS modos de execução exigem o MESMO predicado - RN-508 —
container_start_via_runner: segundo tipo de ação para subir o container, exclusivo derunner, e o Infra Lead recusa às cegas ANTES de propor - RN-509 — "Sempre permitir" de um Dev Agent de módulo escopa a
agent_autonomy, POR AGENTE — não mais opermissions.jsonde projeto inteiro - RN-511 — A base é CONSENTIDA uma vez no host, o compartilhamento é provado MONTANDO, e sem terminal o passo relata em vez de consentir
- RN-512 — O broker sai do
profilesno compose LOCAL e só nele, e oDOCKER_GIDpassa a ser relatado no preflight - RN-513 — Com base consentida,
mountedé o pré-selecionado com<base>/<slug>sugerido; sem base, ou sem saber, ele não é oferecido - RN-514 — O runner DECLARA o que sabe fazer no
join, o servidor CONCEDE a interseção emsocket.assigns, e mensagem sem capacidade é RECUSADA em vez de sumir - RN-515 — O destino do espelho é declarado POR PROJETO e nunca é global;
nullé o estado normal; e a api valida SÓ o léxico, dizendo que é só o léxico - RN-516 — O destino do espelho viaja na CONCESSÃO do join, o espelho copia a lista do git numa direção só e nunca apaga, e o gatilho é um momento nomeado — nunca um watcher
- RN-517 — O desfecho de cada rodada do espelho volta pelo canal e vira TELEMETRIA numa tabela própria; "nunca sincronizou", "sincronizou e não copiou nada" e "falhou" são TRÊS respostas, e sucesso e erro convivem
- RN-518 —
brabo-runner service install|uninstall|statusinstala nível de USUÁRIO e nunca root;uninstalllimpa a pasta que a UNIT registra;statusresponde quatro estados sem colapsar nenhum; Windows é recusa nomeada - RN-519 — Ninguém revoga o que não consegue ver: a chave de dispositivo ganha listagem do PRÓPRIO dono, e a visão de
maintainerfica fora por DECISÃO - RN-520 — Revogar deixa de só impedir ticket NOVO e passa a derrubar a conexão VIVA; o alvo é
{projeto, usuário}e nunca{chave}, e derrubar nunca derruba a revogação - RN-521 — A página
/containerslista TODO projeto do workspace e vira o caminho HUMANO de subir o container, ramificado porexecution_mode - RN-522 — O repositório é provisionado ao ACEITAR o handoff Arquiteto → Dev Lead, sempre
local, e a falha nunca derruba o aceite - RN-523 — A pasta
docs/é PROJEÇÃO do event log: derivada, por agente, e nunca fonte de verdade - RN-524 — Artefato publicado é assinado por identidade de workflow, verificado no mesmo run, e a verificação recusa em vez de avisar
- RN-525 — O proxy do binário confere o hash contra o manifesto da mesma release, recusa quando não pode conferir, e DIZ que isso é integridade e não procedência
- RN-526 — O instalador verifica a própria origem, NOMEIA o que achou antes de perguntar, e nunca apaga pasta de usuário
- RN-527 — A instalação sobe de um compose PRÓPRIO, por imagem escolhida, e confere a saúde antes de dizer que instalou
- RN-528 —
git_local_reposentra no backup, o destino pode ser disco, e o restore de compose reusa as MESMAS três validações - RN-529 — O
brabo-runnernasce com uma BASE local, cada projeto é uma subpasta dela, e a base NUNCA invalida--dir - RN-530 — Migrar exige backup PROVADO: o instalador só ganha o direito de apagar depois de restaurar
- RN-531 — O instalador consente UMA base para os dois lados e instala o agente local já executável
- RN-532 —
workspace_createcria a pasta sob a base LOCAL, e quem GRAVA continua sendo oworkspace_confirmque já existia - RN-533 — Em modo
runnero navegador de pastas pergunta ao agente local, e a tela diz de quem é o disco - RN-534 — O instalador entra no manifesto assinado, e é exercitado numa máquina limpa
- RN-539 —
assess_implementabilitydispara o threat model de DESIGN em PARALELO, e uma vez só por story - RN-540 — Flag booleana lida pelo
runtime.exsé mapeada noenvironment:do serviçoenginedos dois composes, com o default do código - RN-541 — Criar um projeto NÃO cria repositório git; o bootstrap é adiado até o handoff do Arquiteto
- RN-542 — O instalador compara a versão instalada com a que vai instalar, e a oferta é específica por relação
- RN-543 —
runner_device_keys.project_idnulo é a chave de MÁQUINA: vale para os projetos do DONO, resolvida contra o projeto pedido - RN-544 — O agente local abre N conexões, uma por projeto descoberto pela rota — e o teto de tentativas e a recusa de join deixam de ser do PROCESSO
- RN-545 —
service install --machineinstala UMA unit para a máquina, e as duas espécies não se sobrepõem - RN-546 — Rota interna cria a PRIMEIRA conta, já verificada, e recusa quando existe qualquer usuário
- RN-547 — O instalador cria a primeira conta, registra a chave desta máquina e sobe o agente como serviço — e o que falha no meio é RELATADO, nunca desfeito nem engolido
- RN-548 — Com chave de MÁQUINA ativa, o painel do runner para de mandar parear e passa a dizer o que falta — sem nunca afirmar que o agente está de pé
- RN-549 — O E2E em máquina limpa prova a instalação INTEIRA: os cinco elos, o agente de pé esperando, e o primeiro projeto pego sem ninguém voltar ao terminal
- RN-550 — Com ZERO conexões o agente local NÃO sai: ele espera e reconsulta a lista; com conexão viva a consulta continua sendo só no start
- RN-551 —
brabo-runner device-key create/finish: o par Ed25519 nasce NA MÁQUINA, a privada nunca viaja, e o arquivo que o runner lê nunca existe semkid - RN-552 — Rota interna registra a chave de dispositivo de MÁQUINA, para o usuário ÚNICO da instalação, e registrar SUBSTITUI
- RN-556 — Remover a própria linha de
project_membersé recusado com 403 quando o efeito líquido é rebaixamento - RN-557 — Mudar o PRÓPRIO papel é recusado com 403 nas duas rotas de associação, nos dois sentidos
- RN-558 — Credencial no
execcom container ativo é RECUSADA pelo runner, com desfecho nomeado e origempolitica - RN-559 — A conversão para
mountedabre o MESMO navegador de pastas do wizard; o ramorunnercontinua digitado, e a tela diz por quê - RN-560 — O aviso da conversão diz o que ela recusa, o que ela leva e o que ela NÃO leva — nomeando o caminho antigo
- RN-561 — A aba Configurações lista e revoga chave de dispositivo, marcando a ESPÉCIE — porque revogar a de MÁQUINA derruba o agente local em TODOS os projetos do dono
- RN-562 — A rotação da chave mestra é provada ponta a ponta, nas duas tabelas
- RN-563 — O envelope diz qual chave o embrulhou, e esse rótulo nunca decide se ele abre
- RN-565 — O manifesto assinado sai com o que a Release TEM, e não espera a plataforma que nunca constrói
- RN-566 — O Infra Lead recusa
container_startpor MODO antes de propor: a lacuna da RN-494 fecha na tool que a declarava - RN-567 —
proposed_action.createddiz QUAL regra decidiu: oreasondedecide()passa a sobreviver quando a ação passa - RN-568 — A presença de QA, SecOps e dos membros de área no painel do time é decidida pela sessão INTEIRA, não pela janela de 200 eventos
- RN-569 — O grafo é reconstruído do event log pelo MESMO tradutor do projetor vivo, sem tocar a outbox, e nunca sai como sucesso calado
- RN-570 — O instalador sobe a instalação só com arquivos que a Release assinou, conferidos antes de perguntar ou gravar qualquer coisa
- RN-572 — A árvore do time traduz todo tipo
dev.*que o engine emite, e só diz trabalho em curso onde o painel diztrabalhando - RN-573 — O assistente de criação só pré-seleciona o modo que a instalação executa: sem broker,
runneré o sugerido econtainer/mountedficam inertes com o motivo em texto - RN-574 — A
/containersrecusa antes do clique a subida decontainer/mountednuma instalação sem broker, com motivo próprio em texto - RN-575 — O instalador só liga o broker de container com um "s" digitado, mede o grupo do socket de dentro de um container, e grava as quatro linhas juntas ou nenhuma
- RN-577 —
open_adr_preopen_infra_prsão recusadas pelo agente, antes de propor, quando o projeto não tem repositório - RN-578 — O clique que dispara turno de agente responde ao ACEITAR, e a recusa deixa de ser calada
- RN-579 — Com o canal da sessão vivo, a tela de Sessão troca o poll curto por invalidação e um fallback longo; resposta de corpo vazio tem
ETag - RN-580 — O agente conversacional que sobe sobre uma conversa recebe o FIM dela, com perguntas e ferramentas, e o começo que não coube é resumido com o número escrito
- RN-581 — A conversa em curso segura a sessão por até 8h, e a sessão encerrada recusa conversa
- RN-582 — O aceite do handoff ao Arquiteto provisiona o repositório; o aceite ao Dev Lead é a segunda porta, idempotente; e
execution/activatesem repositório é 409 nomeado - RN-583 — O critério de roteamento do hub é do binding, viaja com ele, e congela no metering
- RN-584 — A mensagem de chat não tem destinatário padrão: cada agente que conversa tem cláusula própria, e o resto é recusa nomeada
- RN-585 — O fim do turno só fica visível depois de o turno fechar no agente
- RN-586 — O turno que o reinício do engine interrompeu fecha com desfecho durável, e nunca é refeito
- RN-587 — A mensagem que nenhum agente leu fica no fio dizendo isso: o engine grava o
agent.errorda recusa - RN-588 — Repassar uma sessão não deixa o pod antigo apagar a linha do par
- RN-589 — O texto que a ferramenta devolveu entra no
tool.result, cortado com o total dito - RN-590 — A pasta
docs/dos artefatos é reconstruída do event log pelo MESMO tradutor do projetor vivo, sem tocar a outbox, e nunca sai como sucesso calado - RN-591 — A instalação sem broker é dita na conversão de modo, em parar/remover e na proposta do Infra Lead, pela mesma fonte da RN-574
- RN-592 — A listagem de sessões diz qual é a técnica, pelo vínculo em
repo_bootstraps, e a tela lê o marcador em vez do nome - RN-593 — O Dev Lead suspenso e o Infra Lead gravam o
tool.resultpelo módulo comum - RN-595 — Toda
_PREVIOUSque um serviço lê chega a ele pelos três composes, vazia por padrão - RN-597 — Trocar o pepper é logout global
- RN-598 — O token de serviço ANTERIOR passa pela mesma régua do atual
- RN-599 — No compose de dev a api encontra o broker sozinha, e a falta da pasta gerenciada é dita a cada subida
- RN-600 — A criação de projeto pela tela não manda o corpo que a api já se sabe que recusa, uma criação por vez, e a recusa aparece na tela
- RN-601 — O engine e o broker aplicam aos dois tokens de serviço a régua da api
- RN-603 — O modo automático libera o escopo de caminho, e só ele
- RN-604 — A chamada ao broker tem um teto POR OPERAÇÃO, e o teto estourado diz que foi o teto
- RN-605 — O pull de imagem é um passo NOMEADO do
start, sob o teto de controle, e o estouro diz que imagem grande não sobe - RN-609 —
proposed_action.createddiz QUAL raiz o escopo comparou, relativa e nunca absoluta - RN-610 — O Infra Lead recusa a subida por ESTADO, na ordem da
/containers: já de pé, sem imagem, pasta nunca confirmada - RN-611 — A chave de MÁQUINA ganha listagem e revogação por CONTA, sem
:projectId: só as de máquina, só as do próprio usuário, e a revogação é a MESMA de sempre - RN-612 — Converter para
runneré converte, DEPOIS onboarda: salvar monta o painel de onboarding do projeto agorarunner, e o navegador de pastas fica fora por construção - RN-613 —
AUTH_TOKEN_PEPPERé obrigatório e próprio; quem migra o define com oAUTH_JWT_SECRETatual - RN-614 — A tela mostra o motivo da política e a raiz do escopo, numa frase só, nos dois lugares
- RN-615 — A remoção de membro de WORKSPACE nasce com o teto 2 herdado: remover a si mesmo é 403, e é essa cláusula que segura o último owner, sem contar
- RN-616 — O TITULAR do workspace não sai pela remoção de membro: 409
criador_do_workspaceaté transferir, e a titularidade só vai para outroowner - RN-617 — O Infra Lead conversa pelo composer, e o turno dele passa pelo
TurnoAssincrono: aceite imediato, "Parar", turno órfão fechado - RN-618 — O idioma das respostas é da PESSOA: escolha na conta, override por sessão, e a precedência que termina sempre num idioma
- RN-619 — O projeto tem um idioma, o de tudo que não tem autor humano, e ele nasce do idioma de quem cria
- RN-620 — A barra da sessão mostra o idioma das respostas de QUEM VÊ, com a origem, e trocar ali é o override só daquela pessoa naquela sessão
- RN-621 — O resumo da compactação mantém o idioma original de cada turno, e não traduz citação nem código
- RN-622 — O idioma chega ao modelo como a ÚLTIMA mensagem de cada chamada do turno, efêmera: o do AUTOR quando há um, o do PROJETO quando não há
- RN-623 — Num turno COM autor, a resposta é no idioma da pessoa e o ARTEFATO compartilhado é no idioma do PROJETO
- RN-624 — A api detecta o idioma do autor pelas próprias mensagens e PERGUNTA; só o confirmado vira preferência
- RN-625 — O laço pergunta ao Jev qual ferramenta, e o modelo do usuário vê só o menu que sobra; o Jev restringe e nunca decide
- RN-626 — O chat da sessão decide o que os agentes propuseram noutra sessão, mostra o turno que estava em curso e propõe o merge — sem mudar teto nenhum
- RN-627 — O container do projeto roda com o dono da pasta, medido pela api
- RN-628 — O merge executado fecha a tarefa da PR:
done, uma vez só - RN-629 — O QA Lead trata o subagente que SUSPENDE de novo na retomada do mesmo jeito que na primeira vez, e resultado que não conhece vira bloqueio nomeado
- RN-630 — Quem está ativo na sessão se lê da sessão INTEIRA, não dos últimos 200 eventos
- RN-631 — O destinatário do chat é escolhido e visível, e a oferta de handoff é casada pelo
handoffId - RN-632 — Leitura de PROJETO polla no ritmo de projeto, e toda tela que ouve o canal da sessão invalida pela MESMA janela
- RN-633 — O handoff manual não declara prontidão, e "já ativo" para a oferta é do projeto
- RN-634 — Depois de "Ativar execução", a tela vai à sessão de execução
- RN-635 — Uma oferta de handoff pendente por destino no projeto; a que deixa de valer vira
superseded - RN-636 — O AppSec só oferece o threat model a quem ainda não recebeu oferta nem está ativo
- RN-637 — A tela lê a CAUDA das ações da sessão, e a pendente antiga volta junto
- RN-638 — Quem pergunta "o que espera decisão" lê a fila do PROJETO, nunca a sessão mais recente
- RN-639 — O que muda por token não re-renderiza a tela, e o que acompanha o bootstrap polla a 3 s e para no fim
- RN-640 — A paleta neutra fecha a dívida de contraste, e cor da UI só vem de token
- RN-642 — "Sempre permitir" aprova e grava o padrão na MESMA transação; clique em ação já aprovada é sucesso nomeado
- RN-643 — Abaixo de 768px a sidebar vira gaveta e o trilho do projeto vira barra horizontal; a página nunca rola de lado
- RN-644 — O fio corta por MENSAGEM, nunca parte uma troca e recolhe o histórico na ordem em que aconteceu
- RN-645 — Configuração não se busca de novo a cada montagem, não polla, e a aba Configurações tem três faixas de moldura, não quatro
- RN-646 — Bloqueio e controle inerte dizem o motivo de QUEM está na tela: a aba PRs fala da lista de PRs, e Parar/Remover sem container dizem que não há container
- RN-648 — A sidebar, o card do Dashboard e o painel de artefatos não se contradizem: cada estado vazio diz QUAL sessão leu, e contador e lista contam na mesma unidade
- RN-649 — Sessão
closed/closed_abnormallyreabre paraactivecom o log intacto, e o fechamento anterior vira evento novo - RN-650 — Reabrir é
developer, por rota própria, e a tela só oferece o botão a quem alcança o papel - RN-651 — No telefone, o painel da Sessão é gaveta, a barra quebra linha, e a tabela vira cartões
- RN-652 —
chat.messageé desenhado sob o ATOR do evento — pessoa, agente ou desconhecido —, nunca sob quem vê a tela - RN-654 — Os bindings resolvidos de todos os agentes e áreas vêm numa leitura só
- RN-655 —
GET workspaces/:id/memberséviewer, e devolve só id, nome, e-mail e papel - RN-656 — A leitura de eventos da sessão filtra por
actionId, e cada cartão da aba Aprovações lê o próprio motivo por ela - RN-657 — "Estou pronto — a necessidade está validada" fecha os DOIS gates num POST, com o
product_briefproduzido depois do clique - RN-658 — O aceite do handoff Criativo→PO é implícito no "Estou pronto": os MESMOS eventos, com a pessoa como ator e a marca
implicito - RN-659 — Projeto novo nasce com promoção de histórias automática; projeto existente fica no modo que tinha
- RN-660 — O handoff do PO ao Arquiteto é aceito pelo SISTEMA quando o backlog está coberto e o repositório é local e sem credencial
- RN-661 — O modo automático é OFERECIDO em lote para o time no início da execução, e a oferta diz o que ele não libera
- RN-663 — O merge de PR recusa a PR já mergeada e a proposta repetida; gate pendente é só aviso
- RN-664 — O trabalho dos agentes nasce de
dev, a PR deles miradev, e o gate julga o diff contradev— os três juntos - RN-665 — O custo real que o provider devolve é o número do metering; o catálogo fica onde ele não vem
- RN-666 — O metering grava quanto da entrada veio de cache e quanto da saída foi raciocínio
- RN-667 — O formulário estruturado segue o idioma da resposta: a descrição da ferramenta não fixa idioma nenhum
- RN-668 — O que o turno do Infra Lead anuncia sobre a subida do container é decidido pelo código, não pelo texto do modelo
- RN-669 — O escopo de caminho compara com a pasta REAL de execução:
/worke o/tmpdo container quando ele está de pé - RN-670 — O modo automático é o PILOTO AUTOMÁTICO, e "Sempre permitir" não o desliga
- RN-671 — A Infra sobe o container no aceite do handoff: o servidor propõe, e a autonomia semeada aprova
- RN-672 — O handoff ao Dev Lead sai da Infra, e só com o container do projeto
running - RN-673 — A mensagem que chega com turno em curso entra numa fila persistida no log e é lida no fim do turno, N mensagens num turno só
- RN-674 — A QA-estratégia escreve o plano sobre o código ENTREGUE, no começo do ciclo do
qa-verificada, e oimplementavelse julga sem ele - RN-675 — "Sempre permitir" grava VERBO + SUBCOMANDO, um padrão por segmento do comando
- RN-676 — Com container ativo, o
git fetchcredenciado deRunnerGitroda no HOST do runner, marcado pelo engine; o código continua no container - RN-677 — Aceitar o Dev Lead só o traz para planejar; APROVAR o plano dele é o que ativa a execução
- RN-678 — A tarefa pertence a um módulo, atribuído pelo Dev Lead no plano, e só o dev daquele módulo a pega
- RN-679 — A curadoria recusa o alias de roteamento livre do OpenRouter
- RN-680 — A Anamnese não roda sem sujeito elegível, e a hipótese que a própria pessoa aceitou vira fato do perfil dela no grafo e entra no contexto dos agentes que conversam com ela
- RN-681 — História e regra parecidas com uma existente geram AVISO por embedding, nunca recusa; o gasto da checagem é linha própria do metering
- RN-682 — A consultiva sem agente pede um agente: o composer não envia sem destinatário, e a rota de chat recusa com nome
- RN-683 — A Infra sobe o container com o MENOR recurso elegível, derivado do que o Arquiteto declara por módulo no
module_map - RN-684 — O contrato entre módulos é artefato versionado do Arquiteto, e o dev agent o lê pela ferramenta, nunca no worktree de outro dev
- RN-685 — Revogar uma credencial derruba só as conexões abertas COM ELA: o ticket do socket guarda a credencial, e o alvo deixa de ser
{projeto, usuário} - RN-687 — O painel do runner manda para o instalador; o navegador não gera chave, não baixa binário e não grava pasta
- RN-688 — O binário do runner lê o PTY com leitor próprio sob o Bun, e o auto-teste prova a SEGUNDA leitura
- RN-689 —
git_pushepr_opentipados nunca são auto-aprováveis: o teto da RN-418 vale para o comando E para a ação - RN-690 — O assistente guarda os
toolCallsda resposta: o resultado da ferramenta não chega órfão ao provider - RN-691 — O
install.shPERGUNTA se liga os modelos locais (profilellm), mede a porta do Ollama antes de gravar, e compõe UMA linha deCOMPOSE_PROFILES - RN-692 — Só o projeto compose
braboé instalação anterior, e a migração oferece reinstalar DO ZERO depois do backup provado - RN-693 — Ativar o agente não é conversa: a dica de abertura fica no fio até a primeira mensagem, e os campos de texto da sessão não convidam o autofill
- RN-694 — O catálogo de modelos tem busca, a credencial oferece o sync, e o primeiro modelo vai ao time num clique
- RN-695 — A análise da Anamnese não entra no fio da sessão
- RN-696 — O nível de proficiência por competência chega aos agentes que conversam com a pessoa
- RN-697 — O turno da prontidão do Criativo só sintetiza: sem ferramentas
- RN-698 — O texto do turno vira UMA resposta, e o teto de iterações aparece no fio
- RN-699 — O Dev Lead lê o module_map vigente e o backlog do PROJETO, e relê os dois quando o plano é recusado
- RN-700 — O PO não anuncia o handoff ao Arquiteto sem fazê-lo, e história sem tarefa não é entregue
- RN-701 — O painel de contexto não afirma "0" sobre regras que saíram da janela
- RN-702 — A compactação de contexto respeita a janela padrão de 128k e nunca troca turnos por um marcador vazio
- RN-703 — Subagente sem modelo herda o modelo resolvido do lead da área
- RN-704 — O merge do repositório local é merge de verdade, e conflito é recusa nomeada
- RN-705 — A recusa de merge aparece na aba PRs, e a falha grava o tipo da ação
- RN-706 — O agente de execução sabe onde está: pasta, imagem, rede, git tipado e o próprio módulo
- RN-707 — O semgrep do gate de SecOps tem
$HOMEgravável, e a falha sem saída é nomeada - RN-708 — O projeto novo diz o próximo passo, derivado do que já se lê
- RN-709 — O cartão diz o tempo certo do verbo, o teto não oferece "sempre permitir", e o plano diz quanto custa e só sobe agente com tarefa
- RN-710 — O Workflows não é delegado sem CI que rode, e não pergunta a ninguém
- RN-711 — O conversacional sabe onde está no fluxo, e a restrição técnica do usuário vira decision_record
- RN-712 — O fio da sessão mostra o que acabou de acontecer, uma vez e legível
- RN-713 — Com o modo automático do agente,
git_pushepr_opensão auto-aprovados; só a curinga libera - RN-714 — SAST que não rodou deixa o gate de SecOps pendente, nunca aprovado
- RN-715 — O conflito de merge devolve a tarefa ao dev agent dono, e os gates julgam de novo
- RN-716 — A Anamnese não grava nível sobre o que não observou, e aprovar não é dominar
- RN-717 — O desvio do agente que a Anamnese observa vira sinal do produto, sem dado pessoal
- RN-718 — Quem grava as ações de uma sessão no cache faz a MESMA leitura do fio
- RN-719 — Ferramenta de agente aceita lista enviada como texto JSON, e exceção dentro dela volta ao laço
- RN-720 — O PO completa a história que já existe, e não oferece o handoff ao Arquiteto com regra descoberta
- RN-721 — O id encurtado de história ou tarefa é resolvido dentro do projeto
- RN-722 — A Anamnese fecha a janela que avaliou e só roda com interação nova; o resgate de gate pergunta pela task, respeita a decisão humana pendente e estaciona o ciclo velho
- RN-723 — A Infra herda a rede que o Arquiteto declarou para o projeto
- RN-724 — O ciclo de gate estacionado volta por um botão no fio, não só pelo terminal do operador
- RN-725 — Texto com escape literal é decodificado, e a recusa de argumento diz o que chegou
- RN-726 — Crédito do provedor esgotado pausa o dev agent, com origem
infra, sem queimar as tarefas seguintes - RN-727 — A história draft se corrige e se arquiva, pelo PO e pelo usuário, sem apagar nada
- RN-728 — A mensagem do usuário tem uma bolha só, e o card do Dev Lead tem um primário só
- RN-729 — A PR de infra mira
maine diz onde mergear; a sidebar abre só o projeto aberto - RN-730 — O 402 do provider tem
codepróprio, e é ele que decide o crédito esgotado - RN-731 — O fecho do turno diz o que foi gravado com o número do servidor
- RN-732 — O texto do turno passa pela mesma régua de escape dos argumentos
- RN-733 — A falha de crédito diz o que fazer, e o
reasonnunca é a tupla - RN-734 — O caminho OpenAI-compatível manda o teto de saída SEMPRE
- RN-735 — A rede
noneda imagem do Arquiteto diz que não instala dependências - RN-736 — O campo "Nome do projeto" não ganha foco sozinho nem se chama "name"
- RN-737 — A resposta cortada pelo teto de saída é sinalizada, não executada e dita
- RN-738 — Parar container de projeto é imediato, e a linha da
/containersrelê ao decidir - RN-739 — O diagnóstico leva o corpo de erro do provider inteiro, e a bolha segue curta
- RN-740 — O campo "Nome do projeto" declara que não sugere nada, e o resto da lacuna é da extensão
- RN-741 — O raciocínio tem orçamento próprio e não come a saída visível
- RN-742 — O dev agent não morre calado, e a resposta HTTP tardia não fica na caixa dele
- RN-743 — Bloquear a task preserva o trabalho do worktree, e a próxima parte dele
- RN-744 — O dev sabe que o shell é
she começa vendo o próprio worktree - RN-745 — Na resposta cortada, só a chamada incompleta é recusada
- RN-746 — O fecho do Arquiteto diz o que gravou, e as escritas recusadas são contadas
- RN-747 — O plano do Dev Lead diz quantos dev agents sobem, não quantos pede
- RN-748 — A espera por aprovação fecha a faixa do turno e leva o cartão à vista
- RN-749 — A resposta cortada pelo teto oferece a continuação num clique
- RN-750 — O colapso por agente deixa o fecho de cada agente aberto
- RN-751 — A Sessão e o catálogo não saltam: composer, aba ativa, barra de lote e rolagem
- RN-752 — PR de infra mergeada sai de "PRs de infra em revisão"
- RN-755 — Ligar o modo automático não aprova o cartão onde foi ligado
- RN-756 — A Anamnese só roda com interação de conteúdo técnico do sujeito; aprovar não conta
- RN-757 — O
terminalauto-aprovado espera o comando, e o teto do comando é 2 min - RN-758 — O recorte do Jev nunca tira a ferramenta de obrigação do agente
- RN-759 — O passo recortado avisa ao modelo que o menu é um recorte
- RN-760 — A próxima task do dev agent parte da última branch dele ainda não mergeada
- RN-761 — Dependência instalada não entra no repositório:
.gitignorebase, commit que a exclui e gate que a acusa - RN-762 — O bloqueio por ciclo de correção esgotado grava a origem
politica - RN-763 — Encerrar a sessão de execução para os dev agents e os gates, e "Parar execução" na aba Executores
- RN-765 — O gate de QA julga a TAREFA, e RF de tarefa irmã é observação
- RN-766 — O gate parado esperando clique é dito, e a oferta em lote cobre os subagentes de QA
- RN-768 — Na aba PRs, o texto ao lado do Merge diz a verdade do botão
- RN-769 — Encerrar sessão com execução ativa pergunta antes, e o estado aparece traduzido
- RN-770 — Miudezas da tela de projeto: autor da PR de ADR, modelo da Infra, título da PR do dev, selo da execução, caminho e tabela
- RN-772 — O Arquiteto lê o status ATUAL das ADRs que propôs
- RN-773 — O Arquiteto lê o backlog, e consulta antes de afirmar estado
- RN-774 — A primeira tarefa de cada módulo tem o dobro do teto por tarefa
- RN-776 — Tarefa da execução esperando alguém segura a sessão de execução
- RN-777 — Desbloquear a tarefa acorda o dev do módulo DELA
- RN-778 — O dev agent órfão fecha por evento novo no boot
- RN-779 — O worktree da task (re)pegada parte da
devATUAL e a integra - RN-780 — Resposta só de raciocínio cortada pelo teto é corte, não desistência
- RN-781 — A mensagem de commit do dev não grava pendência que é do sistema
- RN-782 — Aceitar o parâmetro de raciocínio não é pedir raciocínio
- RN-783 — Os dev agents de execução rodam com o raciocínio desligado
- RN-784 — As leituras de estado do Arquiteto entram no piso do Jev
- RN-785 — Requisito que depende de outra história ainda não feita é observação no gate de QA
- RN-786 — O gate de QA lê o contrato do módulo, e divergência com a história é observação
- RN-787 — O gate conta o diff da PR contra a
devda origem, e o parecer de QA grava lista - RN-788 — Decisões e linha do tempo do time não afirmam sobre o que não leram
- RN-789 — Na tela de Sessão, a sidebar marca a aba onde a sessão está listada
- RN-790 — O README de como subir o entregável é critério do DoD que o PO escreve
- RN-792 — Ao declarar o contrato, o Arquiteto recebe as rotas das histórias que o contrato não declara
- RN-794 — Sem execução vigente, a tela diz o que ficou pendente e religa pelo mesmo caminho
- RN-796 — O item do gitleaks diz a regra e o trecho com o segredo mascarado
- RN-797 — A task cuja branch não tem diff contra a
devfecha como "já na dev" - RN-798 — O QA confere os comandos do README tocado pela entrega contra os scripts
- RN-800 — A linha do tempo do time filtra por família, não pela roster da sessão mais recente
- RN-801 — O nome da nova sessão não convida o gerenciador de senhas
- RN-802 — A estimativa do plano do Dev Lead soma o dobro da primeira tarefa de cada módulo
- RN-803 — A oferta em lote do modo automático fica inerte até saber quem já está ligado
- RN-804 — O cartão do plano do Dev Lead oferece o modo automático em lote antes de aprovar
- RN-805 — O plano de teste gravado é o que a ferramenta aceitou
- RN-806 — Um ciclo de QA por tarefa: pedido anterior ao veredito é descartado
- RN-807 — O
execque estoura o teto volta como estouro, e o comando morre dentro do container - RN-809 — As obrigações de módulo e imagem do Arquiteto entram no piso do Jev
- RN-810 — Falha de rede passageira do provider é retentada, e o bloqueio dela é
infrasem contar no disjuntor - RN-811 — O "já na dev" compara com a
devdo remoto atualizada - RN-812 — A PR aberta da mesma branch é reaproveitada, nunca duplicada
- RN-813 — Tarefa que toca o ponto de entrada exige evidência de que ele sobe
- RN-814 — O parecer do QA lista todas as lacunas numa volta
- RN-815 — O "Parar execução" conta as tarefas em curso E em revisão, lidas do backlog
- RN-816 — O botão não muda de lugar quando um bloco tardio chega
- RN-817 — O QA roda a suíte em estado limpo, e teste pulado não é verde
- RN-818 — A evidência do ponto de entrada é a que o ambiente do dev produz
- RN-819 — O QA varre regra por regra antes de emitir
- RN-820 — O container de projeto volta sozinho quando o daemon reinicia
- RN-821 — Registrado rodando e observado parado oferece "Subir de novo"
- RN-822 — O primeiro clique em Merge abre o cartão sem esperar a fila
- RN-823 — O ciclo de gate que o reinício do engine matou é retomado no boot, e o fio diz isso
- RN-824 — Depois do mapa de módulos, o composer diz que o próximo passo é confirmar a arquitetura
- RN-825 — O chat mostra as PRs prontas para merge e propõe o merge ali
- RN-826 — O chat lista as tarefas bloqueadas e desbloqueia ali
- RN-827 — O painel de contexto conta a sessão inteira, e a janela só dá o detalhe
- RN-828 — "Arquivos tocados" inclui a sessão de execução ligada, com teto e total real
- RN-829 — O avatar de quem fala no fio é o do agente, no streaming e depois dele
- RN-830 — O composer respeita a composição de acento, e o fio fala com o leitor de tela
- RN-831 — A mensagem que não foi enviada fica no fio, com "tentar de novo"
- RN-832 — O dev agent sabe que
report_donefaz commit, push e PR, e que teste novo entra no scripttest - RN-833 — Todo socket Phoenix do web se descarta, e o substituído não age
- RN-834 — O nome do projeto no assistente não se chama "title"
- RN-835 — O "Desbloquear" da Visão geral não se move e diz o que aconteceu
- RN-836 — O fio oferece "ir ao fim" quando chega conteúdo para quem subiu
- RN-837 — Markdown do fio: blocos novos e prefixo de stream sem marcador cru
- RN-838 — O QA de Automação roda com o raciocínio desligado
- RN-839 —
report_doneereport_blockedentram no piso do Jev dos dev agents - RN-840 — a ferramenta de parecer de cada agente de gate entra no piso do Jev
- RN-841 — A fila "PRs prontas" se relê sem recarregar a página
- RN-842 — O rótulo do nome do projeto não diz "Nome"
- RN-843 — Um cartão de decisão por ação no chat
- RN-844 — O painel de contexto lista as regras, as decisões e os arquivos das PRs da sessão inteira
- RN-845 — A leitura das ADRs propostas diz se a PR já foi mergeada
- RN-846 — A rota HTTP vai ao README e o erro de entrada é do projeto
- RN-847 — A PR mergeada continua dizendo os arquivos que mudou
- RN-848 — O efeito de ação executada dentro de um pedido interno avisa o canal da sessão
- RN-849 — O turno de prontidão da arquitetura abre com o estado atual das ADRs
- RN-850 — A rota entra na seção "Rotas HTTP" e o README não leva nota de processo
- RN-851 — O compose da Infra sobe o APP na máquina do usuário, e a PR declara como rodá-lo
- RN-852 — A PR de infra declara como rodar o entregável, e isso vira artefato
- RN-853 — O dev expõe OpenAPI e Swagger quando a tarefa toca rotas
- RN-854 — O QA prova
/openapi.jsone/docsdentro do container - RN-855 — A Visão geral mostra como rodar o entregável, declarado e não verificado
- RN-856 — Desbloquear não encerra a execução, e a tarefa em curso órfã tem volta
- RN-857 — O passo de correção do dev agent tem escrita e terminal no recorte do Jev
- RN-858 — A pergunta em aberto de agente é registro durável, e só o autor da sessão a responde
- RN-859 — A decisão do usuário chega a quem trabalha, e destrava a correção da história
ready - RN-860 — O gate de QA espera o usuário sem gastar o ciclo de correção
- RN-861 — As perguntas em aberto são fila própria no chat, e o aviso de prontidão não bloqueia
- RN-862 — A pergunta em aberto do lado do engine: ferramenta, veredito e decisão no contexto
- RN-863 —
api_docsé sempre/docs, toda rota entra no OpenAPI, e o QA reprova a que falta - RN-864 — Falha passageira de rede volta sozinha em até 3 tentativas, e o dev pausa
- RN-865 — Endpoint e verbo HTTP com caminho também ligam a conferência do OpenAPI, e ela cobre as rotas do código
- RN-867 — O aviso do gate estacionado diz o motivo gravado, e a pergunta em aberto aponta o cartão dela
- RN-868 — O tick do resgate de gates é uma corrente só
- RN-870 — O veredito só espera pergunta que existe e está aberta
- RN-871 —
afeta.regrasaceita o título exato da regra e guarda o id - RN-872 — As outras decisões do projeto chegam ao dev e ao QA, em seção própria
- RN-874 — O PO recebe no turno as decisões do usuário e as perguntas abertas do projeto
- RN-876 — O
needs_user_decisionrecusado pela api volta ao QA, e só o aceite estaciona o gate - RN-877 — O recorte do QA manda conferir as decisões antes de pedir decisão
- RN-878 — O idioma do agente de execução vale desde a primeira frase
- RN-879 — URL absoluta do entregável com a porta, e o mesmo
codepara o mesmo erro - RN-880 — O entregável responde CORS configurável, com
serversrelativo e swagger-ui pinado - RN-881 — O engine imprime as outras decisões do projeto para o dev e o QA
- RN-882 — O composer da Sessão não perde tecla na digitação rápida
- RN-883 — A oferta em lote do modo automático também no chat da Sessão
- RN-884 — A pergunta respondida oferece "Corrigir a história"
- RN-885 — O CORS do entregável usa a porta PUBLICADA, e o QA confere o header nas duas origens
- RN-886 — O 403 de orçamento do OpenRouter é crédito esgotado, com limite, gasto e reset
- RN-887 — O bloqueio da tarefa é ortogonal ao status, e quem mostra lê os dois
- RN-889 — A oferta em lote do modo automático aparece no chat de qualquer sessão ativa do projeto em execução
- RN-890 — O QA cobra o código de saída do comando de linha, na recusa também
- RN-891 — A interface tem quatro idiomas, com pt-BR como padrão e fallback
- RN-892 — O prefixo estável da chamada vai marcado para o cache de prompt, e a capability é ligada só no OpenRouter, provada
- RN-893 — O PO declara a borda do valor informado no RF e no DoD
- RN-894 — Épico com o mesmo título de outro do projeto é recusado
- RN-895 — A recusa de argumento diz o que chegou e o formato esperado
- RN-896 — O
epic_idé validado antes da api - RN-897 — O corte do provider por
max_tokensnum gate é origemmodelo - RN-898 — Resposta cortada pelo teto, sem texto algum, fecha o turno dita
- RN-899 — Resposta vazia sem corte vira agent.error de origem modelo
- RN-900 —
write_filerecusa reescrever o README e apagar a seção de uso da Infra - RN-901 — A oferta de modo automático do chat inclui os dev agents do plano aprovado
- RN-902 — Recriar o container congela a decisão de imagem vigente, e a imagem desatualizada é avisada
- RN-903 — O 429 do provider é limite de uso do modelo, não falha de rede
- RN-904 — O corte do teto de saída não repete a chamada com o catálogo inteiro
- RN-905 — O teto de passos diz o que foi gravado e o que falta, e oferece continuar
- RN-906 — A api recusa a rede
nonequando a stack de um módulo baixa dependências - RN-907 — O OpenRouter recebe uma chave de sessão por agente, e a conversa fica presa ao upstream que a atendeu
- RN-908 — O kickoff do PO pede o backlog em lote, depois de ler, em camadas
- RN-909 — O 9Router é o 10º provider: URL por instalação, credencial obrigatória, preço público de curadoria
- RN-910 — O teto padrão por área é 5 no dev, 4 no qa e 2 na infra
- RN-911 — Provider é global; Configurações do projeto só escolhem modelo; a matriz mora na Conta
- RN-912 — O modelo da área é uma caixa na linha do lead, em "Modelos por agente"
- RN-913 — Falha igual repetida de ferramenta no turno corrige na 2ª e para na 3ª
- RN-914 — O orçamento de raciocínio é por modelo, só para quem o respeita
- RN-915 — O raciocínio é contado no stream e abortado no limite; o custo abortado é estimado e depois reconciliado
- RN-916 — Resposta cortada pelo raciocínio é retentada UMA vez com o raciocínio desligado
- RN-917 — O OpenRouter recebe um teto de preço por chamada, e sem upstream no teto a chamada repete UMA vez sem ele
- RN-918 — O agente escreve o próprio plano com
registrar_plano, e o últimoagent.plané o vigente - RN-919 — O diário é a projeção do log mais o plano, sem tabela, e diz o que está confirmado e o que ficou sem desfecho
- RN-920 — O turno conversacional que o reinício matou é retomado UMA vez no boot, se recente
- RN-921 — O botão "Retomar" do fio é gesto humano, sem teto, e só vale para o turno interrompido
- RN-922 — O dev agent que cai dentro da janela retoma do commit da MESMA tarefa, uma vez
- RN-923 — O resgate automático de gate vale uma vez por ciclo, no boot e no tick, e o "Retomar gate" zera o contador
- RN-924 — A correção de gate que chega ao Infra Lead com turno em curso é durável
- RN-925 — Cada container tem página de detalhe com o estado registrado e o observado separados e as URLs declaradas
- RN-926 — A rota de providers com chave devolve só os nomes, e a chave é a do TITULAR
- RN-927 — O runner grava a chave de API de LLM do usuário por
POST /runner/llm-credentials, só com chave de máquina, sem sobrescrever sem confirmação - RN-928 — O comando do app é argumento de um supervisor constante, e sem ele o container é o de sempre
- RN-929 — Porta publicada vai só ao loopback, e DNS e
extra_hostssão IP literal e nome de lista fechada - RN-930 — A instância de QA é efêmera, só mexe no que tem
brabo.papel=qae sobe os serviços que a Infra declarou por digest - RN-931 — As telas de providers e do catálogo mostram só o que tem chave do TITULAR, com a cor do provider
- RN-932 — A rede do container é artefato declarado por humano e só vale no container recriado
- RN-933 —
run.appdeclara o comando do app e só o piloto automático dispensa a aprovação da PR de infra - RN-934 —
container_recreateremove e sobe de novo, no teto absoluto decontainer_remove - RN-935 — A Infra declara os serviços da instância de QA (
run.qa), e a api guarda uma instância por tarefa com teto de 1 por projeto - RN-936 — Subir a instância de QA é a ação
qa_environment_start, semeadaauto_approvepara o QA; remover é automático e fora do teto docontainer_remove - RN-937 — A
container-specde QA e a limpeza de órfãs - RN-938 — O
terminalsó vai para a instância de QA quando o ator é oqa-automacaoe a tarefa é do projeto - RN-939 — A página do container edita a rede só para
maintainer, valida antes e recria porcontainer_recreate - RN-940 — O gate de QA-automação sobe uma instância de QA efêmera, testa nela e a remove
- RN-941 — O serviço de QA roda com usuário e comando declarados, nunca como root, e leva o nome da instância mais o do serviço
- RN-942 — O recorte do Jev nunca tira do PO a ferramenta de declarar dúvida
- RN-943 — O bloco de pendências do chat se chama "Pendências deste projeto"; só a aba Executores diz "de outras sessões"
- RN-944 — O QA de automação recebe o pedido da volta anterior, o plano é lido por tipo e o dev sabe onde o
write_fileescreve - RN-945 — Os agentes de QA nomeiam o corte pelo teto de saída em vez de "o modelo parou"
- RN-946 — O corte pelo teto no meio do texto também é nomeado pelos agentes de QA
- RN-947 — O comando do agente no
execnão aparece na linha de comando de nenhum processo do container - RN-948 — Higiene do entregável: banco SQLite fora do commit, pasta dos comandos dita, rotas do README preservadas
- RN-949 — Chamada de ferramenta escrita como texto não vira resposta no fio
- RN-950 — O 9Router recebe as ferramentas, o vínculo confere a capability do provider e ferramenta sem capability lança
- RN-951 — O fio da Sessão acompanha SEMPRE a última mensagem
- RN-952 — O relatório do owner recorta por projeto e por sessão, e o membro vê o total do projeto sem credencial
- RN-953 — O não-owner vê o PRÓPRIO consumo no workspace, somado por projeto
- RN-954 — A cobrança do modelo é uma marca CURADA, e a assinatura é separada do US$ pago
- RN-955 — GET interno com conexão envenenada do pool é repetido UMA vez
- RN-956 —
readinesseoffer-infra-handoffsobem o agente antes de chamar, comomessage - RN-957 — "aborted" é falha de origem
infra - RN-958 — O usage do 9Router é corrigido no provider: −2 000 só na 0.5.112, e o cache do topo conta
- RN-959 — O 503 do 9Router que embrulha um 4xx do upstream é classificado pelo status de dentro
- RN-960 — O
GraphStorereconecta depois de boot sem Neo4j, e o aviso diz a causa - RN-961 — O aviso de recorte diz que as ferramentas fora dele podem ser pedidas neste passo
- RN-962 — O compose do entregável usa volume nomeado, nunca bind-mount relativo
- RN-963 — O gasto tem página GLOBAL e aba do PROJETO, e o orçamento tem editor
- RN-964 — O preço e a cobrança são curados na tela de Providers, e a edição manual protege o número do sync
- RN-965 — O catálogo sugere o preço do FABRICANTE do modelo e a faixa de cobrança do 9Router, e quem aplica é o humano
- RN-966 — O 9Router 0.5.112 faz três coisas por trás:
offdesliga RTK/Headroom/Caveman/Ponytail e não o Custom Prompt; o OAuth do Claude redige o raciocínio; e camufla as ferramentas - RN-967 — A faixa do turno mostra o plano que o agente registrou no turno em curso
- RN-968 — O formulário de perguntas estruturadas é um questionário passo a passo
- RN-969 — A ocupação da janela do agente na sessão é o
input_tokensda última chamada dele, fora o Jev - RN-970 — Na árvore do time, cada delegação de um lead aparece como subagente
- RN-971 — A paleta de comandos Ctrl+K/⌘K busca projetos, sessões e ações só do que já está em memória
- RN-972 — O código no chat e na aba Código é realçado pelo shiki
- RN-973 — A série diária do gasto é desenhada pelo Chart, carregado sob demanda, e também existe como tabela
- RN-974 — O fio mostra os passos do turno encerrado, recolhidos, sem os args
- RN-975 — O painel de pendências do chat é uma faixa de abas, e cada fila pagina de 3 em 3
- RN-976 — As ações de passo da conversa são sugestões acima do destinatário, com o mesmo predicado e o mesmo endpoint, e a inércia é dita em texto
- RN-977 — O fio da Sessão para de seguir quando a pessoa sobe e oferece "Ir ao fim"
- RN-978 — As mensagens na fila de um agente aparecem num painel acima da caixa, e a cancelada some
- RN-979 — Decisão, mapa de módulos, C4, imagem e parecer de QA/SecOps ganham cartão no fio
- RN-980 — As Configurações do projeto são uma página por grupo, com os grupos como abas dentro da página; só o grupo aberto monta
- RN-981 — Na Sessão, as caixas de pergunta e de aprovação ficam na borda do fio, e o contexto e o esqueleto de carregamento ganham o tratamento R3
- RN-982 — As fontes de uma resposta são as leituras ok do próprio turno, registradas pelo servidor, nunca pelo texto do modelo
- RN-983 — O clique numa fonte consultada é gravado em tabela própria e nunca é voto
- RN-984 — O acesso rápido por papel só existe com
BRABO_AMBIENTE=local - RN-985 — A citação inline é marcada pelo modelo e validada contra as fontes do próprio turno; índice inventado não é mostrado
- RN-986 — O anexo do chat aceita texto/código e imagem, com tipo pelos bytes e tetos
- RN-987 — O
chat.messageguarda só a referência do anexo, nunca os bytes - RN-988 — Todo
viewerdo projeto lê o anexo, escopado a projeto e sessão - RN-989 — Imagem só vai a modelo com visão provada; sem ela, o agente é avisado
- RN-990 — A imagem anexada vai ao LLM só no turno em que a mensagem chegou
- RN-991 — Uma mensagem pode ter vários destinatários, e o log diz quais
- RN-992 — O composer interpreta
@e/só na tela:@escolhe destinatários entre os agentes da sessão,/dispara a ação do botão ou insere um prompt, e nenhum comando decide por teto - RN-993 — O raciocínio do modelo é gravado inteiro fora do
content, aparece ao vivo e sódeveloperou mais o lê; nunca volta ao modelo - RN-994 — Na Sessão, a pergunta estruturada vem depois da mensagem do agente que a introduz
- RN-995 — O catálogo do agente vem do engine e é só leitura: identidade e ferramentas do engine, instrução vigente do banco, sem prompt composto e sem schema, e engine fora do ar é "não sei", nunca "sem ferramentas"
- RN-996 — O parecer de QA leva o resultado por teste lido do relatório JUnit pelo engine; sem relatório, diz por quê
- RN-997 — O catálogo da Anthropic nasce com preço de lista datado e
supportsReasoningdo SDK; preço manual nunca é sobrescrito - RN-998 — A migração restaura o banco num banco vazio, mantém a chave mestra, é retomável e entende a linha de versões
- RN-999 — A chamada irmã da pendente recebe recusa, para todo
tool_useter o seutool_result - RN-1000 — Na Anthropic direta o raciocínio desligado é POR MODELO, o adaptativo ganha a folga e o
thinking_tokenschega ao metering - RN-1001 — O decorator de tracing repassa
aceitaRaciocinioDesligado, então a retentativa sem raciocínio roda de verdade - RN-1002 — O agente fecha a pergunta em aberto que o usuário respondeu no chat; a resposta humana e a do agente dividem um núcleo só
- RN-1003 — O agente fecha a pergunta em aberto que o usuário já respondeu no chat, só quando a resposta é inequívoca
- RN-1004 — O plano de execução do Dev Lead é recusado quando um módulo sem tarefa é dependência de um módulo que tem tarefa
- RN-1005 — O claim não entrega a tarefa de um módulo enquanto houver tarefa aberta de um módulo do
dependsOndireto dele - RN-1006 — O Dev Lead cria a task de fundação do módulo de que outros dependem
- RN-1007 — O Claude Haiku 5.5 na Anthropic direta tem uma folga de raciocínio curada de 12288 tokens
- RN-1008 — O provider Anthropic direto usa prompt caching, soma as parcelas de cache na entrada e precifica a chamada pela tabela do fabricante
- RN-1009 — O merge que fecha uma tarefa acorda os módulos que dependem dela
- RN-1010 — Conflito ao integrar a
devno claim vai para o agente; só o que ele não resolve bloqueia - RN-1011 — O plano do Dev Lead é recusado quando uma task cita rota que o contrato declara em outro módulo
- RN-1012 — Task bloqueada pelo modelo acorda o Dev Lead, que pede ao Arquiteto o contrato que falta
- RN-1013 — Cada mensagem assistant do turno guarda os próprios blocos de raciocínio, e o prefixo enviado só cresce
- RN-1014 — O provider Anthropic direto também põe um ponto de cache no penúltimo turno
user - RN-1015 — Na Anthropic direta, as mensagens
systemtardias vão para o fim do último turnouser, depois do ponto de cache, nunca para osystemdo topo - RN-1016 — O reporter JUnit é configurado na primeira task de código do módulo, nunca numa task própria
- RN-1017 —
git pushde terminal para branch protegida, com force,--allou--mirroré decisão humana, mesmo no modo automático - RN-1018 — O agente retira uma regra de negócio obsoleta, citando a substituta ou a resposta do usuário; todo leitor a ignora
- RN-1019 — No modo automático, um
git mergede terminal dentro do escopo da tarefa é auto-aprovado - RN-1020 — O Criativo e o PO retiram sozinhos uma regra de negócio obsoleta, citando a substituta ou a resposta do usuário
- RN-1021 — Depois de um merge na
maindo projeto, a pasta do projeto avança até ela - RN-1022 — O repositório do projeto é trunk: o bootstrap cria e protege só a
main, merges nela avisam o engine, e projetos antigos migram por script - RN-1023 — Projeto cuja
devestá à frente damainrecusa o claim, nomeando a migração - RN-1024 — O app é reiniciado no lugar: só o processo dele, nunca o container nem os outros
exec - RN-1025 —
POST /containers/:projectId/app/restartreinicia o processo do app no lugar - RN-1026 — A api reinicia só o processo do app no container do projeto, com resposta tipada
- RN-1027 — No modo
runnera pasta do projeto avança pelo canal do runner, e o avanço é reaplicado quando o runner entra - RN-1028 — Depois que a pasta do projeto avança, o processo do app é reiniciado no lugar, uma vez por rajada de merges
- RN-1029 — Depois do merge da PR de infra que declara
run.app, a api propõecontainer_recreatecom a porta do app, uma vez - RN-1030 — Todo nó do grafo gravado por
MERGEnuma chave natural tem restrição de unicidade, e a subida funde as duplicatas preexistentes antes de criá-la - RN-1031 — O catálogo de funcionalidades e o mapa caminho → funcionalidade moram num arquivo só, e a spec se liga por tag
- RN-1032 — A PR para a
devroda o regressivo só das funcionalidades que tocou, sob o checkRegressivo do brabo-qa, que NUNCA é exigido - RN-1033 — Três regras de arquivo transversal valem antes do mapa: nada, catálogo inteiro e sem dono
- RN-1034 — A PR para a
mainroda o catálogo inteiro noE2E do brabo-qa, e funcionalidade sem spec aparece como "sem cobertura" sem reprovar - RN-1035 — A PR para a
devpublica a imagemsha-<12>assinada, só do próprio repositório, e a limpeza apaga as órfãs - RN-1036 — A indexação de docs nunca descarta em silêncio o conteúdo de um arquivo
- RN-1037 — O
distdosharednão exporta nenhum valor - RN-1041 — O
docker-cli.jsoné o espelho das constantes de controle dodocker-cli.ts - RN-1043 — Todo run que lê outro repositório publica
## Vínculosno topo do Summary, e o helper nunca reprova o job - RN-1044 — O run de destino de um dispatch ou de uma tag tem
run-namecom a origem, e a correlação do dispatch vai no nome comoc=<run_id>-<attempt> - RN-1045 — O check do App aponta para o run do
brabo-qadesde o início, e o run de origem registra o link do run disparado - RN-1046 — A busca híbrida devolve no máximo N trechos do mesmo arquivo
- RN-1047 — A PR declara a dependência com
Depende-de: viralabs-dev/<repo>#<n>, e a linha malformada reprova em vez de passar calada - RN-1048 — O check
Dependências de mergetem quatro estados, nuncaneutral, e a espera é amarela - RN-1049 — O merge da dependência atualiza o check das PRs que a citam, e o cron horário é só rede
- RN-1050 — O ciclo de dependências reprova com o caminho inteiro, até a profundidade 5