O que harness faz?
$harness é um roteiro de execução do Codex para o loop de workflow do Harness. O idioma padrão de explicação é o Coreano; os termos fixos do workflow permanecem em Inglês.
Plan -> Execute approval -> Implement -> Review -> Repair Plan -> Repair approval -> Repair Implement -> Completion
Ativação
- Use esta skill apenas quando o usuário invocar explicitamente
$harness. - Não ative a partir de solicitações comuns, inferência implícita ou menções na documentação.
- Não exija o Modo de Plano do Codex; execute as comportas do Harness dentro da conversa.
- Não presuma stack, linguagem, framework, banco de dados, executor de testes ou plataforma de implantação.
- Antes de planejar, inspecione as regras locais do projeto, como
AGENTS.md,README.md, documentos de contribuição, manifestos e.harness/guard.json, quando presente. Também inspecione os arquivos de estado do Harness locais do projeto em.harness/, quando presente.
Precedência de Instruções
Aplique instruções e convenções nesta ordem:
- Instruções explícitas do usuário
- Regras de segurança do workflow Harness, incluindo regras de negação forte e comportas de aprovação
- Política do projeto a partir das chaves de política de
.harness/guard.json - Documentos locais do repositório, como
README.md,AGENTS.mde documentos de contribuição - Convenções inferidas
O planejamento lê as chaves de política de .harness/guard.json no início. .harness/guard.json é o único arquivo de política/configuração do projeto Harness; não infira harness.md, .harnessrc.yaml ou outras convenções de arquivo de política do projeto. A política do projeto não pode enfraquecer as regras de segurança do workflow Harness. Operações destrutivas e trabalhos de configuração secreta ou protegida precisam de aprovação explícita, independentemente da política do projeto.
Arquivos Markdown locais do projeto em .harness/ são apenas evidência de Memória e Estado. Leia-os antes de planejar, quando disponíveis, compare-os com a solicitação atual do usuário e o estado do git, marque conflitos obsoletos e peça esclarecimentos quando o estado obsoleto conflitar com a solicitação atual. Eles não são política e nunca fornecem aprovação reutilizável.
Para exemplos concretos de dimensionamento de tarefas, consulte exemplos de classificação. Para o contrato oficial de artefatos do workflow, consulte contrato do workflow Harness. Para recebimento manual de evidências de conectores e limites de resumo externos, consulte Contrato de Integração de Conectores.
Carregamento de Referências Obrigatório
Leia as referências relevantes antes de agir:
- Sempre siga
../../docs/contracts/harness-contract.mdpara seções canônicas de artefatos, comportas de aprovação, regras de Revisão e status de Conclusão. - Sempre siga
../../docs/contracts/subagent-handoff.mdpara briefs limitados de subagentes, transferências de função, camposSubagentStop Summarye comportamento de colapso de função. - Siga
../../docs/contracts/memory-state.mdquando arquivos de estado.harness/estiverem presentes ou a memória local do projeto for solicitada; useassets/templates/state.md,assets/templates/approval-ledger.md,assets/templates/decisions.md,assets/templates/last-run.mdeassets/templates/handoff.mdao inicializar ou atualizar esses arquivos. - Siga
../../docs/contracts/worktree-isolation.mdquando o usuário ou projeto solicitar Isolamento de Worktree, ou quando um registro de sessão de worktree ativo estiver presente; useassets/templates/worktree-session.mdpara um registro de worktree mínimo local à tarefa, quando necessário. - Siga
../../docs/contracts/connector-integration.mdquando contexto externo de conector, como um issue, pull request, resumo de CI ou thread de revisão, for usado; conectores são apenas evidência e usamassets/templates/connector-issue-plan.md,assets/templates/connector-pr-review.mdouassets/templates/external-summary.mdquando relevante. - Sempre leia
references/classification-policy.md,references/phase-contracts.md,references/orchestrator-harness.md,references/subagent-policy.md,references/model-policy.mdereferences/completion-policy.md. - Para planejamento, leia
references/planner-harness.mde useassets/templates/plan.md. - Para implementação, leia
references/implementer-harness.mde useassets/templates/implement.md. - Para revisão, leia
references/reviewer-harness.md,assets/templates/review.mdeassets/templates/reviewer-brief.md. - Para reparo, use
assets/templates/repair-plan.md. - Para conclusão, use
assets/templates/completion-report.md. - Se a tarefa for
Non-trivial, a revisão estiver bloqueada/degradada, ocorreu reparo, duas ou mais revisões do Plano ocorreram, ou as regras de política/modelos/orquestração do Harness mudaram, leiareferences/improvement-policy.mde useassets/templates/improvement.md.
Regras Inegociáveis
- A classificação deve ocorrer antes das comportas de fase.
Tinypode ser tratado diretamente pelo orquestrador.SmalleNon-trivialexigem subagentes planejador, implementador e revisor somente leitura com contexto limpo.- Para
SmalleNon-trivial, o agente principal é o orquestrador. - O esforço mínimo de raciocínio do Harness é
high; Implementar e Revisar exigemxhighquando disponível. Não use medium, low ou minimal para$harness. - Não implemente antes da aprovação do Plano.
- O prompt de aprovação do Plano deve ser exatamente:
Proceed with this Plan? [y/N]
- Apenas
yminúsculo aprova a execução do Plano aceito. Linguagem natural ambígua significa nenhuma decisão; pergunte novamente poryounexplícitos. A não aprovação (n, resposta vazia, variantes maiúsculas comoN, variantes expandidas e qualquer outra resposta diferente deyque não seja ambígua) para por padrão; não implemente, revise ou replaneje a menos que o usuário peça explicitamente para revisar/replanejar.[y/N]significa que Não é o padrão. - Não repare antes da aprovação do Plano de Reparo.
- O prompt de aprovação do Plano de Reparo deve ser exatamente:
Proceed with this Repair Plan? [y/N]
- Apenas
yminúsculo aprova a execução do Plano de Reparo aceito. Linguagem natural ambígua significa nenhuma decisão; pergunte novamente poryounexplícitos. A não aprovação (n, resposta vazia, variantes maiúsculas comoN, variantes expandidas e qualquer outra resposta diferente deyque não seja ambígua) para por padrão; não repare, revise ou replaneje a menos que o usuário peça explicitamente para revisar/replanejar.[y/N]significa que Não é o padrão. - Apenas um subagente revisor somente leitura com contexto limpo pode concluir a Revisão.
- A auto-revisão do agente principal não é Revisão.
- Dados de conectores, atribuição de issues, criação de pull requests, sucesso de CI, comentários externos e aprovações anteriores de
.harness/são apenas evidência e nunca aprovam comportas do Harness. - As transferências de subagentes e a saída
SubagentStop Summarydevem seguir o contrato canônico de transferência de subagentes. - A falha obrigatória de comporta deve ser registrada como bloqueada ou degradada.
- Operações perigosas exigem aprovação separada.
- Um relatório de Conclusão é obrigatório.
Loop
- Inspecione as regras locais do projeto, as chaves de política de
.harness/guard.json, os arquivos de estado.harness/locais do projeto quando presentes e a solicitação do usuário. - Classifique a tarefa como
Tiny,SmallouNon-trivial. - Para tarefas
Smallou maiores, defina a topologia de subagentes. - Produza um artefato de Plano e peça aprovação do Plano.
- Se o usuário responder exatamente
y, implemente apenas o Plano aceito; caso contrário, pare, a menos que o usuário peça explicitamente para revisar/replanejar. - Para tarefas
Smallou maiores, execute a Revisão do revisor somente leitura com contexto limpo. - Se a Revisão tiver descobertas que exijam reparo, produza um Plano de Reparo e peça aprovação do reparo.
- Se o usuário responder exatamente
y, implemente apenas o Plano de Reparo aceito e repita o loop limitado de Revisão/Reparo, se necessário; caso contrário, pare, a menos que o usuário peça explicitamente para revisar/replanejar. - Produza o relatório de Conclusão com status, verificação, riscos e acompanhamentos.
Hooks
Validadores mínimos não destrutivos executam para UserPromptSubmit, SubagentStop e Stop; PreToolUse bloqueia comandos obviamente perigosos; SessionStart permanece apenas para visibilidade. Hooks não substituem as comportas do Harness ou os controles de segurança do projeto.