@orkastery/cli 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/README.md +18 -0
- package/adapters/claude-code/.claude-plugin/plugin.json +1 -0
- package/adapters/claude-code/README.md +195 -5
- package/adapters/claude-code/agents/ork-check.md +1 -0
- package/adapters/claude-code/agents/ork-go.md +1 -0
- package/adapters/claude-code/agents/ork-goal.md +1 -0
- package/adapters/claude-code/agents/ork-master.md +1 -0
- package/adapters/claude-code/agents/ork-plan.md +1 -0
- package/adapters/claude-code/agents/ork-ship.md +1 -0
- package/adapters/claude-code/hooks/hooks.json +2 -1
- package/adapters/claude-code/hooks/ork-guard.js +15 -1
- package/adapters/claude-code/hooks/ork-resposta.js +91 -0
- package/adapters/claude-code/hooks/ork-sensor.js +18 -2
- package/adapters/claude-code/hooks/quota-signal.js +14 -0
- package/adapters/claude-code/mods/autoridade.json +56 -0
- package/adapters/claude-code/mods/ork-clima/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-clima/hooks/contas.ts +283 -0
- package/adapters/claude-code/mods/ork-clima/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-clima/hooks/previsao.ts +393 -0
- package/adapters/claude-code/mods/ork-clima/hooks/register.ts +205 -0
- package/adapters/claude-code/mods/ork-clima/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-clima/types/index.d.ts +80 -0
- package/adapters/claude-code/mods/ork-freio/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-freio/hooks/carga.ts +160 -0
- package/adapters/claude-code/mods/ork-freio/hooks/conferencia.ts +309 -0
- package/adapters/claude-code/mods/ork-freio/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-freio/hooks/lote.ts +270 -0
- package/adapters/claude-code/mods/ork-freio/hooks/register.ts +285 -0
- package/adapters/claude-code/mods/ork-freio/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-freio/types/index.d.ts +127 -0
- package/adapters/claude-code/mods/ork-mensageiro/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/caixa.ts +215 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/painel.tsx +165 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/recepcao.ts +256 -0
- package/adapters/claude-code/mods/ork-mensageiro/hooks/register.tsx +481 -0
- package/adapters/claude-code/mods/ork-mensageiro/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-mensageiro/types/index.d.ts +85 -0
- package/adapters/claude-code/mods/ork-mesa/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/cartoes.tsx +246 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/decidir.ts +110 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/fila.ts +253 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/obvia.ts +98 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/register.tsx +493 -0
- package/adapters/claude-code/mods/ork-mesa/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-mesa/types/index.d.ts +131 -0
- package/adapters/claude-code/mods/ork-pista/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-pista/hooks/acoes.ts +71 -0
- package/adapters/claude-code/mods/ork-pista/hooks/ci.ts +121 -0
- package/adapters/claude-code/mods/ork-pista/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-pista/hooks/pista.tsx +356 -0
- package/adapters/claude-code/mods/ork-pista/hooks/register.tsx +439 -0
- package/adapters/claude-code/mods/ork-pista/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-pista/types/index.d.ts +85 -0
- package/adapters/claude-code/mods/ork-ponte/.claude-plugin/plugin.json +13 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/faixa.tsx +57 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/guarda.ts +410 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/mostrado.ts +55 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/nucleo.ts +157 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/papel.ts +42 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/register.ts +331 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/vigia.ts +76 -0
- package/adapters/claude-code/mods/ork-ponte/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-ponte/types/index.d.ts +178 -0
- package/adapters/claude-code/mods/ork-portao/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-portao/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-portao/hooks/lease.ts +201 -0
- package/adapters/claude-code/mods/ork-portao/hooks/plano.ts +304 -0
- package/adapters/claude-code/mods/ork-portao/hooks/register.ts +339 -0
- package/adapters/claude-code/mods/ork-portao/hooks/verify.ts +152 -0
- package/adapters/claude-code/mods/ork-portao/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-portao/types/index.d.ts +60 -0
- package/adapters/claude-code/mods/ork-radar/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-radar/hooks/colisao.ts +420 -0
- package/adapters/claude-code/mods/ork-radar/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-radar/hooks/mapa.tsx +322 -0
- package/adapters/claude-code/mods/ork-radar/hooks/register.tsx +470 -0
- package/adapters/claude-code/mods/ork-radar/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-radar/types/index.d.ts +72 -0
- package/adapters/claude-code/mods/ork-ritual/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/nota.ts +88 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/register.tsx +494 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/replay.tsx +271 -0
- package/adapters/claude-code/mods/ork-ritual/hooks/ritual.ts +218 -0
- package/adapters/claude-code/mods/ork-ritual/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-ritual/types/index.d.ts +106 -0
- package/adapters/claude-code/mods/ork-sentinela/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/alertas.ts +85 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/despacho.ts +156 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/register.ts +511 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/vigia.ts +186 -0
- package/adapters/claude-code/mods/ork-sentinela/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-sentinela/types/index.d.ts +65 -0
- package/adapters/claude-code/mods/ork-torre/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-torre/hooks/agenda.ts +60 -0
- package/adapters/claude-code/mods/ork-torre/hooks/detalhe.tsx +236 -0
- package/adapters/claude-code/mods/ork-torre/hooks/frases.ts +42 -0
- package/adapters/claude-code/mods/ork-torre/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-torre/hooks/painel.tsx +344 -0
- package/adapters/claude-code/mods/ork-torre/hooks/rede.ts +97 -0
- package/adapters/claude-code/mods/ork-torre/hooks/register.tsx +437 -0
- package/adapters/claude-code/mods/ork-torre/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-torre/types/index.d.ts +108 -0
- package/adapters/codex/skills/ork/SKILL.md +2 -0
- package/adapters/hermes/README.md +64 -1
- package/adapters/hermes/bin/ork-conhecimento-colecoes.sh +14 -0
- package/adapters/hermes/bin/ork-conhecimento-listar.sh +15 -0
- package/adapters/hermes/bin/ork-conhecimento-mostrar.sh +16 -0
- package/adapters/hermes/bin/ork-conhecimento-verificar.sh +15 -0
- package/adapters/hermes/bin/ork-vigia-batida.py +127 -0
- package/adapters/hermes/hermes.plugin.json +4 -0
- package/adapters/hermes/hitl-ingress/__init__.py +101 -8
- package/adapters/hermes/skills/orkastery-devmaster/SKILL.md +3 -3
- package/adapters/openclaw/README.md +83 -10
- package/adapters/openclaw/bin/ork-vigia-batida.js +86 -0
- package/adapters/openclaw/dist/hitl-ingress.js +106 -9
- package/adapters/openclaw/dist/index.js +86 -0
- package/adapters/openclaw/openclaw.plugin.json +34 -4
- package/adapters/openclaw/package.json +2 -2
- package/adapters/openclaw/src/hitl-ingress.ts +103 -9
- package/adapters/openclaw/src/index.ts +94 -0
- package/assets/adapters-en/claude-code/README.md +403 -0
- package/assets/adapters-en/claude-code/agents/ork-check.md +33 -0
- package/assets/adapters-en/claude-code/agents/ork-go.md +33 -0
- package/assets/adapters-en/claude-code/agents/ork-goal.md +34 -0
- package/assets/adapters-en/claude-code/agents/ork-master.md +35 -0
- package/assets/adapters-en/claude-code/agents/ork-plan.md +33 -0
- package/assets/adapters-en/claude-code/agents/ork-ship.md +33 -0
- package/assets/adapters-en/claude-code/commands/check.md +46 -0
- package/assets/adapters-en/claude-code/commands/go.md +46 -0
- package/assets/adapters-en/claude-code/commands/goal.md +55 -0
- package/assets/adapters-en/claude-code/commands/master.md +54 -0
- package/assets/adapters-en/claude-code/commands/onboarding.md +22 -0
- package/assets/adapters-en/claude-code/commands/ork.md +126 -0
- package/assets/adapters-en/claude-code/commands/plan.md +47 -0
- package/assets/adapters-en/claude-code/commands/ship.md +45 -0
- package/assets/adapters-en/codex/skills/ork/SKILL.md +85 -0
- package/assets/adapters-en/hermes/README.md +273 -0
- package/assets/adapters-en/hermes/skills/orkastery-devmaster/SKILL.md +169 -0
- package/assets/docs-en/markdownlint-cli2.jsonc +22 -0
- package/assets/docs-en/padroes/documentacao-de-produto.md +135 -0
- package/assets/docs-en/padroes/roadmap-de-produto.md +100 -0
- package/assets/docs-en/produto/README.md +14 -0
- package/assets/docs-en/produto/_modelo-feature.md +62 -0
- package/assets/docs-en/roadmap/README.md +14 -0
- package/assets/docs-en/roadmap/_modelo-item.md +75 -0
- package/assets/references-en/README.md +25 -0
- package/assets/references-en/code-review-axes.md +82 -0
- package/assets/references-en/definition-of-done.md +74 -0
- package/assets/references-en/performance-checklist.md +53 -0
- package/assets/references-en/security-checklist.md +101 -0
- package/assets/references-en/testing-patterns.md +51 -0
- package/assets/security-scan/defaults/.golangci.yml +2 -0
- package/assets/security-scan/defaults/eslint.config.mjs +11 -0
- package/assets/security-scan/defaults/gitleaks.toml +3 -0
- package/assets/security-scan/defaults/ruff.toml +1 -0
- package/assets/security-scan/tools-agil.json +87 -0
- package/assets/security-scan/tools.json +625 -0
- package/assets/skills-en/core/onboarding/SKILL.md +58 -0
- package/assets/skills-en/core/orkastery-bootstrap/SKILL.md +119 -0
- package/assets/skills-en/core/thread-state/SKILL.md +88 -0
- package/assets/skills-en/governance/decision-triage/SKILL.md +65 -0
- package/assets/skills-en/governance/narrative-guardian/SKILL.md +66 -0
- package/assets/skills-en/governance/roadmap-keeper/SKILL.md +60 -0
- package/assets/skills-en/governance/scope-check-capability-map/SKILL.md +71 -0
- package/assets/skills-en/observability/thread-tracing/SKILL.md +63 -0
- package/assets/skills-en/phases/check-quality/SKILL.md +103 -0
- package/assets/skills-en/phases/go-implementation/SKILL.md +78 -0
- package/assets/skills-en/phases/goal-definition/SKILL.md +69 -0
- package/assets/skills-en/phases/master-metrics/SKILL.md +72 -0
- package/assets/skills-en/phases/plan-specification/SKILL.md +67 -0
- package/assets/skills-en/phases/security-remediation/SKILL.md +70 -0
- package/assets/skills-en/phases/ship-release/SKILL.md +71 -0
- package/assets/skills-en/reviewers/code-reviewer/SKILL.md +61 -0
- package/assets/skills-en/reviewers/security-auditor/SKILL.md +93 -0
- package/assets/skills-en/reviewers/test-engineer/SKILL.md +66 -0
- package/assets/skills-en/reviewers/web-performance-auditor/SKILL.md +63 -0
- package/dist/adapters/claude-bg.js +193 -15
- package/dist/adapters/codex-controller-worker.js +12 -5
- package/dist/adapters/codex-events.js +16 -4
- package/dist/adapters/codex.js +13 -2
- package/dist/agents-md.js +24 -15
- package/dist/atualizar-branch.js +245 -0
- package/dist/auditoria.js +13 -11
- package/dist/auditrun.js +68 -48
- package/dist/autorizacao-duravel.js +327 -0
- package/dist/board.js +98 -43
- package/dist/branch-de-estado.js +39 -9
- package/dist/busca-semantica.js +7 -5
- package/dist/catalogo.js +35 -1
- package/dist/changelog-reconciliacao.js +290 -0
- package/dist/check-agil.js +500 -0
- package/dist/check-modo.js +41 -0
- package/dist/check-paralelo.js +183 -0
- package/dist/ci.js +255 -46
- package/dist/ciclos.js +8 -6
- package/dist/claim-lint.js +12 -8
- package/dist/claims-conferir.js +350 -0
- package/dist/claims.js +13 -10
- package/dist/company-brain-client.js +45 -3
- package/dist/company-brain-journal.js +2 -1
- package/dist/company-brain-migration.js +47 -6
- package/dist/conducao-batida.js +759 -0
- package/dist/conducao-sentinela.js +405 -0
- package/dist/conducao-texto.js +12 -18
- package/dist/conducao.js +206 -59
- package/dist/conhecimento-consulta.js +270 -0
- package/dist/conhecimento.js +514 -0
- package/dist/conta-esgotada.js +127 -0
- package/dist/dado-privado.js +816 -0
- package/dist/decisao-autonoma.js +5 -4
- package/dist/demo.js +14 -12
- package/dist/dependencias-da-worktree.js +25 -0
- package/dist/divida.js +38 -36
- package/dist/docs.js +103 -82
- package/dist/doctor-forja.js +345 -0
- package/dist/doctor-pulse-cron.js +294 -27
- package/dist/doctor-rede.js +18 -17
- package/dist/doctor.js +278 -116
- package/dist/dsn-da-memoria.js +417 -0
- package/dist/entrega-por-mod.js +503 -0
- package/dist/entrega-pr.js +158 -57
- package/dist/escopo-escrita.js +10 -1
- package/dist/esgotamentos.js +13 -11
- package/dist/estado-thread.js +42 -17
- package/dist/evalrunner.js +35 -32
- package/dist/experiencia-instalacao.js +45 -25
- package/dist/fabrica-batida.js +323 -0
- package/dist/fabrica-estado.js +49 -16
- package/dist/fabrica-publicar.js +3 -1
- package/dist/fila-pesada.js +444 -0
- package/dist/fix.js +24 -21
- package/dist/forja/adaptador.js +6 -0
- package/dist/forja/ambiente-de-ci.js +27 -0
- package/dist/forja/api.js +256 -0
- package/dist/forja/cache.js +89 -0
- package/dist/forja/cli.js +60 -0
- package/dist/forja/contrato.js +9 -0
- package/dist/forja/endereco.js +43 -0
- package/dist/forja/estado.js +22 -0
- package/dist/forja/executor.js +73 -0
- package/dist/forja/github/ci.js +95 -0
- package/dist/forja/github/dono-da-rede.js +18 -0
- package/dist/forja/github/metadados.js +15 -0
- package/dist/forja/github/pedidos.js +200 -0
- package/dist/forja/gitlab/ci.js +141 -0
- package/dist/forja/gitlab/consultas.js +59 -0
- package/dist/forja/gitlab/dono-da-rede.js +43 -0
- package/dist/forja/gitlab/metadados.js +15 -0
- package/dist/forja/gitlab/pedidos-abertos.js +158 -0
- package/dist/forja/gitlab/pedidos.js +141 -0
- package/dist/forja/produtor.js +32 -0
- package/dist/forja/registro.js +31 -0
- package/dist/forja/resolver.js +121 -0
- package/dist/forja/texto.js +13 -0
- package/dist/forja/versao.js +71 -0
- package/dist/forja.js +124 -81
- package/dist/gates.js +3 -28
- package/dist/handoff.js +33 -19
- package/dist/hitl-contract.js +46 -43
- package/dist/hitl-curto.js +37 -25
- package/dist/hitl-gates.js +13 -11
- package/dist/hitl-local-receipt.js +53 -0
- package/dist/hitl-local.js +11 -2
- package/dist/hitl-lock.js +5 -11
- package/dist/hitl-public-receipt.js +11 -0
- package/dist/hitl-resumo.js +72 -3
- package/dist/hitl-sessions.js +62 -9
- package/dist/hitl-tempo-parado.js +4 -4
- package/dist/hitl-texto-livre.js +7 -4
- package/dist/hitl.js +63 -64
- package/dist/horario.js +30 -7
- package/dist/hosts.js +155 -134
- package/dist/impedimento.js +108 -14
- package/dist/index.js +1421 -1019
- package/dist/indice-vetorial.js +14 -12
- package/dist/indice.js +7 -1
- package/dist/init.js +54 -49
- package/dist/instabilidade.js +144 -0
- package/dist/integracoes-locais.js +4 -0
- package/dist/intelligence-graph-cli.js +213 -88
- package/dist/intelligence-graph-contexto.js +56 -17
- package/dist/intelligence-graph-contract.js +2 -1
- package/dist/intelligence-graph-extract-md.js +56 -4
- package/dist/intelligence-graph-extract-ts.js +71 -3
- package/dist/intelligence-graph-query.js +96 -34
- package/dist/leases.js +19 -18
- package/dist/ledger-stats.js +17 -16
- package/dist/ledger.js +46 -2
- package/dist/licoes.js +12 -11
- package/dist/liveness.js +6 -3
- package/dist/locale-accounts.js +220 -0
- package/dist/locale-adapter.js +291 -0
- package/dist/locale-ajuda.js +833 -0
- package/dist/locale-audit.js +199 -0
- package/dist/locale-claims.js +213 -0
- package/dist/locale-conducao.js +138 -0
- package/dist/locale-conhecimento.js +181 -0
- package/dist/locale-decisao.js +205 -0
- package/dist/locale-docs.js +230 -0
- package/dist/locale-estado.js +101 -0
- package/dist/locale-forja.js +290 -0
- package/dist/locale-gerados.js +165 -0
- package/dist/locale-grafo.js +129 -0
- package/dist/locale-master.js +182 -0
- package/dist/locale-network.js +524 -0
- package/dist/locale-onboarding.js +92 -0
- package/dist/locale-operacao-restante.js +931 -0
- package/dist/locale-phase.js +151 -0
- package/dist/locale-projetos.js +100 -0
- package/dist/locale-prompts.js +194 -0
- package/dist/locale-pulse.js +349 -0
- package/dist/locale-reservas.js +87 -0
- package/dist/locale-retry.js +524 -0
- package/dist/locale-roadmap.js +102 -0
- package/dist/locale-security-scan.js +69 -0
- package/dist/locale-setup.js +192 -0
- package/dist/locale-ship.js +597 -0
- package/dist/locale-thread.js +421 -0
- package/dist/locale-verify.js +201 -0
- package/dist/locale-worktree.js +246 -0
- package/dist/locale.js +1258 -0
- package/dist/maestro-runtime.js +22 -3
- package/dist/manifest.js +415 -13
- package/dist/maquina-ociosa.js +211 -0
- package/dist/maquina.js +31 -7
- package/dist/master-digest.js +6 -1
- package/dist/master-nota-local.js +200 -0
- package/dist/master-nota.js +14 -8
- package/dist/master.js +139 -65
- package/dist/mcp-artifacts.js +11 -2
- package/dist/mcp-conhecimento.js +52 -0
- package/dist/mcp-experiencia.js +26 -5
- package/dist/mcp-git.js +23 -6
- package/dist/mcp-grafo.js +7 -4
- package/dist/mcp-install.js +73 -8
- package/dist/mcp-noctum.js +101 -0
- package/dist/mcp-server.js +90 -16
- package/dist/mcp-ship-transporte.js +977 -0
- package/dist/mcp-ship.js +71 -25
- package/dist/mcp-transportes.js +17 -0
- package/dist/mcp-verify.js +6 -1
- package/dist/memoria.js +63 -58
- package/dist/modos-migracao.js +8 -6
- package/dist/modos.js +20 -24
- package/dist/network-roadmap.js +90 -51
- package/dist/noctum-aceite.js +789 -0
- package/dist/noctum-arco.js +1418 -0
- package/dist/noctum-capacidade.js +141 -0
- package/dist/noctum-changelog.js +399 -0
- package/dist/noctum-cli.js +482 -0
- package/dist/noctum-coordenacao.js +1225 -0
- package/dist/noctum-entrega.js +1169 -0
- package/dist/noctum-envelope.js +1046 -0
- package/dist/noctum-execucao.js +376 -0
- package/dist/noctum-fechamento.js +405 -0
- package/dist/noctum-fila.js +314 -0
- package/dist/noctum-guarda.js +256 -0
- package/dist/noctum-integracao.js +507 -0
- package/dist/noctum-maquinas.js +383 -0
- package/dist/noctum-medicao.js +450 -0
- package/dist/noctum-modo.js +362 -0
- package/dist/noctum-pergunta-canal.js +96 -0
- package/dist/noctum-pergunta.js +115 -0
- package/dist/noctum-provas.js +838 -0
- package/dist/noctum-reconciliacao.js +591 -0
- package/dist/noctum-registro.js +215 -0
- package/dist/noctum-relatorio.js +827 -0
- package/dist/noctum-resposta.js +207 -0
- package/dist/noctum-sessoes-em-voo.js +93 -0
- package/dist/noctum-supervisao.js +649 -0
- package/dist/noctum-terminal.js +459 -0
- package/dist/noctum-transporte.js +655 -0
- package/dist/noctum-vigia.js +639 -0
- package/dist/ocupacao.js +32 -3
- package/dist/onboarding.js +56 -26
- package/dist/orkmind.js +48 -25
- package/dist/orquestracao.js +44 -47
- package/dist/parado-no-condutor.js +174 -127
- package/dist/phase.js +144 -63
- package/dist/policies.js +37 -4
- package/dist/portfolio.js +4 -2
- package/dist/postura-local.js +235 -0
- package/dist/preflight.js +11 -10
- package/dist/procedencia.js +220 -0
- package/dist/projeto-alvo.js +186 -24
- package/dist/prompts.js +140 -42
- package/dist/prova-minima.js +5 -6
- package/dist/pulse-cadencia.js +5 -4
- package/dist/pulse-consentimento.js +53 -1
- package/dist/pulse-delivery.js +151 -24
- package/dist/pulse-resposta.js +368 -4
- package/dist/pulse.js +188 -22
- package/dist/ratelimit.js +16 -6
- package/dist/recall.js +14 -13
- package/dist/redacao-saida.js +63 -0
- package/dist/rede-adesao.js +13 -8
- package/dist/rede-forja.js +108 -24
- package/dist/rede-status.js +66 -47
- package/dist/rede.js +86 -46
- package/dist/retomada-checkpoint.js +101 -0
- package/dist/retry.js +451 -212
- package/dist/roadmap-reservas.js +45 -28
- package/dist/roadmap-status.js +129 -33
- package/dist/runtime-ambiente.js +5 -0
- package/dist/runtime-context.js +284 -32
- package/dist/runtime-escada.js +423 -0
- package/dist/runtime-profiles.js +103 -46
- package/dist/runtimes.js +2 -1
- package/dist/saida-segura.js +3 -2
- package/dist/security-scan/agil.js +355 -0
- package/dist/security-scan/cli.js +76 -0
- package/dist/security-scan/compare.js +149 -0
- package/dist/security-scan/config.js +93 -0
- package/dist/security-scan/detect.js +97 -0
- package/dist/security-scan/executor.js +188 -0
- package/dist/security-scan/guard.js +180 -0
- package/dist/security-scan/imagem-de-lint.js +96 -0
- package/dist/security-scan/normalize/actionlint.js +12 -0
- package/dist/security-scan/normalize/eslint.js +12 -0
- package/dist/security-scan/normalize/gitleaks.js +13 -0
- package/dist/security-scan/normalize/golangci-lint.js +13 -0
- package/dist/security-scan/normalize/govulncheck.js +36 -0
- package/dist/security-scan/normalize/index.js +25 -0
- package/dist/security-scan/normalize/npm-audit.js +30 -0
- package/dist/security-scan/normalize/osv-scanner.js +32 -0
- package/dist/security-scan/normalize/oxlint.js +51 -0
- package/dist/security-scan/normalize/pip-audit.js +16 -0
- package/dist/security-scan/normalize/ruff.js +12 -0
- package/dist/security-scan/normalize/semgrep.js +20 -0
- package/dist/security-scan/normalize/trivy.js +33 -0
- package/dist/security-scan/normalize/util.js +204 -0
- package/dist/security-scan/normalize/zizmor.js +19 -0
- package/dist/security-scan/report.js +156 -0
- package/dist/security-scan/run.js +448 -0
- package/dist/security-scan/tools.js +62 -0
- package/dist/security-scan/trabalhador.js +74 -0
- package/dist/security-scan/types.js +15 -0
- package/dist/session-events.js +26 -5
- package/dist/session-watcher-claude.js +81 -20
- package/dist/session-watcher.js +340 -42
- package/dist/sessoes-contas.js +10 -1
- package/dist/sessoes-inventario.js +1 -1
- package/dist/sessoes.js +25 -23
- package/dist/setup.js +59 -58
- package/dist/ship-publicar.js +971 -0
- package/dist/ship.js +243 -97
- package/dist/steal.js +77 -0
- package/dist/superficie.js +14 -11
- package/dist/thread-close.js +12 -11
- package/dist/thread.js +274 -100
- package/dist/tokens.js +15 -11
- package/dist/trabalho-thread.js +297 -0
- package/dist/transporte-do-canal.js +189 -0
- package/dist/types.js +12 -1
- package/dist/util.js +13 -3
- package/dist/varredura-acoes.js +507 -0
- package/dist/verify.js +608 -76
- package/dist/vida-da-thread.js +254 -0
- package/dist/worktree-local.js +167 -0
- package/dist/worktree.js +99 -83
- package/dist/yaml.js +27 -8
- package/eval/casos/check-quality.json +77 -0
- package/eval/casos/security-auditor.json +148 -0
- package/eval/casos/security-remediation.json +161 -0
- package/eval/fixtures/security-scan/README.md +8 -0
- package/eval/fixtures/security-scan/go/.github/workflows/ci.yml +12 -0
- package/eval/fixtures/security-scan/go/Dockerfile +4 -0
- package/eval/fixtures/security-scan/go/README.md +4 -0
- package/eval/fixtures/security-scan/go/config.go +4 -0
- package/eval/fixtures/security-scan/go/go.mod +5 -0
- package/eval/fixtures/security-scan/go/go.sum +2 -0
- package/eval/fixtures/security-scan/go/main.go +31 -0
- package/eval/fixtures/security-scan/js/.github/workflows/ci.yml +12 -0
- package/eval/fixtures/security-scan/js/Dockerfile +3 -0
- package/eval/fixtures/security-scan/js/README.md +4 -0
- package/eval/fixtures/security-scan/js/package-lock.json +844 -0
- package/eval/fixtures/security-scan/js/package.json +10 -0
- package/eval/fixtures/security-scan/js/src/config.js +4 -0
- package/eval/fixtures/security-scan/js/src/server.js +17 -0
- package/eval/fixtures/security-scan/js/src/util.ts +4 -0
- package/eval/fixtures/security-scan/js/tsconfig.json +4 -0
- package/eval/fixtures/security-scan/python/.github/workflows/ci.yml +12 -0
- package/eval/fixtures/security-scan/python/Dockerfile +3 -0
- package/eval/fixtures/security-scan/python/README.md +4 -0
- package/eval/fixtures/security-scan/python/app/__init__.py +0 -0
- package/eval/fixtures/security-scan/python/app/config.py +2 -0
- package/eval/fixtures/security-scan/python/app/main.py +19 -0
- package/eval/fixtures/security-scan/python/requirements.txt +1 -0
- package/package.json +9 -4
- package/references/security-checklist.md +3 -3
- package/schemas/code-artifact-graph.v1.schema.json +2 -1
- package/skills/README.md +1 -0
- package/skills/core/orkastery-bootstrap/SKILL.md +2 -2
- package/skills/phases/check-quality/SKILL.md +16 -0
- package/skills/phases/go-implementation/SKILL.md +6 -0
- package/skills/phases/security-remediation/SKILL.md +70 -0
- package/skills/reviewers/security-auditor/SKILL.md +25 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: check-quality
|
|
3
|
+
description: "CHECK phase (F4): verification against the baseline, the five review axes, security and performance audits, a delegation audit and a single verdict. Routes to ork verify and to the four reviewer skills."
|
|
4
|
+
bucket: phases
|
|
5
|
+
roteia: "ork verify <thread> | ork gate request <thread>"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# CHECK, verification
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router for the CHECK phase. It consolidates what `ork` measured and what the four reviewers
|
|
14
|
+
found, and produces **exactly one verdict**: PASSOU (passed), PRECISA DE MUDANCA (needs changes) or BLOQUEADO (blocked). It does not
|
|
15
|
+
fix what it finds: fixing is GO's job.
|
|
16
|
+
|
|
17
|
+
## How to route
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ork verify <thread> # reexecuta claims e verify contra a baseline
|
|
21
|
+
ork phase list <thread> # o ledger, para a auditoria de delegacao
|
|
22
|
+
ork worktree audit <thread> # a worktree confere no proprio git
|
|
23
|
+
ork gate request <thread> # o pedido da pausa; o humano responde pelo canal autenticado
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
- Waits: never start verify, build or the suite with `&` inside the command, because the process gets lost and the session waits for a notice that never comes; run `ork verify` in the foreground, with `timeout` (it waits its turn in the heavy-resource queue), or use the host's background execution, which tells you when it finishes; never wait with `pgrep -f` whose pattern shows up in the command itself, because the loop finds itself and never ends: wait for the output file with a deadline, or for the saved PID.
|
|
27
|
+
|
|
28
|
+
When the verdict is PRECISA DE MUDANCA, the GO-FIX / CHECK-REVERIFY sub-loop of block B3 is
|
|
29
|
+
what conducts the way back, and it does not depend on a human until the final verdict:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
ork fix open <thread> # deriva a spec exata de cada correcao do verify real
|
|
33
|
+
ork fix list <thread> # as correcoes da rodada, com o tipo A ou B de cada uma
|
|
34
|
+
ork fix reverify <thread> # veredito POR correcao, mais o verify completo
|
|
35
|
+
ork retry plan <thread> # o que o ork faria pelo ultimo gate reprovado, e por que
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Two guards the core enforces for you: a PARTIAL rerun is REFUSED when the round
|
|
39
|
+
has a type B fix, and the manifest's escalation limit (`retry.max_tentativas`) sends the
|
|
40
|
+
verdict up to a human in any mode, including `#Auto`.
|
|
41
|
+
|
|
42
|
+
The catalog's four reviewers come in here: `code-reviewer`, `security-auditor`, `test-engineer`
|
|
43
|
+
and `web-performance-auditor`. Each one runs in its own scope and returns categorized findings.
|
|
44
|
+
|
|
45
|
+
## What CHECK delivers
|
|
46
|
+
|
|
47
|
+
1. **Comparison against the baseline**, separating regression from pre-existing debt. Without that
|
|
48
|
+
separation, the report blames the thread for what was already broken.
|
|
49
|
+
2. **The five axes**, each with findings or an explicit "none": correctness, security,
|
|
50
|
+
performance, maintainability, style.
|
|
51
|
+
3. **Zero security blockers**, a hard condition, valid in any mode, including `#Auto`.
|
|
52
|
+
4. **Delegation audit**, hunting under-classification and undue escalation with equal weight.
|
|
53
|
+
5. **Fixes classified honestly:** type A is one line or equivalent, recorded, with
|
|
54
|
+
the affected checks rerun; type B sends the task back to GO, and the next CHECK is a
|
|
55
|
+
full rerun, never a partial one.
|
|
56
|
+
6. **A single verdict**, in the thread directory, with every accepted warning carrying its record.
|
|
57
|
+
|
|
58
|
+
## With `verify.security_scan` declared
|
|
59
|
+
|
|
60
|
+
Without `verify.security_scan`, nothing in this section applies and CHECK is the usual one. With the key, `ork verify` runs `ork security-scan` and the verdict consolidates the scan:
|
|
61
|
+
|
|
62
|
+
1. Read `report.md` and `report.json` in `.orkastery/security-scan/<sha>/`, in the main tree; the SHA is the verified HEAD's.
|
|
63
|
+
2. Zero security blockers becomes: no `new` loop finding without a resolved verdict from the `security-auditor` (real and fixed, false positive dismissed with a recorded decision, or inconclusive with the `ork gate request` answered).
|
|
64
|
+
3. A `new` finding with `loop: false` (`warn` in the report, such as quality, license or severity below the cut) goes to the right axis as a registered warning, with the name of who accepted it, never as a hidden blocker.
|
|
65
|
+
4. A tool `unavailable` or `failed` is declared in the verdict and never counts as clean; with `ORK_SECURITY_SCAN_REQUIRED=1` it makes the scan exit 1.
|
|
66
|
+
5. A fix coming from the scan goes back through GO-FIX, with the `security-remediation` skill; the proof is `ork fix reverify`, which reruns verify and the scan.
|
|
67
|
+
6. The per-finding verdict reaches GO-FIX through the CHECK claim (`--fase CHECK`), one per real or false-positive finding, as the `security-auditor` skill says. `ork fix open <thread>` reruns verify and opens one correction per failed claim, type B for a real one (`claims.failed`) and type A for a false positive (`claims.unverifiable`), next to the type B correction of the `security_scan` command; `ork fix list <thread>` shows them to GO-FIX with the verdict text.
|
|
68
|
+
7. Inconclusive does not open the request from inside the CHECK session: `ork gate request` refuses while the observer has not recorded the phase conclusion (`a conclusao da fase precisa estar registrada antes da pausa`), and `--motivo` only accepts a typed escalation already recorded in the ledger (`escalacao tipada nao comprovada`). The short question goes into the report, the session ends, and whoever conducts runs `ork gate request <thread> --formato telegram`, which opens the pause at the end of the block that ends at CHECK, with the report in the evidence. Among the live modes, only #Classic has that pause (GO-CHECK block); #Look and #Ork also paused at CHECK, but they are retired (I-43) and the request refuses for them. The request carries the gate's generic question (`Qual e o veredito sobre evidencias...?`): whoever conducts points the owner to the report's question, with the finding id. The owner's answer becomes a CHECK claim as the `security-auditor` skill says, before `ork fix open`. In a mode without that pause (#Maestro, #Auto), the request refuses (`modo nao preve pausa humana nesta fase`): the verdict is BLOQUEADO, with the question written, and nothing proceeds until the owner answers.
|
|
69
|
+
|
|
70
|
+
## What the core checks for you
|
|
71
|
+
|
|
72
|
+
The typed reasons of `ork` keep the verdict from being just talk: `claims.failed`,
|
|
73
|
+
`verify.regression`, `verify.failed`, `policy.violation`, `cost.violation`, `tree.blocked`,
|
|
74
|
+
`lease.busy`, `runtime.rate-limited`. All of them fail in any mode, because **the mode relaxes
|
|
75
|
+
the pause, never the verification**. Each one has a deterministic retry action in
|
|
76
|
+
`ork retry policy`, and `cost.violation` is the only one that NEVER gets an automatic retry.
|
|
77
|
+
|
|
78
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
79
|
+
|
|
80
|
+
| Excuse | Reality |
|
|
81
|
+
|---|---|
|
|
82
|
+
| "It's just a warning, we can let it through" | A warning passes with a named record of who accepted it and why. A warning accepted without a record is a hidden warning. |
|
|
83
|
+
| "The fix was small, no need to run everything again" | A type B fix sent the task back to GO: the next CHECK is a full rerun. A partial rerun after type B is not a CHECK. |
|
|
84
|
+
| "That test was already failing, ignore it" | "It was already failing" is a verifiable statement: the baseline is what answers it, and the debt goes into the report as declared. |
|
|
85
|
+
| "The security blocker is theoretical" | Zero blockers is a hard condition. A blocker downgraded to a warning because the delivery was close is the process defect CHECK exists to expose. |
|
|
86
|
+
| "Since I found it, I'll fix it right here" | CHECK does not fix. A finding becomes a GO task, with its own commit, or the reviewer ends up reviewing itself. |
|
|
87
|
+
| "The thread is `#Auto`, so CHECK can be lighter" | The mode relaxes the pause, never the verification. `#Auto` runs the same CHECK; what it waives is waiting for the human. |
|
|
88
|
+
|
|
89
|
+
## Bandeiras vermelhas (Red flags)
|
|
90
|
+
|
|
91
|
+
- A report with two verdicts, or with none.
|
|
92
|
+
- A review axis with no finding and no written "none".
|
|
93
|
+
- A type B fix followed by a partial rerun.
|
|
94
|
+
- A warning accepted without the name of who accepted it.
|
|
95
|
+
- CHECK run without a baseline to compare against.
|
|
96
|
+
- A `new` loop finding without a verdict passed off as zero blockers.
|
|
97
|
+
- An inconclusive `new` scan finding carried by `ork gate request` from inside the CHECK session, or with a free-text `--motivo`.
|
|
98
|
+
|
|
99
|
+
## Verification before leaving the phase
|
|
100
|
+
|
|
101
|
+
Suite rerun on the real HEAD, five axes filled in, security with zero blockers,
|
|
102
|
+
performance audited or waived in writing, delegation audited, a single verdict recorded and the evidence
|
|
103
|
+
gate resolved by the path the mode requires. See `DoD 6` to `DoD 11`, `REVIEW 6` and `SEC 16`.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: go-implementation
|
|
3
|
+
description: "GO phase (F3): slice-by-slice implementation inside the thread's worktree, one atomic commit per task, baseline recorded before starting. Routes to ork worktree ensure, ork verify --baseline and ork phase run GO."
|
|
4
|
+
bucket: phases
|
|
5
|
+
roteia: "ork worktree ensure | ork verify --baseline | ork phase run <thread> GO"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# GO, implementation
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router for the GO phase. **The presenting layer never writes product code:** the
|
|
14
|
+
orchestra does the writing, dispatched by `ork`. This skill ensures the worktree, records the baseline,
|
|
15
|
+
dispatches and then reruns the verification in the real world.
|
|
16
|
+
|
|
17
|
+
## How to route
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ork worktree ensure <thread> # worktree isolada, base resolvida pelo ork
|
|
21
|
+
ork verify <thread> --baseline # o estado do mundo ANTES de implementar
|
|
22
|
+
ork phase run <thread> GO --prompt "<tarefa>"
|
|
23
|
+
ork claims add <thread> <arquivo> --claim "<...>" --verificar "<comando>" --fase GO
|
|
24
|
+
ork verify <thread> # reexecuta no HEAD real
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
- Waits: never start verify, build or the suite with `&` inside the command, because the process gets lost and the session waits for a notice that never comes; run `ork verify` in the foreground, with `timeout` (it waits its turn in the heavy-resource queue), or use the host's background execution, which tells you when it finishes; never wait with `pgrep -f` whose pattern shows up in the command itself, because the loop finds itself and never ends: wait for the output file with a deadline, or for the saved PID.
|
|
28
|
+
|
|
29
|
+
## What GO delivers
|
|
30
|
+
|
|
31
|
+
1. **One atomic commit per task**, with the thread and the task in the message, at most five files.
|
|
32
|
+
2. **Work inside the thread's worktree.** The main tree is not a work area for any thread
|
|
33
|
+
whatsoever, and the base stamped in `thread.json` is what says where the thread started from.
|
|
34
|
+
3. **Baseline recorded before the first line.** Without a baseline, a later failure cannot tell
|
|
35
|
+
regression from pre-existing debt, and the thread either takes someone else's blame or hides what broke.
|
|
36
|
+
On codex, whose sandbox does not write the thread state, `ork phase run` records the baseline before
|
|
37
|
+
releasing the block with GO: check the `baseline` field in `ork_thread_status` and carry on instead of stopping.
|
|
38
|
+
4. **One claim per statement.** Every cited file, every cited test, every function said to be done becomes
|
|
39
|
+
a claim with a command. A pass reported by an agent is not a pass.
|
|
40
|
+
5. **Nothing outside the PLAN's tasks.** An opportunistic improvement with no task is scope creep: it becomes
|
|
41
|
+
a proposal, never a commit hidden in the middle of the delivery. Whatever the diff does beyond what was agreed, the
|
|
42
|
+
reviewer has to discover alone, and that is how a small delivery turns into an expensive review.
|
|
43
|
+
|
|
44
|
+
## With `verify.security_scan` declared
|
|
45
|
+
|
|
46
|
+
Without `verify.security_scan`, this phase is the usual one. A fix that comes from a security scan finding uses the `security-remediation` skill: it fixes only the finding, and the proof is the scan rerun by `ork fix reverify`, not the agent's report. The spec carries one correction per finding triaged by CHECK, with the type and the verdict text (`ork fix list <thread>`): type A closes by writing the dismissal and attaching the command that proves it with `ork claims verificar <thread> <claim> --comando "<comando>"`.
|
|
47
|
+
|
|
48
|
+
## What the core checks for you
|
|
49
|
+
|
|
50
|
+
`ork verify` reruns claims and manifest commands on the real HEAD and compares against the baseline:
|
|
51
|
+
a command that passed before and fails now comes out as `verify.regression`; what was already failing comes out as
|
|
52
|
+
declared debt. A citation without backing comes out as `claims.failed`. All three fail in any mode.
|
|
53
|
+
|
|
54
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
55
|
+
|
|
56
|
+
| Excuse | Reality |
|
|
57
|
+
|---|---|
|
|
58
|
+
| "I ran it and it passed, you can trust me" | A reported pass is not a pass. `ork verify` reruns on the real HEAD, and the real output is what counts. |
|
|
59
|
+
| "Let me commit everything together at the end" | One commit per task. A giant commit cannot be reverted, cannot be reviewed and does not tell which piece broke. |
|
|
60
|
+
| "I'll work straight in the main tree, it's faster" | The main tree is not a thread work area. An isolated worktree is what allows N threads without collision. |
|
|
61
|
+
| "Baseline is a waste of time, the repo is green" | If it really were green, the baseline would cost one command. Without it, every failure turns into an argument over whose fault it is. |
|
|
62
|
+
| "While I was at it, I fixed something else along the way" | An improvement outside the PLAN's tasks is scope creep: it becomes a proposal, never a commit hidden in the middle of the delivery. |
|
|
63
|
+
| "The failing test was already failing before" | That is exactly what the baseline answers by command, instead of by memory. |
|
|
64
|
+
|
|
65
|
+
## Bandeiras vermelhas (Red flags)
|
|
66
|
+
|
|
67
|
+
- A commit with dozens of files and a generic message.
|
|
68
|
+
- Work happening outside the thread's worktree.
|
|
69
|
+
- No baseline recorded before the first commit.
|
|
70
|
+
- A file cited in the runtime summary that does not appear in `git show --stat`.
|
|
71
|
+
- A test disabled or an assertion loosened to close the task.
|
|
72
|
+
- A change in the diff that does not match any PLAN task.
|
|
73
|
+
|
|
74
|
+
## Verification before leaving the phase
|
|
75
|
+
|
|
76
|
+
Worktree checked by `ork worktree audit`, baseline recorded before GO, one commit per task,
|
|
77
|
+
claims with a command for everything that was stated, and `ork verify` green or with the debt declared. See
|
|
78
|
+
`DoD 1`, `DoD 2`, `DoD 3` and `DoD 4`.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: goal-definition
|
|
3
|
+
description: "GOAL phase (F1): a verifiable goal, exploration of the real repository, explicit assumptions, impact map, risks and observable success criteria, all tied to claims with a verification command. Routes to ork phase run GOAL and ork claims add."
|
|
4
|
+
bucket: phases
|
|
5
|
+
roteia: "ork phase run <thread> GOAL | ork claims add"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# GOAL, goal definition
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router for the GOAL phase. It does not explore the repository on its own and does not implement
|
|
14
|
+
anything: it dispatches the phase through `ork` and turns the result into claims that `ork` reruns.
|
|
15
|
+
**GOAL does not implement.**
|
|
16
|
+
|
|
17
|
+
## How to route
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ork thread new "<nome>" --mode <modo>
|
|
21
|
+
ork phase run <thread> GOAL --prompt "<pedido do builder>"
|
|
22
|
+
ork claims add <thread> <arquivo> --claim "<alegacao>" --verificar "<comando>" --fase GOAL
|
|
23
|
+
ork verify <thread> --so-claims
|
|
24
|
+
ork gate request <thread>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## What GOAL delivers
|
|
28
|
+
|
|
29
|
+
1. **A goal in three paragraphs, at least.** Even a one-line fix gets a GOAL of
|
|
30
|
+
three paragraphs: compact means smaller, never absent.
|
|
31
|
+
2. **Exploration of the real repository.** The exploration targets the actual repository, not the model's
|
|
32
|
+
memory. Cite concrete files and excerpts or the exploration did not happen.
|
|
33
|
+
3. **Explicit assumptions.** An implicit assumption is the biggest source of rework and is treated as a
|
|
34
|
+
process defect. Writing the assumption costs one line; finding out in GO that it is wrong costs the
|
|
35
|
+
thread.
|
|
36
|
+
4. **Impact map.** What changes, what it touches and what stays out, with what stays out written down.
|
|
37
|
+
5. **Observable success criteria.** Latency, coverage, verifiable behavior: never
|
|
38
|
+
an adjective. In a fix request, reproducing the defect is a mandatory GOAL criterion.
|
|
39
|
+
6. **Risks and ambiguities**, each with what would turn it into a blocker.
|
|
40
|
+
|
|
41
|
+
## What the core checks for you
|
|
42
|
+
|
|
43
|
+
Every success criterion becomes `ork claims add ... --verificar "<comando>"`, and `ork verify` reruns
|
|
44
|
+
the command on the real HEAD. A statement without a command comes back as `claims.unverifiable`; a statement that fails
|
|
45
|
+
comes back as `claims.failed`, a typed reason that fails in any mode.
|
|
46
|
+
|
|
47
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
48
|
+
|
|
49
|
+
| Excuse | Reality |
|
|
50
|
+
|---|---|
|
|
51
|
+
| "I already know this framework, we can skip the exploration" | The exploration targets the real repository, not the model's memory. Without a cited file and excerpt, the GOAL is a plausible summary of code nobody opened. |
|
|
52
|
+
| "Listing assumptions is red tape, they are obvious" | An implicit assumption is the biggest source of rework. What is obvious to the writer is usually a surprise in GO. |
|
|
53
|
+
| "The criterion is that it works well and the user likes it" | An adjective is not a metric. A criterion that does not become a command gates nothing, and the gate is where autonomy is lost. |
|
|
54
|
+
| "The repository is empty, there is nothing to explore" | Exploring an empty repository is still exploring: write down what was verified as absent, or the absence becomes an implicit assumption. |
|
|
55
|
+
| "The bug is obvious, I don't need to reproduce it first" | A fix whose defect was never reproduced does not prove it fixed anything. Reproducing the defect is a mandatory GOAL criterion. |
|
|
56
|
+
|
|
57
|
+
## Bandeiras vermelhas (Red flags)
|
|
58
|
+
|
|
59
|
+
- A GOAL with no cited file or excerpt from the repository.
|
|
60
|
+
- Missing assumptions, or ones discovered later as a surprise during GO.
|
|
61
|
+
- A success criterion written with an adjective.
|
|
62
|
+
- A fix request with no step that reproduces the defect.
|
|
63
|
+
- A GOAL that already brings implementation code: GOAL does not implement.
|
|
64
|
+
|
|
65
|
+
## Verification before leaving the phase
|
|
66
|
+
|
|
67
|
+
A goal with three paragraphs, exploration citing real files, written assumptions, an impact map with
|
|
68
|
+
what stays out, criteria turned into claims with a command, and the goal gate resolved by the
|
|
69
|
+
path the mode requires. See `DoD 17` and `DoD 18`.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: master-metrics
|
|
3
|
+
description: "MASTER phase (F6): typed POSTMORTEM, MASTER log in the frozen ork.master-log/v1 contract and the human score from 0 to 5 with a justification. Routes to ork master and ork master <thread> --aceitar-omissao."
|
|
4
|
+
bucket: phases
|
|
5
|
+
roteia: "ork master <thread> --score N --justificativa \"...\" | ork master <thread> --aceitar-omissao"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# MASTER, closing and score
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router for the MASTER phase. It does not invent numbers, does not round scores and does not close a thread
|
|
14
|
+
without a human: it calls `ork master`, which validates against the frozen contract and refuses whatever does not
|
|
15
|
+
comply. **A delivery without a MASTER log did not happen.**
|
|
16
|
+
|
|
17
|
+
## How to route
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ork master classes # as classes de falha do catalogo fixo
|
|
21
|
+
ork master <thread> --score 4 --justificativa "<texto>" --classe base-avancou --por <quem>
|
|
22
|
+
ork master # as entregas, com o indice derivado do ledger
|
|
23
|
+
ork master --todas # inclusive as ja pontuadas
|
|
24
|
+
ork master <thread> --aceitar-omissao # aceita so a entrega desta thread, com indice e insumos no ledger
|
|
25
|
+
ork master --aceitar-omissao --dry-run # lista o que a forma sem thread fecharia, sem gravar
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
An agent closes only its own thread: `ork master <thread> --aceitar-omissao`. Without the thread, the command
|
|
29
|
+
accepts ALL of the project's delivered threads, including those of other parallel fronts (which happened three
|
|
30
|
+
times on 2026-10-03); run from an agent process with more than one, `ork` warns on stderr.
|
|
31
|
+
|
|
32
|
+
## What MASTER delivers
|
|
33
|
+
|
|
34
|
+
1. **Typed POSTMORTEM**, with the phases traversed, what failed and the failure class taken from a
|
|
35
|
+
fixed catalog: `sem-falha`, `erro-de-spec`, `base-avancou`, `conflito`, `rate-limit`, `modelo`,
|
|
36
|
+
`processo`, `scope-creep`, `outra`. An invented class is refused by the command.
|
|
37
|
+
2. **MASTER log in the `ork.master-log/v1` contract**, frozen: changing the contract without changing the version
|
|
38
|
+
fails, because a telemetry contract is a public contract.
|
|
39
|
+
3. **Integer human score from 0 to 5, with a non-empty justification.** The score belongs to the human, always. In
|
|
40
|
+
the modes with no MASTER pause, the delivery is accepted by default, with the ledger-derived index, which
|
|
41
|
+
no agent types; the human score, when it comes, overrides it.
|
|
42
|
+
4. **Evidence pointing to the ledger and the POSTMORTEM**, with counts of events, sessions and claims. A log
|
|
43
|
+
without evidence is refused.
|
|
44
|
+
|
|
45
|
+
## What the core checks for you
|
|
46
|
+
|
|
47
|
+
`ork master` refuses and **writes nothing** when the score is outside 0 to 5, when the justification
|
|
48
|
+
is empty, when the class is outside the catalog, when a phase is outside the canonical cycle,
|
|
49
|
+
when the contract was changed without changing the version and when evidence is missing. A partial refusal that
|
|
50
|
+
writes half is worse than a full refusal.
|
|
51
|
+
|
|
52
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
53
|
+
|
|
54
|
+
| Excuse | Reality |
|
|
55
|
+
|---|---|
|
|
56
|
+
| "Score 5 because it delivered, justification later" | An empty justification is refused by the command. A score without a written reason teaches the next thread nothing. |
|
|
57
|
+
| "I'll give it 4.5, it landed between the two" | The score is an integer from 0 to 5. A scale with half points turns into a negotiation, and what is measured here is conduction, not goodwill. |
|
|
58
|
+
| "The failure class for this one was 'almost worked'" | The catalog is fixed. An invented class is refused, because a free-form class destroys comparability between threads. |
|
|
59
|
+
| "I'll fill in the MASTER log later, the delivery already went out" | A delivery without a MASTER log did not happen. A postponed learning phase is a learning phase that does not exist. |
|
|
60
|
+
| "The mode is `#Auto`, so the score can be automatic" | The score is human in every mode. `#Auto` changes when it is given (the delivery is accepted by default and the human score overrides it), never who gives it. |
|
|
61
|
+
|
|
62
|
+
## Bandeiras vermelhas (Red flags)
|
|
63
|
+
|
|
64
|
+
- A thread delivered without `master-log.json`.
|
|
65
|
+
- A score recorded without the name of who rated it.
|
|
66
|
+
- A failure class outside the fixed catalog, or no class on a thread that had rework.
|
|
67
|
+
- A score typed by an agent in the human's name.
|
|
68
|
+
|
|
69
|
+
## Verification before leaving the phase
|
|
70
|
+
|
|
71
|
+
Typed POSTMORTEM recorded, MASTER log valid against `ork.master-log/v1`, integer score with
|
|
72
|
+
justification and rater, and evidence pointing to the ledger and the POSTMORTEM. See `DoD 16`.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-specification
|
|
3
|
+
description: "PLAN phase (F2): a plan with sliced tasks, queryable touch_paths, decisions D1..Dn with a single home and an executable verify per task. Routes to ork phase run PLAN and ork lease acquire."
|
|
4
|
+
bucket: phases
|
|
5
|
+
roteia: "ork phase run <thread> PLAN | ork lease acquire"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# PLAN, specification
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router for the PLAN phase. It does not write the plan's code and does not decide on its own what is the
|
|
14
|
+
human's tradeoff: it dispatches the phase through `ork` and turns the plan into tasks with a verify.
|
|
15
|
+
**PLAN does not implement.**
|
|
16
|
+
|
|
17
|
+
## How to route
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ork phase run <thread> PLAN --prompt "<pedido do builder>"
|
|
21
|
+
ork lease acquire "path:<glob>" --thread <thread> --motivo "PLAN reservou a regiao"
|
|
22
|
+
ork gate request <thread>
|
|
23
|
+
ork handoff export <thread> --proxima-fase GO
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## What PLAN delivers
|
|
27
|
+
|
|
28
|
+
1. **Tasks sliced until they fit in one atomic commit.** At most five files per task.
|
|
29
|
+
A task larger than that goes back to slicing before GO, not during it.
|
|
30
|
+
2. **`touch_paths` per task.** The path the task will touch is declared up front, and it is what
|
|
31
|
+
justifies the `path:<glob>` lease. An undeclared region is a collision waiting to happen.
|
|
32
|
+
3. **One executable verify per task.** Every task carries the command that proves it is finished.
|
|
33
|
+
A task without a verify is a wish, not a task.
|
|
34
|
+
4. **Decisions D1..Dn with a single home.** Each decision lives in one place only, and once decided
|
|
35
|
+
it is locked. Reopening is a new decision with a record, never a silent edit of the previous one.
|
|
36
|
+
5. **What stays out of scope**, written down, so that CHECK can call scope creep whatever
|
|
37
|
+
shows up beyond that.
|
|
38
|
+
|
|
39
|
+
## What the core checks for you
|
|
40
|
+
|
|
41
|
+
The `path:<glob>` lease of `ork` refuses two threads in the same region and queues the second with a
|
|
42
|
+
position; the typed handoff carries the closed decisions to the next phase without depending on the session
|
|
43
|
+
remembering them.
|
|
44
|
+
|
|
45
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
46
|
+
|
|
47
|
+
| Excuse | Reality |
|
|
48
|
+
|---|---|
|
|
49
|
+
| "The plan is already in my head, writing it down slows me down" | A plan that is not on disk does not survive a context window rotation, and the next phase starts by guessing. |
|
|
50
|
+
| "This task is big but cohesive, leave it whole" | A task larger than five files goes back to slicing. An atomic commit is what makes whatever goes wrong reversible. |
|
|
51
|
+
| "I'll decide that tradeoff later, in the middle of GO" | A tradeoff decided in the middle of GO is decided in a hurry and without a record. A decision has a single home and locks when closed. |
|
|
52
|
+
| "Writing a verify per task is ceremony" | A task without a verify is a wish. Without a command, "done" becomes the agent's opinion and CHECK has nothing to compare against. |
|
|
53
|
+
| "I don't need to declare touch_paths, it's obvious where I'll make changes" | The lease comes from `touch_paths`. An undeclared region is the normal way for two threads to run over each other. |
|
|
54
|
+
|
|
55
|
+
## Bandeiras vermelhas (Red flags)
|
|
56
|
+
|
|
57
|
+
- A task without a verify command.
|
|
58
|
+
- A task that touches more than five files.
|
|
59
|
+
- A decision repeated in two places in the plan, with different wording.
|
|
60
|
+
- `touch_paths` missing on a thread that runs in parallel with another.
|
|
61
|
+
- A PLAN that already brings the finished code: PLAN does not implement.
|
|
62
|
+
|
|
63
|
+
## Verification before leaving the phase
|
|
64
|
+
|
|
65
|
+
Tasks sliced with a verify, `touch_paths` declared, decisions with a single home and locked,
|
|
66
|
+
out of scope written down, and the assumptions gate resolved by the path the mode requires. See
|
|
67
|
+
`DoD 19` and `DoD 20`.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-remediation
|
|
3
|
+
description: "Fixing a security scan finding in GO: fixes only the finding triaged as real, requires a declared rotation for a secret, raises a dependency to the lowest fixed version and proves it by the rerun scan. Routes to ork fix and ork security-scan."
|
|
4
|
+
bucket: phases
|
|
5
|
+
roteia: "ork fix open | ork fix list | ork claims verificar | ork fix reverify | ork security-scan"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Security remediation
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router for the fix that comes from a `new` loop finding of `ork security-scan`, after the `security-auditor` triaged it as real. It applies only with `verify.security_scan` declared and runs inside GO, in the thread worktree, with the conduct of [go-implementation](../go-implementation/SKILL.md).
|
|
14
|
+
|
|
15
|
+
## How to route
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
ork fix open <thread>
|
|
19
|
+
ork fix list <thread>
|
|
20
|
+
git ls-remote --heads <remoto> <branch>
|
|
21
|
+
ork security-scan
|
|
22
|
+
ork claims verificar <thread> <claim> --comando "<comando>"
|
|
23
|
+
ork fix reverify <thread>
|
|
24
|
+
ork decisao registrar <thread> ...
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## What the remediation delivers
|
|
28
|
+
|
|
29
|
+
1. **Only the finding.** The fix changes what the finding points at (rule, `arquivo:linha`) and nothing around it: neighbouring refactoring is scope creep and hides the fix inside the diff.
|
|
30
|
+
2. **The secret leaves the code AND has a declared rotation.** Removing it from the file does not undo the leak (`SEC 2`): history is not cleaned by fixing the code. The fix only closes with the rotation declared to the credential owner, dated and verified, not promised. The secret value never goes to the report, the commit or the prompt.
|
|
31
|
+
- **Whoever fixes also never prints the value.** The auditor's rule applies in GO: the finding's line, its neighbours and the commit that brought it do not go to the session output through any tool (Read, `sed -n`, `head`, `cat`, `grep -n`, editor, `git show`, `git log -p`, diff). Edit without reading, by the report's line number: delete the line (`sed -i '<n>d' <arquivo>`) or replace it whole (`sed -i '<n>s/.*/<substituto>/' <arquivo>`, with the replacement reading the credential from the environment or the vault, never with the value). A multi-line secret (a PEM key): the end of the block comes out only as a number (`command grep -n -- '-----END' <arquivo> | cut -d: -f1`) and the range is deleted with `sed -i '<n>,<m>d' <arquivo>`. Check by the scan, not by eye: the finding's `fingerprint` leaves the new report. In the history rewrite below, redo the commits the same way, without `git diff` or `git show` of the secret's commit.
|
|
32
|
+
- **A secret that entered in the thread leaves the thread history.** Gitleaks scans the commits of `<base>..HEAD`, and the finding stays `new` while a thread commit carries the value. Never just delete the line in a new commit. With the thread branch on no remote (`git ls-remote --heads <remoto> <branch>` exits 0 and empty for every `git remote`; a non-zero exit is doubt, not absence), rewrite only the thread commits from the one that brought the secret: `git reset --soft <commit anterior ao segredo>`, with the target at the thread base or after it (`git merge-base --is-ancestor <base> <alvo>`), and the commits again without the value, without `push --force`. Rewriting a thread commit not yet published is the path the method already uses, and `ork ship publicar` pushes without force: rewritten history that was already published would be refused at push anyway.
|
|
33
|
+
- **A branch already published is not rewritten.** The finding stays `new`, because the commit remains in `<base>..HEAD`. The rotation declared and verified is still mandatory, and the way out is a dismissal citing the declared rotation, decided by the owner: the finding goes back to CHECK as inconclusive and, with the answer, becomes type A like any dismissal.
|
|
34
|
+
3. **A dependency goes to the lowest fixed version**, the one the report indicates, with the justification of the choice in the commit. Jumping to the latest brings changes nobody asked for.
|
|
35
|
+
4. **The proof is the rerun scan.** The proof is the scan rerun by `ork fix reverify`, which `ork` runs on the real HEAD; the agent's statement that it "fixed it" is not proof. The finding must be gone from the new report, and no `new` may have come in. **The scan reads only the committed HEAD:** the scanned tree is a checkout of the HEAD commit, so a fix, a dismissal entry or a config not yet committed is invisible to it. Commit before rerunning.
|
|
36
|
+
5. **A dismissal is a type A fix**, and only when the triager classified a false positive. The entry goes to `.ork-security/dismissals.json` with `fingerprint`, `tool`, `rule`, `file`, `reason`, `decidedBy`, `decisionRef` (the reference of the decision recorded with `ork decisao registrar`) and `date`; without a reason and a recorded decision, the config is invalid and the scan exits 1.
|
|
37
|
+
6. **An excluded file is not fixed.** A finding in a path the scan config excludes goes back to triage: either the finding is in another file, or the exclusion is wrong, and changing the exclusion is a recorded decision, not a shortcut.
|
|
38
|
+
7. **One correction per finding.** The `ork fix open` spec carries, next to the correction of the `security_scan` command, one correction per CHECK claim, with the type and the verdict text (`ork fix list <thread>`): type B for a real one, type A for a false positive. Type A closes with the dismissal entry and with the command that proves it attached to the claim (`ork claims verificar <thread> <claim> --comando "<comando>"`); the real finding's claim fails and passes with the whole scan, so type B closes when the rerun scan exits with no `new` loop finding, not only when this `fingerprint` is gone.
|
|
39
|
+
|
|
40
|
+
## What the core checks for you
|
|
41
|
+
|
|
42
|
+
`ork security-scan` exits 1 on a `new` loop finding (every new secret; new dependency, SAST, IaC and workflow findings at `high` or `critical`) and on an invalid dismissal. `ork fix reverify` gives the verdict per fix and refuses a partial rerun after type B. A tool `unavailable` or `failed` never counts as clean.
|
|
43
|
+
|
|
44
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
45
|
+
|
|
46
|
+
| Excuse | Reality |
|
|
47
|
+
|---|---|
|
|
48
|
+
| "I took the secret out of the code, it is resolved" | The secret is still valid and still in the history. The rotation declared to the owner and verified is missing. |
|
|
49
|
+
| "I deleted the line in a new commit, the finding goes away" | Gitleaks scans `<base>..HEAD`: the old commit still carries the value and the finding stays `new`. Rewrite the unpublished thread history and declare the rotation. |
|
|
50
|
+
| "Since I am here, I will tidy the rest of the file" | The fix is only the finding. The rest becomes a proposal, with its own task and commit. |
|
|
51
|
+
| "I will go to the newest version, it is safer" | The lowest fixed version, with a justification. The newest brings changes nobody assessed. |
|
|
52
|
+
| "It worked here, the finding must be gone" | The proof is the rerun scan, not the impression of whoever fixed it. |
|
|
53
|
+
| "It is a false positive, I dismiss it and done" | A dismissal requires the triage, the reason and the recorded decision. Without them the config goes invalid. |
|
|
54
|
+
|
|
55
|
+
## Bandeiras vermelhas (Red flags)
|
|
56
|
+
|
|
57
|
+
- A secret removed from the file with no rotation declared to the owner.
|
|
58
|
+
- A thread secret fixed only by a new commit, with the commit that brought it still in `<base>..HEAD`.
|
|
59
|
+
- `push --force` to clean the history of a published branch.
|
|
60
|
+
- A fix closed without `ork fix reverify` and without a new scan.
|
|
61
|
+
- A diff with a change that is not the finding.
|
|
62
|
+
- A dependency that skipped several versions with no justification.
|
|
63
|
+
- An entry in `.ork-security/dismissals.json` without `reason` or without `decisionRef`.
|
|
64
|
+
- A secret value pasted in the commit, the report or the prompt.
|
|
65
|
+
- The secret's line read or printed to edit it (Read, `sed -n`, `cat`, `git show`) instead of the edit by line number.
|
|
66
|
+
- The scan rerun with the fix or the dismissal still uncommitted.
|
|
67
|
+
|
|
68
|
+
## Verification before leaving the fix
|
|
69
|
+
|
|
70
|
+
Diff restricted to the finding, rotation declared and the thread history without the secret's commit when it was a secret, version justified when it was a dependency, a complete dismissal entry when it was type A, and `ork fix reverify` green with the finding out of the new report. See `SEC 1`, `SEC 2` and `SEC 10`.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ship-release
|
|
3
|
+
description: "SHIP phase (F5): merge serialized by lease, update against the base, push proven by command and a rollback plan. Routes to ork ship, which only delivers with the push verified on the remote."
|
|
4
|
+
bucket: phases
|
|
5
|
+
roteia: "ork ship <thread> --para <base>"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# SHIP, delivery
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router for the SHIP phase. It does not merge by hand, does not push a branch on the side and does not decide
|
|
14
|
+
on its own that the push may happen: it calls `ork ship`, which serializes the merge by lease and **proves
|
|
15
|
+
the push by comparing the local sha with what the remote reports**.
|
|
16
|
+
|
|
17
|
+
## How to route
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ork worktree sync <thread> # rebasa quando a base avancou
|
|
21
|
+
ork ship <thread> --para main --dry-run # ensaio: mostra tudo, nao toca em nada
|
|
22
|
+
# autorizacao humana registrada: vai no proprio ship, com o nome de quem autorizou
|
|
23
|
+
ork ship <thread> --para main --autorizar-push <quem>
|
|
24
|
+
ork phase list <thread> # a prova: mergeSha, shaRemoto, pushVerificado
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## What SHIP delivers
|
|
28
|
+
|
|
29
|
+
1. **Serialized merge.** The `main-tree` lease lets one thread at a time touch the target tree; the
|
|
30
|
+
others join a queue with a position, instead of fighting over the same checkout.
|
|
31
|
+
2. **Update against the latest base**, with full revalidation whenever the update
|
|
32
|
+
brought changes. A verdict computed before the update describes a diff that no longer exists.
|
|
33
|
+
3. **Push proven by command.** `ork` compares the local sha with `git ls-remote` on the remote and records
|
|
34
|
+
`pushVerificado` in the ledger. **A push reported without the remote's sha counts as a push that did not happen.**
|
|
35
|
+
4. **Contract guard.** Nothing in the final diff changes a versioned public contract without a ratified
|
|
36
|
+
class 2 decision, and the guard runs again after the update against the base.
|
|
37
|
+
5. **Rollback plan**, written before the merge, with the exact revert command.
|
|
38
|
+
|
|
39
|
+
## What the core checks for you
|
|
40
|
+
|
|
41
|
+
The `push_direto_na_base` policy is blocking: source equal to target, source equal to the project's base
|
|
42
|
+
branch, or a delivery with no delta while the local base is ahead of the remote (the push would publish a commit that
|
|
43
|
+
did not go through a thread merge) fails before `ork` touches the remote. A merge that ship itself
|
|
44
|
+
already made and that did not reach the remote (push refused, `--sem-push`) does not count: running ship again pushes it.
|
|
45
|
+
A busy target tree comes out as `tree.blocked`; a lease held by another thread comes out as
|
|
46
|
+
`lease.busy`.
|
|
47
|
+
|
|
48
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
49
|
+
|
|
50
|
+
| Excuse | Reality |
|
|
51
|
+
|---|---|
|
|
52
|
+
| "I already pushed, it worked" | A push is proven by command or it did not happen. The remote's sha is the evidence; the feeling of success is not. |
|
|
53
|
+
| "I'll merge straight into the base, it's a single commit" | A direct push to the base is a blocking policy. Delivery comes from the thread's branch, always. |
|
|
54
|
+
| "The base moved, but my diff does not touch that" | Update and revalidate. An update can bring a change that touches a contract, and the previous verdict described a different diff. |
|
|
55
|
+
| "I'll think about rollback if something goes wrong" | A rollback plan written before the merge, or the plan will be written under pressure, in broken production. |
|
|
56
|
+
| "The queue is slow, I'll merge on the side" | A merge outside the queue is the collision the queue exists to prevent. Wait for your position or release the lease with a record. |
|
|
57
|
+
| "The mode is `#Classic`, so the push needs no authorization" | It does: the authorization is given in advance and **recorded** in the ledger, not waived. A mode relaxes when the human speaks, never whether they speak. |
|
|
58
|
+
|
|
59
|
+
## Bandeiras vermelhas (Red flags)
|
|
60
|
+
|
|
61
|
+
- A merge without a CHECK report with the verdict PASSOU (passed).
|
|
62
|
+
- A push without `pushVerificado` in the ledger.
|
|
63
|
+
- A contract guard run only before the update against the base.
|
|
64
|
+
- A missing thread branch: the delivery going out from the base itself.
|
|
65
|
+
- No rollback plan in the phase artifact.
|
|
66
|
+
|
|
67
|
+
## Verification before leaving the phase
|
|
68
|
+
|
|
69
|
+
Base updated and revalidated, contract guard rerun on the final diff, merge through the lease
|
|
70
|
+
queue, push with the remote's sha in the ledger and a written rollback plan. See `DoD 12` to `DoD 15` and
|
|
71
|
+
`SEC 12`.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-reviewer
|
|
3
|
+
description: "Code reviewer for CHECK: goes through the five axes of code-review-axes.md on the thread diff and returns findings categorized as blocker, warning or suggestion. Never fixes what it finds."
|
|
4
|
+
bucket: reviewers
|
|
5
|
+
roteia: "ork verify <thread> | references/code-review-axes.md"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Code Reviewer
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router that applies [code-review-axes.md](../../../references/code-review-axes.md) to the
|
|
14
|
+
thread diff. **The separation is the central rule: whoever reviews does not fix.** A finding becomes a GO task,
|
|
15
|
+
with its own commit, or the reviewer ends up reviewing their own work and the review ceases to exist.
|
|
16
|
+
|
|
17
|
+
## How to route
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ork worktree audit <thread> # confere a worktree no proprio git
|
|
21
|
+
ork verify <thread> # a suite reexecutada no HEAD real
|
|
22
|
+
git diff <base>...HEAD # o escopo declarado da revisao
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Scope and conduct
|
|
26
|
+
|
|
27
|
+
1. **The scope is declared before the findings:** which diff, which range, which files.
|
|
28
|
+
A review without a declared scope is not reproducible.
|
|
29
|
+
2. **All five axes are covered, every one of them.** An axis with no finding comes out with an explicit "none"; silence
|
|
30
|
+
is not evidence that anyone looked.
|
|
31
|
+
3. **Every finding comes out with exactly one category** and the item it violates, in the format `REVIEW 7`.
|
|
32
|
+
A finding without a category is opinion.
|
|
33
|
+
4. **No rewriting someone else's code in the middle of the review.** The reviewer points out the place, the reason
|
|
34
|
+
and the cost; the change happens in GO.
|
|
35
|
+
|
|
36
|
+
## What the core checks for you
|
|
37
|
+
|
|
38
|
+
A cited file or test that does not exist in the diff comes back as `claims.failed` in `ork verify`; the
|
|
39
|
+
reviewer does not need to trust the runtime's summary, it re-runs.
|
|
40
|
+
|
|
41
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
42
|
+
|
|
43
|
+
| Excuse | Reality |
|
|
44
|
+
|---|---|
|
|
45
|
+
| "Since I found it, I will fix it right here" | Whoever reviews does not fix. A reviewer who edits ends up reviewing their own work, and the review becomes a formality. |
|
|
46
|
+
| "The diff is big, I will review only what looks important" | Partial scope is a partial result: declare what was left out, or the report asserts more than it looked at. |
|
|
47
|
+
| "I let style slide, it is not important" | Style is a suggestion, except when it breaks a project tool, and then it is already a correctness issue. The rule is to categorize, not to ignore. |
|
|
48
|
+
| "This axis does not apply to this diff" | Then write "none" and why. A blank axis is indistinguishable from a forgotten axis. |
|
|
49
|
+
| "I will leave it as a warning so it does not hold up the delivery" | Category is not negotiated out of haste. A blocker downgraded because the delivery was close is the process defect the axis exists to expose. |
|
|
50
|
+
|
|
51
|
+
## Bandeiras vermelhas (Red flags)
|
|
52
|
+
|
|
53
|
+
- A reviewer commit inside the branch they are reviewing.
|
|
54
|
+
- A finding without a category, or without the `REVIEW n` it violates.
|
|
55
|
+
- A report without a declared scope.
|
|
56
|
+
- Duplication pointed out without saying where the code should come from.
|
|
57
|
+
|
|
58
|
+
## Verification before leaving the review
|
|
59
|
+
|
|
60
|
+
Scope declared, five axes filled in, each finding with a category and an item, no edit made
|
|
61
|
+
by the reviewer, and the consolidated verdict delivered to CHECK. See `REVIEW 1` to `REVIEW 12` and `DoD 8`.
|