@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,421 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RM-061, fatia F2a: a familia `thread` do catalogo de mensagens (`ork thread new` e `ork thread
|
|
4
|
+
* status`, o resumo da thread, a linha de conducao, a worktree e os avisos da criacao). O pt-BR e a
|
|
5
|
+
* fonte; o ingles e tipado por ele. Sem import do nucleo: o que vem do estado entra por parametro.
|
|
6
|
+
*
|
|
7
|
+
* Dado gravado sai como foi gravado: nome e assunto da thread, criterio e comando de pronto, o
|
|
8
|
+
* regime do score. Valor fechado que o texto mostra (status da thread, `pausaSobre` de um bloco,
|
|
9
|
+
* nome da operacao de conducao) so e traduzido na impressao; `thread.json` nao muda.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.THREAD_EN = exports.THREAD_PT_BR = exports.PAUSA_SOBRE_EN = void 0;
|
|
13
|
+
/** O assunto da pausa de cada bloco (`modos.ts`) em ingles: um mapa so, para o `thread` e para o prompt de fase. */
|
|
14
|
+
exports.PAUSA_SOBRE_EN = {
|
|
15
|
+
objetivo: 'goal', plano: 'plan', implementacao: 'implementation', evidencias: 'evidence', push: 'push', score: 'score',
|
|
16
|
+
premissas: 'assumptions', 'evidencias, com autorizacao antecipada de push': 'evidence, with push authorized in advance',
|
|
17
|
+
};
|
|
18
|
+
const STATUS_EN = { aberta: 'open', pausada: 'paused', fechada: 'closed' };
|
|
19
|
+
exports.THREAD_PT_BR = {
|
|
20
|
+
/** Largura do rotulo no resumo (` id valor`). */
|
|
21
|
+
largura: 9,
|
|
22
|
+
rotulos: { id: 'id', slug: 'slug', nome: 'nome', modo: 'modo', ciclo: 'ciclo', fase: 'fase', status: 'status', base: 'base',
|
|
23
|
+
worktree: 'worktree', conducao: 'conducao', score: 'score', check: 'check' },
|
|
24
|
+
modo: (tag, pausas) => `${tag} (${pausas} pausas humanas previstas)`,
|
|
25
|
+
cicloPadrao: 'padrao do modo',
|
|
26
|
+
status: (status) => status,
|
|
27
|
+
raizDoProjeto: '(raiz do projeto)',
|
|
28
|
+
ninguemConduz: 'ninguem conduz agora',
|
|
29
|
+
validacao: ' validacao CHECK em runtime diferente do GO (exigido pela thread)',
|
|
30
|
+
prontoQuando: (n) => ` pronto quando (${n} criterio(s) executaveis)`,
|
|
31
|
+
score: (valor, por, regime, quando) => `${valor}/5 por ${por} (${regime}) em ${quando}`,
|
|
32
|
+
/** RM-072 (D17): o modo do ultimo `verify_run`; o nome de produto ("Agile Check", "Classic Check") e o mesmo nas duas linguas. */
|
|
33
|
+
check: (nome, origem, quando, sha) => `${nome}, ${origem === 'opcao' ? 'pela opcao --check' : origem === 'manifesto' ? 'pelo manifesto' : 'pelo padrao'}, ` +
|
|
34
|
+
`no verify de ${quando} (${sha})`,
|
|
35
|
+
blocosPrevistos: ' blocos previstos',
|
|
36
|
+
pausaPrevista: (sobre) => `pausa prevista: ${sobre}`,
|
|
37
|
+
pausaSobre: (sobre) => sobre,
|
|
38
|
+
semPausa: 'sem pausa humana prevista',
|
|
39
|
+
/** `produto "loc", assunto "x", fases "full"`: o slug de 3 partes descrito. */
|
|
40
|
+
slug: (produto, assunto, fases, rotacao) => `produto "${produto}", assunto "${assunto}", fases "${fases}"${rotacao ? `, rotacao ${rotacao}` : ''}`,
|
|
41
|
+
/** Linha unica de quem conduz (conducao-texto.ts). */
|
|
42
|
+
conduzido: (canal, quem, fase, desde) => `conduzido agora por ${canal}, ${quem}, fase ${fase}, desde ${desde}`,
|
|
43
|
+
quemSessao: (id) => `sessao ${id}`,
|
|
44
|
+
quemProcesso: (pid, operacao) => `processo ${pid} (${operacao})`,
|
|
45
|
+
quemReserva: (por) => `reserva de ${por}`,
|
|
46
|
+
operacoes: {
|
|
47
|
+
'phase.run': 'despacho de fase',
|
|
48
|
+
'retry.run': 'retomada de fase',
|
|
49
|
+
verify: 'ork verify',
|
|
50
|
+
baseline: 'ork verify --baseline',
|
|
51
|
+
'fix.open': 'ork fix open',
|
|
52
|
+
'fix.reverify': 'ork fix reverify',
|
|
53
|
+
'mcp.verify': 'ork_verify (MCP)',
|
|
54
|
+
handoff: 'reserva de quem assumiu',
|
|
55
|
+
'branch.atualizar': 'merge da base na branch',
|
|
56
|
+
},
|
|
57
|
+
// ork thread new
|
|
58
|
+
criada: 'Thread criada.',
|
|
59
|
+
simulacao: 'Simulacao (--dry-run), nada foi gravado.',
|
|
60
|
+
roadmapReservado: (item, maquina) => ` roadmap: ${item} reservado para esta maquina (${maquina})`,
|
|
61
|
+
slugEm3Partes: (descrito) => ` slug em 3 partes: ${descrito}`,
|
|
62
|
+
estado: (id) => ` estado: .orkastery/threads/${id}/thread.json`,
|
|
63
|
+
proximoPasso: (id, fase) => `Proximo passo: ork phase run ${id} ${fase} --prompt "<pedido>"`,
|
|
64
|
+
usoNew: 'uso: ork thread new <nome> --modo <MODO>',
|
|
65
|
+
doneSemComando: (entrada) => `done.sem-comando: "${entrada}" nao traz comando. ` +
|
|
66
|
+
'Use --done "<criterio> :: <comando que o prova>"; criterio sem comando e prosa, nao criterio de pronto.',
|
|
67
|
+
doneIncompleto: (entrada) => `done.incompleto: "${entrada}" precisa de criterio E comando`,
|
|
68
|
+
varianteInvalida: (bruto, variantes) => `variante de ciclo invalida: "${bruto}". Use uma de: ${variantes}`,
|
|
69
|
+
cicloExigeWorktree: (variante) => `uso: o ciclo ${variante} exige worktree isolada: crie a thread sem --sem-worktree ou escolha outro ciclo`,
|
|
70
|
+
worktreeVazia: 'uso: --worktree pede auto ou um diretório que já existe',
|
|
71
|
+
semWorktreeComValor: (valor) => `uso: --sem-worktree não leva valor (recebeu "${valor}")`,
|
|
72
|
+
worktreeESemWorktree: 'uso: --worktree e --sem-worktree se excluem; use um dos dois',
|
|
73
|
+
worktreeChave: (gravada) => ` worktree: ${gravada ? 'criada' : 'seria criada'} pela chave worktree.por_thread do ` +
|
|
74
|
+
'orkastery.yaml; para criar sem ela, use --sem-worktree',
|
|
75
|
+
worktreeFlag: (gravada) => ` worktree: ${gravada ? 'criada' : 'seria criada'} pelo --worktree auto`,
|
|
76
|
+
worktreeCiclo: (gravada, variante) => ` worktree: ${gravada ? 'criada' : 'seria criada'} pelo ciclo ${variante ?? 'da thread'}, que exige worktree isolada`,
|
|
77
|
+
avisoSemWorktree: (id, gravada, c) => {
|
|
78
|
+
const inicio = gravada
|
|
79
|
+
? `Aviso: thread ${id} sem worktree (--sem-worktree): ela trabalha na raiz do projeto`
|
|
80
|
+
: `Aviso: sem worktree (--sem-worktree), a thread ${id} trabalharia na raiz do projeto`;
|
|
81
|
+
const ensure = `Antes do GO, ork worktree ensure ${id} cria a worktree e a branch da thread`;
|
|
82
|
+
if (c.caso === 'sem-commit') {
|
|
83
|
+
return `${inicio}, num repositório ainda sem commit, fora de qualquer branch, e o ork ship não tem branch de origem ` +
|
|
84
|
+
'para entregar. Faça o primeiro commit e siga o aviso de thread sem base.';
|
|
85
|
+
}
|
|
86
|
+
if (c.caso === 'head') {
|
|
87
|
+
return `${inicio}, com o HEAD destacado, fora de qualquer branch, e o ork ship não tem branch de origem para entregar. ${ensure}.`;
|
|
88
|
+
}
|
|
89
|
+
if (c.caso === 'outra') {
|
|
90
|
+
return `${inicio}, na branch ${c.branch}, e o ork ship entrega essa branch como estiver, com o que mais entrar nela; ` +
|
|
91
|
+
`com --para ${c.branch}, a entrega vira push direto, que a policy push_direto_na_base confere. ${ensure}.`;
|
|
92
|
+
}
|
|
93
|
+
const efeito = c.policy === 'block'
|
|
94
|
+
? 'o ork ship barra a entrega por push_direto_na_base (block): não há branch de thread para mergear'
|
|
95
|
+
: c.policy === undefined || c.policy === 'off'
|
|
96
|
+
? 'o ork ship empurra a base direto, sem branch de thread (push_direto_na_base desligada)'
|
|
97
|
+
: `o ork ship avisa push_direto_na_base (${c.policy}) e empurra a base direto, sem branch de thread`;
|
|
98
|
+
return `${inicio}, na branch base ${c.base}, e ${efeito}. ${ensure}; depois do GO, os commits já estão na base e o ship não os separa.`;
|
|
99
|
+
},
|
|
100
|
+
worktreeFalharia: (motivo, dir, branch, peloCiclo) => {
|
|
101
|
+
const semWorktree = peloCiclo ? '' : ' ou crie com --sem-worktree';
|
|
102
|
+
if (motivo === 'pasta-existe') {
|
|
103
|
+
return `Aviso: a pasta ${dir} já existe, e a criação de verdade recusaria a worktree da thread: tire a pasta${semWorktree}.`;
|
|
104
|
+
}
|
|
105
|
+
if (motivo === 'branch-existe') {
|
|
106
|
+
return `Aviso: a branch ${branch} já existe, e a criação de verdade recusaria a worktree da thread: tire a branch${semWorktree}.`;
|
|
107
|
+
}
|
|
108
|
+
return 'Aviso: o repositório ainda não tem commit, e a criação de verdade recusaria a worktree da thread no git worktree add: ' +
|
|
109
|
+
'faça o primeiro commit antes.';
|
|
110
|
+
},
|
|
111
|
+
chaveSemCommit: (gravada) => 'Aviso: worktree.por_thread pede a worktree da thread, mas o repositório ainda não tem commit: ' +
|
|
112
|
+
`a thread ${gravada ? 'nasceu' : 'nasceria'} na raiz do projeto, sem worktree.`,
|
|
113
|
+
semBase: (id, gravada) => gravada
|
|
114
|
+
? `Aviso: o repositório ainda não tem commit, e a thread ${id} nasceu sem base: o ship não tem de onde partir. ` +
|
|
115
|
+
`Faça o primeiro commit, feche esta com ork thread close ${id} --motivo engano --por <quem> ` +
|
|
116
|
+
'--justificativa "aberta antes do primeiro commit" e abra outra.'
|
|
117
|
+
: 'Aviso: o repositório ainda não tem commit, e a thread nasceria sem base: faça o primeiro commit antes de abrir a primeira thread.',
|
|
118
|
+
roadmapNoNome: (item) => `Aviso: ${item} no nome não associa a thread ao roadmap. No terminal, consulte ork roadmap reservas ` +
|
|
119
|
+
`e ork fabrica; para associar e reservar, use --roadmap ${item} em ork thread new. Nenhuma reserva foi criada por este aviso.`,
|
|
120
|
+
modoDesconhecido: (entrada, tags) => `modo.desconhecido: "${entrada}" nao e um modo de conducao. Use um de: ${tags}.`,
|
|
121
|
+
modoAposentado: (motivo, tag, substitutos) => `${motivo}: ${tag} foi aposentado e nao abre trabalho novo. Use ${substitutos.join(' ou ')}. ` +
|
|
122
|
+
`Thread ja gravada em ${tag} continua abrindo normalmente.`,
|
|
123
|
+
publicacaoPendente: (motivo) => `Memoria: publicacao pendente (${motivo}); ativacao explicita necessaria.`,
|
|
124
|
+
memoriaGravada: (tenant, gravados) => `Memoria (orkmind, tenant ${tenant}): ${gravados}.`,
|
|
125
|
+
nadaAGravar: 'nada a gravar',
|
|
126
|
+
gravacoesFalhas: (n) => ` ${n} gravacao(oes) nao concluida(s); veja ork memory status.`,
|
|
127
|
+
// ork thread new --from-finding. IDs, códigos, claims e valores do achado continuam dados.
|
|
128
|
+
fromFinding: {
|
|
129
|
+
achadoNaoExiste: (id, board) => `achado "${id}" nao existe no board de divida (${board}). Veja: ork audit divida`,
|
|
130
|
+
recusada: (id) => `Thread a partir do achado ${id} RECUSADA.`,
|
|
131
|
+
descricaoDoMotivo: (_motivo, descricao) => descricao,
|
|
132
|
+
motivoTipado: (motivo) => ` motivo tipado: ${motivo}`,
|
|
133
|
+
detalhe: (detalhe) => ` detalhe: ${detalhe}`,
|
|
134
|
+
correcao: (correcao) => ` correcao: ${correcao}`,
|
|
135
|
+
criada: (id) => `Thread criada a partir do achado ${id}.`,
|
|
136
|
+
simulacao: 'Simulacao (--dry-run), nada foi gravado.',
|
|
137
|
+
origemDoGoal: (id) => ` origem do GOAL: .orkastery/threads/${id}/achado.json`,
|
|
138
|
+
pedidoMontado: 'Pedido de GOAL ja montado a partir do achado:',
|
|
139
|
+
proximoPasso: 'Proximo passo:',
|
|
140
|
+
comandoDoProximoPasso: (id) => ` ork phase run ${id} GOAL --prompt "$(cat .orkastery/threads/${id}/pedido-goal.md)"`,
|
|
141
|
+
jaVirouThread: (achado, thread) => `o achado ${achado} ja originou a thread ${thread}`,
|
|
142
|
+
continueNaThread: (thread) => `continue naquela thread: ork thread status ${thread}`,
|
|
143
|
+
claimPendente: (claim) => `a claim ${claim} do achado ainda nao foi reexecutada no HEAD real: ` +
|
|
144
|
+
'o auditor nao tem direito a self-report',
|
|
145
|
+
proveOAchado: (rodada) => `prove o achado antes de abrir trabalho: ork audit verify ${rodada}`,
|
|
146
|
+
claimReprovada: (claim) => `a claim ${claim} do achado REPROVOU na reexecucao no HEAD real`,
|
|
147
|
+
descarteOAchado: 'o achado nao se sustenta: corrija a evidencia na rodada, ou descarte o achado, em vez de abrir thread sobre ele',
|
|
148
|
+
simulacaoDetalhe: 'simulacao (--dry-run): nenhuma thread e nenhum carimbo no board foram gravados',
|
|
149
|
+
claimSemComando: (claim) => `AVISO: a claim ${claim} do achado nao tem comando de verificacao ` +
|
|
150
|
+
'(motivo tipado claims.unverifiable, que avisa e nao bloqueia)',
|
|
151
|
+
achadoAberto: (achado, thread) => `achado ${achado} aberto como thread ${thread}, com a evidencia e a claim junto`,
|
|
152
|
+
achadoCabecalho: (id, severidade, pack, regra, titulo) => ` ${id} [${severidade}] ${pack}/${regra} ${titulo}`,
|
|
153
|
+
evidencia: (valor) => ` evidencia ${valor}`,
|
|
154
|
+
descricao: (valor) => ` descricao ${valor}`,
|
|
155
|
+
claim: (id, estado, alegacao) => ` claim ${id} [${estado}] ${alegacao}`,
|
|
156
|
+
verificar: (comando) => ` verificar ${comando}`,
|
|
157
|
+
semComando: '(sem comando: o auditor nao comprovou o achado)',
|
|
158
|
+
impacto: (valor) => ` impacto ${valor}`,
|
|
159
|
+
fix: (valor) => ` fix ${valor}`,
|
|
160
|
+
irreversivel: (valor) => ` irreversivel ${valor}`,
|
|
161
|
+
estimativa: (valor) => ` estimativa ${valor}`,
|
|
162
|
+
destino: (destino, regime) => ` destino ${destino} (regime ${regime})`,
|
|
163
|
+
estado: (estado, thread) => ` estado ${estado}${thread ? ` (thread ${thread})` : ''}`,
|
|
164
|
+
pedidoCabecalho: (id, pack, regra, severidade) => `Achado de auditoria ${id} (pack ${pack}, regra ${regra}, severidade ${severidade}).`,
|
|
165
|
+
pedidoTitulo: (titulo) => `Titulo: ${titulo}`,
|
|
166
|
+
pedidoEvidencia: (evidencia) => `Evidencia: ${evidencia}`,
|
|
167
|
+
pedidoDescricao: (descricao) => `Descricao: ${descricao}`,
|
|
168
|
+
pedidoClaim: (id, estado, alegacao) => `Alegacao do auditor (claim ${id}, estado ${estado}): ${alegacao}`,
|
|
169
|
+
pedidoVerificar: (comando) => `Como reexecutar a evidencia: ${comando}`,
|
|
170
|
+
naoDeclarado: '(nao declarado pelo auditor)',
|
|
171
|
+
proposta: 'Proposta de ajuste levantada pela rodada:',
|
|
172
|
+
propostaImpacto: (valor) => ` impacto ${valor}`,
|
|
173
|
+
propostaFix: (valor) => ` fix sugerido ${valor}`,
|
|
174
|
+
propostaIrreversivel: (valor) => ` irreversivel ${valor}`,
|
|
175
|
+
propostaEstimativa: (valor) => ` estimativa ${valor}`,
|
|
176
|
+
origem: (rodada, produto, estagio, postura) => `Origem: rodada ${rodada}, produto ${produto}, estagio ${estagio}, postura ${postura}.`,
|
|
177
|
+
propostaNaoDecisao: 'O fix acima e proposta do auditor, nao decisao: valide no GOAL antes de implementar.',
|
|
178
|
+
},
|
|
179
|
+
// ork thread status
|
|
180
|
+
naoEncontrada: (id, dir) => `thread "${id}" nao encontrada em ${dir}`,
|
|
181
|
+
usoStatus: 'uso: ork thread status <thread-id>',
|
|
182
|
+
/** D14: erros de argumento de `thread new` que nascem no escopo pt-BR da gravacao (`ErroDoCatalogo`). */
|
|
183
|
+
slugInvalido: (slug, regex) => `slug invalido: "${slug}" (regex canonica: ${regex})`,
|
|
184
|
+
roadmapItemInvalido: (item) => `roadmap.item: "${item}" nao e um item do roadmap (esperado RM-NNN)`,
|
|
185
|
+
roadmapItemInexistente: (id) => `roadmap.item: ${id} nao existe em docs/roadmap`,
|
|
186
|
+
/** RM-059 (T6.0) no thread new: o pedido do builder guardado ao lado do thread.json. */
|
|
187
|
+
usoPedido: 'uso: --pedido "<texto do pedido do builder>"',
|
|
188
|
+
/** D14: os demais erros de argumento de `thread new`, lancados no escopo pt-BR da criacao. */
|
|
189
|
+
varianteIncompativel: (variante, tag, fases) => `o ciclo ${variante} redesenha os blocos e o modo ${tag} ` +
|
|
190
|
+
`tem um bloco so (${fases}): crie a thread sem --ciclo ou escolha um modo de ciclo completo`,
|
|
191
|
+
modoNaoPermitido: (tag, permitidos) => `modo ${tag} fora de conduction.allowed_modes (permitidos: ${permitidos})`,
|
|
192
|
+
nomeSemAssunto: (nome) => `nome "${nome}" nao produz assunto valido (esperado [a-z0-9])`,
|
|
193
|
+
cicloExigeBranch: (variante) => `o ciclo ${variante} parte de uma branch que ja existe: informe --branch <branch>`,
|
|
194
|
+
branchInexistente: (branch) => `branch "${branch}" nao existe neste repositorio`,
|
|
195
|
+
branchSemCiclo: '--branch so vale com --ciclo merge-branch',
|
|
196
|
+
ocupadaPelaChave: (pasta, alvo) => `${pasta ? 'a pasta' : 'a branch'} ${alvo} já existe, e a chave ` +
|
|
197
|
+
'worktree.por_thread pede a worktree da thread: tire-a ou crie com --sem-worktree',
|
|
198
|
+
usoComMotivo: (motivo) => `uso: ${motivo}`,
|
|
199
|
+
pedidoVazio: 'thread.pedido.invalido: o pedido esta vazio',
|
|
200
|
+
pedidoGrande: (bytes, teto) => `thread.pedido.invalido: o pedido tem ${bytes} bytes, e o teto e ${teto}`,
|
|
201
|
+
pedidoGuardado: (gravada, caminho, sha, bytes) => ` pedido: ${gravada ? 'guardado em' : 'seria guardado em'} ${caminho} (sha256 ${sha}, ${bytes} bytes); o ork prompt render o usa quando falta --pedido`,
|
|
202
|
+
nenhumaSessao: ' nenhuma sessao despachada ainda',
|
|
203
|
+
sessoesDespachadas: ' sessoes despachadas (estado real conferido em `ork sessions`)',
|
|
204
|
+
sessao: (verificada, canal) => `verificada no runtime: ${verificada ? 'sim' : 'nao'} canal: ${canal}`,
|
|
205
|
+
pausasDoModo: (n) => ` pausas humanas do modo: ${n}`,
|
|
206
|
+
// F3b (D1): ork thread list, close e entrega
|
|
207
|
+
colunasDaLista: ['ID', 'SLUG', 'MODO', 'FASE', 'STATUS', 'PAUSAS', 'SESSOES'],
|
|
208
|
+
listaVazia: (todas, modo) => `${todas ? 'Nenhuma thread em .orkastery/threads.'
|
|
209
|
+
: 'Nenhuma thread aberta ou pausada (use --todas para ver as fechadas).'} Crie uma com: ork thread new "<nome>" --modo ${modo}`,
|
|
210
|
+
fechadasOmitidas: (n) => ` ${n} fechada(s) omitida(s). Use --todas para ver todas.`,
|
|
211
|
+
informeOId: 'informe o id da thread',
|
|
212
|
+
/** D14: as recusas de `thread close` e `thread entrega` (`thread-close.ts`), por `ErroDoCatalogo`. */
|
|
213
|
+
sha256Invalido: 'sha256 inválido',
|
|
214
|
+
artefatoForaDoProjeto: 'artefato deve estar dentro do projeto',
|
|
215
|
+
artefatoNaoRegular: 'artefato deve ser arquivo regular',
|
|
216
|
+
artefatoDiverge: 'hash do artefato diverge',
|
|
217
|
+
artefatoExige: 'artefato exige thread aberta e autoria explícita',
|
|
218
|
+
motivoDoFechamento: 'motivo deve ser orfa, engano ou superada',
|
|
219
|
+
fechamentoExige: 'fechamento exige autoria e justificativa',
|
|
220
|
+
encerradaPorOutroMotivo: 'thread já encerrada por outro motivo',
|
|
221
|
+
entregueExigeMaster: 'thread entregue ou pontuada exige MASTER, não fechamento administrativo',
|
|
222
|
+
};
|
|
223
|
+
exports.THREAD_EN = {
|
|
224
|
+
largura: 10,
|
|
225
|
+
rotulos: { id: 'id', slug: 'slug', nome: 'name', modo: 'mode', ciclo: 'cycle', fase: 'phase', status: 'status', base: 'base',
|
|
226
|
+
worktree: 'worktree', conducao: 'conduction', score: 'score', check: 'check' },
|
|
227
|
+
modo: (tag, pausas) => `${tag} (${pausas} planned human pause${pausas === 1 ? '' : 's'})`,
|
|
228
|
+
cicloPadrao: 'default for the mode',
|
|
229
|
+
status: (status) => STATUS_EN[status] ?? status,
|
|
230
|
+
raizDoProjeto: '(project root)',
|
|
231
|
+
ninguemConduz: 'nobody right now',
|
|
232
|
+
validacao: ' validation CHECK on a runtime other than the GO one (required by the thread)',
|
|
233
|
+
prontoQuando: (n) => ` done when (${n} executable criteri${n === 1 ? 'on' : 'a'})`,
|
|
234
|
+
score: (valor, por, regime, quando) => `${valor}/5 by ${por} (${regime}) on ${quando}`,
|
|
235
|
+
check: (nome, origem, quando, sha) => `${nome}, ${origem === 'opcao' ? 'by the --check option' : origem === 'manifesto'
|
|
236
|
+
? 'by the manifest' : 'by default'}, in the verify of ${quando} (${sha})`,
|
|
237
|
+
blocosPrevistos: ' planned blocks',
|
|
238
|
+
pausaPrevista: (sobre) => `planned pause: ${sobre}`,
|
|
239
|
+
pausaSobre: (sobre) => exports.PAUSA_SOBRE_EN[sobre] ?? sobre,
|
|
240
|
+
semPausa: 'no planned human pause',
|
|
241
|
+
slug: (produto, assunto, fases, rotacao) => `product "${produto}", subject "${assunto}", phases "${fases}"${rotacao ? `, rotation ${rotacao}` : ''}`,
|
|
242
|
+
conduzido: (canal, quem, fase, desde) => `conducted now by ${canal}, ${quem}, phase ${fase}, since ${desde}`,
|
|
243
|
+
quemSessao: (id) => `session ${id}`,
|
|
244
|
+
quemProcesso: (pid, operacao) => `process ${pid} (${operacao})`,
|
|
245
|
+
quemReserva: (por) => `reserved by ${por}`,
|
|
246
|
+
operacoes: {
|
|
247
|
+
'phase.run': 'phase dispatch',
|
|
248
|
+
'retry.run': 'phase retry',
|
|
249
|
+
verify: 'ork verify',
|
|
250
|
+
baseline: 'ork verify --baseline',
|
|
251
|
+
'fix.open': 'ork fix open',
|
|
252
|
+
'fix.reverify': 'ork fix reverify',
|
|
253
|
+
'mcp.verify': 'ork_verify (MCP)',
|
|
254
|
+
handoff: 'reservation of whoever took over',
|
|
255
|
+
'branch.atualizar': 'merge of the base into the branch',
|
|
256
|
+
},
|
|
257
|
+
criada: 'Thread created.',
|
|
258
|
+
simulacao: 'Dry run (--dry-run): nothing was written.',
|
|
259
|
+
roadmapReservado: (item, maquina) => ` roadmap: ${item} reserved for this machine (${maquina})`,
|
|
260
|
+
slugEm3Partes: (descrito) => ` 3-part slug: ${descrito}`,
|
|
261
|
+
estado: (id) => ` state: .orkastery/threads/${id}/thread.json`,
|
|
262
|
+
proximoPasso: (id, fase) => `Next step: \`ork phase run ${id} ${fase} --prompt "<request>"\``,
|
|
263
|
+
usoNew: 'usage: ork thread new <name> --modo <MODE>',
|
|
264
|
+
doneSemComando: (entrada) => `done.sem-comando: "${entrada}" has no command. ` +
|
|
265
|
+
'Use `--done "<criterion> :: <command that proves it>"`; a criterion without a command is prose, not a done criterion.',
|
|
266
|
+
doneIncompleto: (entrada) => `done.incompleto: "${entrada}" needs a criterion AND a command`,
|
|
267
|
+
varianteInvalida: (bruto, variantes) => `invalid cycle variant: "${bruto}". Use one of: ${variantes}`,
|
|
268
|
+
cicloExigeWorktree: (variante) => `usage: the ${variante} cycle requires an isolated worktree: create the thread without \`--sem-worktree\` or pick another cycle`,
|
|
269
|
+
worktreeVazia: 'usage: `--worktree` takes `auto` or a directory that already exists',
|
|
270
|
+
semWorktreeComValor: (valor) => `usage: \`--sem-worktree\` takes no value (got "${valor}")`,
|
|
271
|
+
worktreeESemWorktree: 'usage: `--worktree` and `--sem-worktree` exclude each other; use one of them',
|
|
272
|
+
worktreeChave: (gravada) => ` worktree: ${gravada ? 'created' : 'would be created'} by the \`worktree.por_thread\` key in ` +
|
|
273
|
+
'orkastery.yaml; to create without it, use `--sem-worktree`',
|
|
274
|
+
worktreeFlag: (gravada) => ` worktree: ${gravada ? 'created' : 'would be created'} by \`--worktree auto\``,
|
|
275
|
+
worktreeCiclo: (gravada, variante) => ` worktree: ${gravada ? 'created' : 'would be created'} by ` +
|
|
276
|
+
`${variante ? `the ${variante} cycle` : 'the thread cycle'}, which requires an isolated worktree`,
|
|
277
|
+
avisoSemWorktree: (id, gravada, c) => {
|
|
278
|
+
const inicio = gravada
|
|
279
|
+
? `Warning: thread ${id} has no worktree (\`--sem-worktree\`): it works at the project root`
|
|
280
|
+
: `Warning: without a worktree (\`--sem-worktree\`), thread ${id} would work at the project root`;
|
|
281
|
+
const ensure = `Before GO, \`ork worktree ensure ${id}\` creates the thread worktree and branch`;
|
|
282
|
+
if (c.caso === 'sem-commit') {
|
|
283
|
+
return `${inicio}, in a repository with no commit yet, outside any branch, and \`ork ship\` has no source branch ` +
|
|
284
|
+
'to deliver. Make the first commit and follow the warning about a thread without a base.';
|
|
285
|
+
}
|
|
286
|
+
if (c.caso === 'head') {
|
|
287
|
+
return `${inicio}, with a detached HEAD, outside any branch, and \`ork ship\` has no source branch to deliver. ${ensure}.`;
|
|
288
|
+
}
|
|
289
|
+
if (c.caso === 'outra') {
|
|
290
|
+
return `${inicio}, on branch ${c.branch}, and \`ork ship\` delivers that branch as it is, with whatever else lands on it; ` +
|
|
291
|
+
`with \`--para ${c.branch}\`, the delivery becomes a direct push, which the \`push_direto_na_base\` policy checks. ${ensure}.`;
|
|
292
|
+
}
|
|
293
|
+
const efeito = c.policy === 'block'
|
|
294
|
+
? '`ork ship` refuses the delivery under `push_direto_na_base` (block): there is no thread branch to merge'
|
|
295
|
+
: c.policy === undefined || c.policy === 'off'
|
|
296
|
+
? '`ork ship` pushes the base directly, without a thread branch (`push_direto_na_base` off)'
|
|
297
|
+
: `\`ork ship\` warns about \`push_direto_na_base\` (${c.policy}) and pushes the base directly, without a thread branch`;
|
|
298
|
+
return `${inicio}, on the base branch ${c.base}, and ${efeito}. ${ensure}; after GO, the commits are already on the base and ` +
|
|
299
|
+
'ship does not separate them.';
|
|
300
|
+
},
|
|
301
|
+
worktreeFalharia: (motivo, dir, branch, peloCiclo) => {
|
|
302
|
+
const semWorktree = peloCiclo ? '' : ' or create it with `--sem-worktree`';
|
|
303
|
+
if (motivo === 'pasta-existe') {
|
|
304
|
+
return `Warning: the folder ${dir} already exists, and the real creation would refuse the thread worktree: remove the folder${semWorktree}.`;
|
|
305
|
+
}
|
|
306
|
+
if (motivo === 'branch-existe') {
|
|
307
|
+
return `Warning: the branch ${branch} already exists, and the real creation would refuse the thread worktree: remove the branch${semWorktree}.`;
|
|
308
|
+
}
|
|
309
|
+
return 'Warning: the repository has no commit yet, and the real creation would refuse the thread worktree in `git worktree add`: ' +
|
|
310
|
+
'make the first commit first.';
|
|
311
|
+
},
|
|
312
|
+
chaveSemCommit: (gravada) => 'Warning: `worktree.por_thread` asks for the thread worktree, but the repository has no commit yet: ' +
|
|
313
|
+
`the thread ${gravada ? 'was created' : 'would be created'} at the project root, without a worktree.`,
|
|
314
|
+
semBase: (id, gravada) => gravada
|
|
315
|
+
? `Warning: the repository has no commit yet, and thread ${id} was created without a base: ship has nowhere to start from. ` +
|
|
316
|
+
`Make the first commit, close this one with \`ork thread close ${id} --motivo engano --por <who> ` +
|
|
317
|
+
'--justificativa "opened before the first commit"` and open another.'
|
|
318
|
+
: 'Warning: the repository has no commit yet, and the thread would be created without a base: make the first commit before opening the first thread.',
|
|
319
|
+
roadmapNoNome: (item) => `Warning: ${item} in the name does not link the thread to the roadmap. In the terminal, check ` +
|
|
320
|
+
`\`ork roadmap reservas\` and \`ork fabrica\`; to link and reserve it, use \`--roadmap ${item}\` in \`ork thread new\`. ` +
|
|
321
|
+
'No reservation was created by this warning.',
|
|
322
|
+
modoDesconhecido: (entrada, tags) => `modo.desconhecido: "${entrada}" is not a conduction mode. Use one of: ${tags}.`,
|
|
323
|
+
modoAposentado: (motivo, tag, substitutos) => `${motivo}: ${tag} was retired and opens no new work. Use ${substitutos.join(' or ')}. ` +
|
|
324
|
+
`A thread already recorded in ${tag} keeps opening normally.`,
|
|
325
|
+
publicacaoPendente: (motivo) => `Memory: publication pending (${motivo}); explicit activation required.`,
|
|
326
|
+
memoriaGravada: (tenant, gravados) => `Memory (orkmind, tenant ${tenant}): ${gravados}.`,
|
|
327
|
+
nadaAGravar: 'nothing to write',
|
|
328
|
+
gravacoesFalhas: (n) => ` ${n} write(s) not completed; see \`ork memory status\`.`,
|
|
329
|
+
fromFinding: {
|
|
330
|
+
achadoNaoExiste: (id, board) => `finding "${id}" does not exist on the debt board (${board}). See: \`ork audit divida\``,
|
|
331
|
+
recusada: (id) => `Thread from finding ${id} REFUSED.`,
|
|
332
|
+
descricaoDoMotivo: (motivo) => ({
|
|
333
|
+
'claims.failed': 'the finding claim has no passing proof on the real HEAD',
|
|
334
|
+
'claims.unverifiable': 'the finding claim has no executable verification command',
|
|
335
|
+
'achado.ja-virou-thread': 'the finding already opened a thread and cannot open another one',
|
|
336
|
+
}[motivo] ?? 'the typed audit rule refused the finding'),
|
|
337
|
+
motivoTipado: (motivo) => ` typed reason: ${motivo}`,
|
|
338
|
+
detalhe: (detalhe) => ` detail: ${detalhe}`,
|
|
339
|
+
correcao: (correcao) => ` fix: ${correcao}`,
|
|
340
|
+
criada: (id) => `Thread created from finding ${id}.`,
|
|
341
|
+
simulacao: 'Dry run (--dry-run): nothing was written.',
|
|
342
|
+
origemDoGoal: (id) => ` GOAL source: .orkastery/threads/${id}/achado.json`,
|
|
343
|
+
pedidoMontado: 'GOAL request already assembled from the finding:',
|
|
344
|
+
proximoPasso: 'Next step:',
|
|
345
|
+
comandoDoProximoPasso: (id) => ` ork phase run ${id} GOAL --prompt "$(cat .orkastery/threads/${id}/pedido-goal.md)"`,
|
|
346
|
+
jaVirouThread: (achado, thread) => `finding ${achado} already opened thread ${thread}`,
|
|
347
|
+
continueNaThread: (thread) => `continue in that thread: \`ork thread status ${thread}\``,
|
|
348
|
+
claimPendente: (claim) => `finding claim ${claim} has not been rerun on the real HEAD: the auditor cannot self-report`,
|
|
349
|
+
proveOAchado: (rodada) => `prove the finding before opening work: \`ork audit verify ${rodada}\``,
|
|
350
|
+
claimReprovada: (claim) => `finding claim ${claim} FAILED when rerun on the real HEAD`,
|
|
351
|
+
descarteOAchado: 'the finding is not supported: fix the evidence in the audit run or discard the finding instead of opening a thread',
|
|
352
|
+
simulacaoDetalhe: 'dry run: no thread or board stamp was written',
|
|
353
|
+
claimSemComando: (claim) => `WARNING: finding claim ${claim} has no verification command ` +
|
|
354
|
+
'(typed reason claims.unverifiable, which warns and does not block)',
|
|
355
|
+
achadoAberto: (achado, thread) => `finding ${achado} opened as thread ${thread}, with its evidence and claim`,
|
|
356
|
+
achadoCabecalho: (id, severidade, pack, regra, titulo) => ` ${id} [${severidade}] ${pack}/${regra} ${titulo}`,
|
|
357
|
+
evidencia: (valor) => ` evidence ${valor}`,
|
|
358
|
+
descricao: (valor) => ` description ${valor}`,
|
|
359
|
+
claim: (id, estado, alegacao) => ` claim ${id} [${estado}] ${alegacao}`,
|
|
360
|
+
verificar: (comando) => ` verify ${comando}`,
|
|
361
|
+
semComando: '(no command: the auditor did not prove the finding)',
|
|
362
|
+
impacto: (valor) => ` impact ${valor}`,
|
|
363
|
+
fix: (valor) => ` fix ${valor}`,
|
|
364
|
+
irreversivel: (valor) => ` irreversible ${valor}`,
|
|
365
|
+
estimativa: (valor) => ` estimate ${valor}`,
|
|
366
|
+
destino: (destino, regime) => ` destination ${destino} (${regime} regime)`,
|
|
367
|
+
estado: (estado, thread) => ` state ${estado}${thread ? ` (thread ${thread})` : ''}`,
|
|
368
|
+
pedidoCabecalho: (id, pack, regra, severidade) => `Audit finding ${id} (pack ${pack}, rule ${regra}, severity ${severidade}).`,
|
|
369
|
+
pedidoTitulo: (titulo) => `Title: ${titulo}`,
|
|
370
|
+
pedidoEvidencia: (evidencia) => `Evidence: ${evidencia}`,
|
|
371
|
+
pedidoDescricao: (descricao) => `Description: ${descricao}`,
|
|
372
|
+
pedidoClaim: (id, estado, alegacao) => `Auditor claim (${id}, state ${estado}): ${alegacao}`,
|
|
373
|
+
pedidoVerificar: (comando) => `How to rerun the evidence: ${comando}`,
|
|
374
|
+
naoDeclarado: '(not declared by the auditor)',
|
|
375
|
+
proposta: 'Adjustment proposed by the audit run:',
|
|
376
|
+
propostaImpacto: (valor) => ` impact ${valor}`,
|
|
377
|
+
propostaFix: (valor) => ` suggested fix ${valor}`,
|
|
378
|
+
propostaIrreversivel: (valor) => ` irreversible ${valor}`,
|
|
379
|
+
propostaEstimativa: (valor) => ` estimate ${valor}`,
|
|
380
|
+
origem: (rodada, produto, estagio, postura) => `Source: run ${rodada}, product ${produto}, stage ${estagio}, stance ${postura}.`,
|
|
381
|
+
propostaNaoDecisao: 'The fix above is the auditor\'s proposal, not a decision: validate it in GOAL before implementing.',
|
|
382
|
+
},
|
|
383
|
+
naoEncontrada: (id, dir) => `thread "${id}" not found in ${dir}`,
|
|
384
|
+
usoStatus: 'usage: ork thread status <thread-id>',
|
|
385
|
+
slugInvalido: (slug, regex) => `invalid slug: "${slug}" (canonical regex: ${regex})`,
|
|
386
|
+
roadmapItemInvalido: (item) => `roadmap.item: "${item}" is not a roadmap item (expected RM-NNN)`,
|
|
387
|
+
roadmapItemInexistente: (id) => `roadmap.item: ${id} does not exist in \`docs/roadmap\``,
|
|
388
|
+
usoPedido: 'usage: --pedido "<builder request text>"',
|
|
389
|
+
varianteIncompativel: (variante, tag, fases) => `the ${variante} cycle redraws the blocks, and mode ${tag} has a single block ` +
|
|
390
|
+
`(${fases}): create the thread without \`--ciclo\` or pick a full-cycle mode`,
|
|
391
|
+
modoNaoPermitido: (tag, permitidos) => `mode ${tag} is not in \`conduction.allowed_modes\` (allowed: ${permitidos})`,
|
|
392
|
+
nomeSemAssunto: (nome) => `name "${nome}" does not produce a valid subject (expected [a-z0-9])`,
|
|
393
|
+
cicloExigeBranch: (variante) => `the ${variante} cycle starts from a branch that already exists: pass \`--branch <branch>\``,
|
|
394
|
+
branchInexistente: (branch) => `branch "${branch}" does not exist in this repository`,
|
|
395
|
+
branchSemCiclo: '`--branch` only applies with `--ciclo merge-branch`',
|
|
396
|
+
ocupadaPelaChave: (pasta, alvo) => `${pasta ? 'the folder' : 'the branch'} ${alvo} already exists, and \`worktree.por_thread\` ` +
|
|
397
|
+
'asks for the thread worktree: remove it or create the thread with `--sem-worktree`',
|
|
398
|
+
usoComMotivo: (motivo) => `usage: ${motivo}`,
|
|
399
|
+
pedidoVazio: 'thread.pedido.invalido: the request is empty',
|
|
400
|
+
pedidoGrande: (bytes, teto) => `thread.pedido.invalido: the request has ${bytes} bytes, above the ${teto}-byte limit`,
|
|
401
|
+
pedidoGuardado: (gravada, caminho, sha, bytes) => ` request: ${gravada ? 'saved to' : 'would be saved to'} ${caminho} (sha256 ${sha}, ` +
|
|
402
|
+
`${bytes} bytes); \`ork prompt render\` uses it when \`--pedido\` is missing`,
|
|
403
|
+
nenhumaSessao: ' no session dispatched yet',
|
|
404
|
+
sessoesDespachadas: ' dispatched sessions (real state checked in `ork sessions`)',
|
|
405
|
+
sessao: (verificada, canal) => `verified in the runtime: ${verificada ? 'yes' : 'no'} channel: ${canal}`,
|
|
406
|
+
pausasDoModo: (n) => ` planned human pauses in this mode: ${n}`,
|
|
407
|
+
colunasDaLista: ['ID', 'SLUG', 'MODE', 'PHASE', 'STATUS', 'PAUSES', 'SESSIONS'],
|
|
408
|
+
listaVazia: (todas, modo) => `${todas ? 'No thread in `.orkastery/threads`.'
|
|
409
|
+
: 'No open or paused thread (use `--todas` to see the closed ones).'} Create one with \`ork thread new "<name>" --modo ${modo}\`.`,
|
|
410
|
+
fechadasOmitidas: (n) => ` ${n} closed thread(s) hidden. Use \`--todas\` to see all.`,
|
|
411
|
+
informeOId: 'pass the thread id',
|
|
412
|
+
sha256Invalido: 'invalid sha256',
|
|
413
|
+
artefatoForaDoProjeto: 'the artifact must be inside the project',
|
|
414
|
+
artefatoNaoRegular: 'the artifact must be a regular file',
|
|
415
|
+
artefatoDiverge: 'the artifact hash does not match',
|
|
416
|
+
artefatoExige: 'an artifact needs an open thread and an explicit author',
|
|
417
|
+
motivoDoFechamento: 'the reason must be `orfa`, `engano` or `superada`',
|
|
418
|
+
fechamentoExige: 'closing needs an author and a justification',
|
|
419
|
+
encerradaPorOutroMotivo: 'the thread was already closed for another reason',
|
|
420
|
+
entregueExigeMaster: 'a delivered or scored thread needs MASTER, not an administrative close',
|
|
421
|
+
};
|