@orkastery/cli 0.5.6 → 0.6.1
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 +37 -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/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-pista/hooks/ci.ts +9 -5
- 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/hooks/vigia.ts +1 -1
- 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 +2 -2
- package/adapters/openclaw/README.md +81 -9
- 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/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 +123 -9
- package/dist/adapters/codex-controller-worker.js +12 -5
- package/dist/adapters/codex-events.js +16 -4
- package/dist/adapters/codex.js +3 -1
- package/dist/adapters/grok-events.js +227 -0
- package/dist/adapters/grok-mcp-servidor.js +612 -0
- package/dist/adapters/grok-mcp.js +178 -0
- package/dist/adapters/grok.js +686 -0
- package/dist/agendador-cpu.js +92 -0
- package/dist/atualizar-branch.js +245 -0
- package/dist/auditoria.js +13 -11
- package/dist/auditrun.js +51 -46
- package/dist/autorizacao-duravel.js +327 -0
- package/dist/board.js +94 -40
- package/dist/branch-de-estado.js +23 -10
- package/dist/busca-semantica.js +7 -5
- package/dist/catalogo.js +2 -1
- package/dist/changelog-reconciliacao.js +290 -0
- package/dist/check-agil.js +528 -0
- package/dist/check-modo.js +41 -0
- package/dist/check-paralelo.js +238 -0
- package/dist/ci.js +248 -45
- package/dist/ciclos.js +8 -6
- package/dist/claim-lint.js +12 -8
- package/dist/claims-conferir.js +47 -39
- package/dist/claims.js +10 -9
- package/dist/company-brain-client.js +10 -3
- package/dist/company-brain-migration.js +11 -5
- package/dist/conducao-batida.js +759 -0
- package/dist/conducao-sentinela.js +25 -8
- package/dist/conducao.js +89 -29
- package/dist/conhecimento-consulta.js +270 -0
- package/dist/conhecimento.js +111 -87
- 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 +89 -89
- package/dist/doctor-forja.js +343 -0
- package/dist/doctor-pulse-cron.js +113 -1
- package/dist/doctor.js +164 -6
- package/dist/dsn-da-memoria.js +417 -0
- package/dist/entrega-por-mod.js +503 -0
- package/dist/entrega-pr.js +154 -54
- package/dist/esgotamentos.js +13 -11
- package/dist/estado-thread.js +21 -18
- package/dist/evalrunner.js +35 -32
- package/dist/fabrica-batida.js +34 -21
- package/dist/fabrica-estado.js +33 -21
- package/dist/fix.js +21 -19
- 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 +123 -80
- package/dist/handoff.js +23 -13
- 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 +51 -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 +44 -1
- package/dist/hitl-sessions.js +62 -9
- package/dist/hitl-texto-livre.js +7 -4
- package/dist/hitl.js +34 -31
- package/dist/horario.js +20 -1
- package/dist/hosts.js +104 -134
- package/dist/index.js +864 -554
- package/dist/indice-vetorial.js +14 -12
- package/dist/init.js +11 -2
- package/dist/integracoes-locais.js +4 -0
- package/dist/intelligence-graph-cli.js +123 -69
- package/dist/intelligence-graph-query.js +37 -22
- package/dist/leases.js +19 -18
- package/dist/ledger-stats.js +17 -16
- package/dist/ledger.js +31 -1
- package/dist/licoes.js +12 -11
- package/dist/locale-accounts.js +228 -0
- package/dist/locale-adapter.js +291 -0
- package/dist/locale-ajuda.js +86 -10
- 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 +288 -0
- package/dist/locale-gerados.js +5 -0
- package/dist/locale-grafo.js +129 -0
- package/dist/locale-master.js +83 -0
- package/dist/locale-network.js +524 -0
- package/dist/locale-operacao-restante.js +931 -0
- package/dist/locale-projetos.js +100 -0
- package/dist/locale-prompts.js +194 -0
- package/dist/locale-pulse.js +140 -2
- package/dist/locale-reservas.js +87 -0
- package/dist/locale-retry.js +183 -6
- package/dist/locale-security-scan.js +69 -0
- package/dist/locale-setup.js +192 -0
- package/dist/locale-ship.js +177 -66
- package/dist/locale-thread.js +149 -5
- package/dist/locale-verify.js +80 -4
- package/dist/locale-worktree.js +246 -0
- package/dist/locale.js +553 -9
- package/dist/maestro-runtime.js +22 -3
- package/dist/manifest.js +293 -12
- package/dist/maquina-ociosa.js +211 -0
- package/dist/maquina.js +10 -5
- package/dist/master-nota-local.js +200 -0
- package/dist/master-nota.js +10 -2
- package/dist/master.js +118 -41
- package/dist/mcp-conhecimento.js +52 -0
- package/dist/mcp-experiencia.js +26 -5
- package/dist/mcp-install.js +90 -15
- package/dist/mcp-noctum.js +101 -0
- package/dist/mcp-server.js +116 -22
- package/dist/mcp-ship-transporte.js +977 -0
- package/dist/mcp-ship.js +68 -24
- package/dist/mcp-transportes.js +17 -0
- package/dist/memoria.js +63 -58
- package/dist/merge-da-entrega.js +85 -0
- package/dist/modos-migracao.js +8 -6
- package/dist/modos.js +17 -18
- package/dist/network-roadmap.js +94 -54
- package/dist/noctum-aceite.js +929 -0
- package/dist/noctum-arco.js +540 -33
- package/dist/noctum-capacidade.js +3 -3
- package/dist/noctum-changelog.js +399 -0
- package/dist/noctum-cli.js +539 -0
- package/dist/noctum-coordenacao.js +1225 -0
- package/dist/noctum-entrega.js +1217 -0
- package/dist/noctum-envelope.js +253 -17
- package/dist/noctum-execucao.js +100 -24
- package/dist/noctum-fechamento.js +416 -0
- package/dist/noctum-fila.js +49 -10
- package/dist/noctum-guarda.js +333 -0
- package/dist/noctum-integracao.js +507 -0
- package/dist/noctum-maquinas.js +387 -0
- package/dist/noctum-medicao.js +450 -0
- package/dist/noctum-modo.js +390 -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 +594 -0
- package/dist/noctum-rede.js +102 -0
- package/dist/noctum-registro.js +215 -0
- package/dist/noctum-relatorio.js +861 -0
- package/dist/noctum-resposta.js +207 -0
- package/dist/noctum-retomada-rede.js +71 -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 +679 -0
- package/dist/ocupacao.js +3 -1
- package/dist/onboarding.js +16 -5
- package/dist/orkmind.js +39 -23
- package/dist/orquestracao.js +31 -35
- package/dist/parado-no-condutor.js +160 -139
- package/dist/phase.js +96 -42
- package/dist/policies.js +33 -0
- package/dist/postura-local.js +11 -6
- package/dist/preflight.js +2 -1
- package/dist/procedencia.js +9 -14
- package/dist/projeto-alvo.js +59 -20
- package/dist/prompts.js +136 -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 +143 -27
- package/dist/pulse-resposta.js +368 -4
- package/dist/pulse.js +136 -3
- package/dist/ratelimit.js +13 -4
- package/dist/recall.js +14 -13
- package/dist/rede-adesao.js +13 -8
- package/dist/rede-forja.js +108 -24
- package/dist/rede-status.js +63 -45
- package/dist/rede.js +86 -46
- package/dist/retomada-checkpoint.js +101 -0
- package/dist/retry.js +326 -78
- package/dist/roadmap-reservas.js +32 -32
- package/dist/runtime-ambiente.js +5 -0
- package/dist/runtime-context.js +279 -85
- package/dist/runtime-escada.js +429 -0
- package/dist/runtime-profiles.js +130 -63
- package/dist/runtimes.js +42 -5
- package/dist/saida-segura.js +3 -2
- package/dist/security-scan/agil.js +366 -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 +196 -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 +19 -2
- package/dist/session-watcher-claude.js +74 -19
- package/dist/session-watcher-grok.js +425 -0
- package/dist/session-watcher.js +174 -13
- package/dist/sessoes-contas.js +42 -5
- package/dist/sessoes-inventario.js +1 -1
- package/dist/sessoes.js +25 -23
- package/dist/setup.js +67 -66
- package/dist/ship-publicar.js +263 -92
- package/dist/ship.js +160 -17
- package/dist/superficie.js +14 -11
- package/dist/thread-close.js +9 -9
- package/dist/thread.js +121 -18
- 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 +5 -2
- package/dist/varredura-acoes.js +500 -0
- package/dist/verify.js +491 -32
- package/dist/worktree-local.js +12 -10
- package/dist/worktree.js +81 -85
- 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 +10 -5
- package/references/security-checklist.md +3 -3
- 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,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orkastery-bootstrap
|
|
3
|
+
description: "Recognizes the exact phrase orkastery maestro and conducts Maestro/Builder requests and resumptions: queries the overview through ork and presents progress, decisions and delivery in the conversation. In an already dispatched phase session, resume that phase without opening another orchestration."
|
|
4
|
+
bucket: core
|
|
5
|
+
roteia: "ork modos | ork thread new | ork thread status | ork phase list | ork pulse"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Orkastery Bootstrap
|
|
10
|
+
|
|
11
|
+
## Role in the conversation
|
|
12
|
+
|
|
13
|
+
A thin router for the conversation. The executable methodology lives in the `ork` core.
|
|
14
|
+
|
|
15
|
+
The owner brings goals and decisions; the agent operates `ork` and conducts the next authorized step.
|
|
16
|
+
A reply with a list of commands for the owner to run does not complete a work request.
|
|
17
|
+
Methodology, modes, gates and verification stay in the core. This skill translates intent and presents results; an adapter that implements the demand in the host breaks that separation.
|
|
18
|
+
|
|
19
|
+
Distinguish the context before acting:
|
|
20
|
+
|
|
21
|
+
- **Conductor session:** receives the owner's request, identifies or opens the thread, dispatches through `ork` and tracks the result; never writes product code in place of the dispatched session.
|
|
22
|
+
- **Already dispatched phase session:** has received the thread, phase, prompt and worktree from `ork`.
|
|
23
|
+
Work within that scope through the phase skill. Do not open another thread or redispatch your own phase to do the work already assigned to you.
|
|
24
|
+
- 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.
|
|
25
|
+
|
|
26
|
+
## Start or resume
|
|
27
|
+
|
|
28
|
+
When the message is **`orkastery maestro`**, in a clean session, discover `ork_maestro`
|
|
29
|
+
in the host's real namespace and query the project pinned by the installation. The read-only
|
|
30
|
+
equivalent in the terminal is `ork maestro --json`; the conversational phrase is not a shell command.
|
|
31
|
+
The query does not create a demand, thread, session or approval. A missing project returns
|
|
32
|
+
`maestro.project.missing`; an ambiguous one returns `maestro.project.ambiguous`: present the
|
|
33
|
+
allowed candidates and obtain the selection, without scanning home or picking the first one.
|
|
34
|
+
If you already received a phase/thread/WT, continue that block; the phrase does not open another orchestration. The project of each query is explicit (RM-052): if the owner named one, pass it (`projeto` in the tool, `--projeto <nome>` in the CLI) and read "Projeto consultado" (project queried) and "Não lido" (not read) before answering: the board and the overview do not read the roadmap, and zero threads never means an empty roadmap. With no project named, offer the network overview (RM-054): `ork_network_roadmap` in the host (in MCP, the pinned project on all machines) or `ork network roadmap` in the CLI (all known projects), with sources, freshness and gaps, relayed as it comes. The roadmap status comes from this same source: a gap and "Não consultado" (not queried) never become an empty roadmap or "no machine published".
|
|
35
|
+
|
|
36
|
+
Present the overview with sources, gaps and next actions: demands, threads, sessions,
|
|
37
|
+
blockers, leases, retries, HITL, SHIP and MASTER. Empty differs from unavailable;
|
|
38
|
+
an unknown native state does not prove a session ended. Honor `coverage.nextOffset`
|
|
39
|
+
for omitted details. A snapshot is a read, not an authorization; an action uses the existing
|
|
40
|
+
typed operation, revalidates preconditions and has a readback. Conflict/stale requires a new read.
|
|
41
|
+
|
|
42
|
+
**Top priority: HITL usability.** In the conversation itself, present short bullets,
|
|
43
|
+
one grounded recommendation and options with clear labels. Keep UUIDs internal and
|
|
44
|
+
preserve the literal answer, free text and cancellation. Only offer a channel proven
|
|
45
|
+
available for that request/connection. Telegram is optional; lack of native ingress
|
|
46
|
+
in the chosen channel is an explicit pending item, without faking approval or imposing a migration.
|
|
47
|
+
Same-harness requires proven independent sessions; the executor does not review itself.
|
|
48
|
+
|
|
49
|
+
Use the manifest, the request and the thread state. If the owner gave a thread/roadmap, resume that work; only ask which thread when the ambiguity prevents a safe choice.
|
|
50
|
+
Do not repeat onboarding, decisions or tasks that are already recorded.
|
|
51
|
+
|
|
52
|
+
Prefer MCP in the project pinned by the server, with no other root/cwd. In Claude with the `orkastery` server, use the full exposed names, such as `mcp__orkastery__ork_thread_status`; in `ToolSearch`, select that full name, never `select:ork_thread_status`. In other hosts, follow the namespace actually discovered.
|
|
53
|
+
|
|
54
|
+
| Action | MCP tool | CLI when the tool is not available |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| State/documents/claims/autonomous decision | `ork_thread_status`, `ork_phase_list`, `ork_artifact_read/write`, `ork_claims_list`, `ork_claim_add`, `ork_decision_record` | `ork thread status <thread>`, `ork phase list <thread>`, `ork claims`, `ork decisao registrar <thread>` |
|
|
57
|
+
| New demand | `ork_thread_new(nome, modo)` | `ork thread new "<nome>" --mode <modo> --worktree auto` |
|
|
58
|
+
| Dispatch | `ork_phase_run(threadId, fase, prompt, runtime?, model?, effort?, dryRun?)` | `ork phase run <thread> GOAL --prompt "<pedido>"` |
|
|
59
|
+
| Native progress | `ork_observe(threadId)` | `ork thread status <thread>` |
|
|
60
|
+
| Graph context (only with `grafo.mcp: true`) | `ork_grafo_contexto(threadId, tetoBytes?)`; go deeper with `ork_grafo_vizinhos`, `ork_grafo_chamadores`, `ork_grafo_importadores`, `ork_grafo_caminho` | `ork grafo contexto <thread> --json` |
|
|
61
|
+
| Pending item/decision | `ork_hitl_pending`, `ork_request_decision(threadId, pedidoId)` | Check the supported ingress; do not fabricate an answer. |
|
|
62
|
+
|
|
63
|
+
Prefer `ork_git_commit` (current HEAD, paths with claims), `ork_verify` and `ork_ship` (real source/destination HEADs) to record, verify and deliver. Authoring/commit is not SHIP; an incomplete return requires reconciliation before repeating. For new demands, use `ork modos --do-pedido "<pedido do dono>"` and `ork_preflight({modo})` (CLI: `ork doctor --modo <modo>`). The per-block probe does not prove authentication, gates or delivery.
|
|
64
|
+
Without MCP and with mutation of `.git` denied by the sandbox, report that the native transport installation is pending; do not repeat the denied command or widen the sandbox.
|
|
65
|
+
|
|
66
|
+
The mode of an existing thread is the one recorded in it. Preserve authorizations in the scope where they apply; do not ask for routine confirmation for each task. For a new demand, the core resolves the #TAG, `conduction.default_mode` and `allowed_modes`. Do not redo that parse in the host. A real preflight block prevents the dependent dispatch and must be explained.
|
|
67
|
+
|
|
68
|
+
Before the first dispatch, check `ork setup <modo>` and the phase block: preserve its runtime/model/effort. The conversation host does not impose the runtime of the phases.
|
|
69
|
+
If the owner asked for another runtime, use `--runtime R --model M --effort E` with a coherent, already authorized trio; never inherit a model from another runtime or change the project defaults for a one-off override.
|
|
70
|
+
If the model choice for that runtime is missing, obtain only that information. Edit `ork setup <modo> --bloco N` only when you intend to change the persistent configuration.
|
|
71
|
+
Check the trio/command with `ork phase run ... --dry-run` on the first dispatch or after a relevant configuration change; do not repeat that rehearsal at every status or step with no change.
|
|
72
|
+
Dry-run does not start a model, but it may write the prompt/events. Check the effective trio in the result/ledger; doctor does not prove the model. The `worktree` child profile requires opt-in at installation: preserve what is configured, without enabling it through toolargs or to bypass a block.
|
|
73
|
+
|
|
74
|
+
## Conduction during the work
|
|
75
|
+
|
|
76
|
+
The mode loosens the pause, NEVER the verification. Claims, verify, policies and typed gates run identically in `#Classic` and in `#Auto`; the mode decides whether the verdict waits for the human.
|
|
77
|
+
|
|
78
|
+
After an action, use the core's result to execute the next authorized step.
|
|
79
|
+
In #Auto/#Maestro, do not end a block just by offering to continue while there is still work
|
|
80
|
+
executable within the mode. A pause required by the mode or a real blocker stays visible.
|
|
81
|
+
|
|
82
|
+
For status, start from the known thread. With an existing dispatch, query `ork_observe` for the native state, progress and current blocker.
|
|
83
|
+
`phase list` is history: do not wait for completion with long loops, sleeps or regex over its output. A native wait requires a real decision/blocker context.
|
|
84
|
+
Use `ork_hitl_pending` or `ork pulse --json` for the attention queue and `ork board plan` for the work order. Avoid a global or repeated inventory of processes/worktrees.
|
|
85
|
+
Use `ork_git_status`: `source.head` goes into `commit.expectedHead`; query again after the commit for `ship.expectedSource=source.head` and `expectedDestination=destination.head`. Do not derive SHAs from the historical base; the absence of a message does not prove the session died.
|
|
86
|
+
|
|
87
|
+
The blocks and pauses shown by `thread status` describe the mode, not gates already open.
|
|
88
|
+
Only say "waiting for you" when the state and the last result in `phase list` support
|
|
89
|
+
a current human pending item, identified by a gate, request or event of the thread/session.
|
|
90
|
+
A new thread, with no phase executed and no open request, is not yet waiting for a verdict.
|
|
91
|
+
If evidence of the pending item is missing, state the uncertainty and check the source; do not invent the wait.
|
|
92
|
+
|
|
93
|
+
Present the result first: what has already been proven, what is happening, who needs to act and the next step. In long-running work, report a relevant change, a blocker or a milestone. Do not promise notifications or background execution that the host cannot sustain.
|
|
94
|
+
|
|
95
|
+
## Decisions in the session itself
|
|
96
|
+
|
|
97
|
+
When there is an owner decision, show the concrete question, the context and the consequences; offer options when they help and identify the thread and the request/gate.
|
|
98
|
+
If a real pause/escalation allows it and a request is missing, use `ork_gate_request(threadId, motivo?)`; never create a request for a status query. Use `ork_request_decision(threadId, pedidoId)` to present the native dialog. The answer comes through the host, never as an answer argument or a human identity invented by the model.
|
|
99
|
+
Check the core's result and proceed once. Without the tool, use only a supported ingress; do not fabricate another host's envelope.
|
|
100
|
+
Do not turn a native permission into a gate approval or apply an answer to another request.
|
|
101
|
+
|
|
102
|
+
When the mode allows an autonomous decision, record who decided, the evidence and the reason through the core.
|
|
103
|
+
When it requires a human decision, use only the answer actually received; do not fabricate an approval or a score. Authorization for one task is not unrestricted authorization for other actions.
|
|
104
|
+
|
|
105
|
+
## Continuity and delivery
|
|
106
|
+
|
|
107
|
+
The canonical state lives in `.orkastery/threads/<id>/`. Before switching sessions or when you hit a blocker, leave a checkpoint with the goal, decisions, last result, artifacts and next step. Resume from the checkpoint and check the current state before dispatching again.
|
|
108
|
+
|
|
109
|
+
In the dispatch request, describe the goal and the scope of all phases of the authorized block; the requested phase is the block's entry. In Auto, do not ask to stop after GOAL: the block runs GOAL..MASTER, with the applicable verifications and gates.
|
|
110
|
+
|
|
111
|
+
When `ork_observe` shows `turno.estado=encerrado`, reconcile the last official result and the block's artifacts. This indicates an ended turn, not `phase_result`, a completed phase or a delivery. The native fields `state` and `status` may diverge; preserve the divergence instead of interpreting `working` in isolation. Later activity invalidates the ended-turn evidence. Without a sufficient result, record the pending point and use only the continuation supported by the core, without duplicating the dispatch or fabricating a completion. Do not use long sleeps or repeated polling to turn silence into proof of life, death or progress.
|
|
112
|
+
|
|
113
|
+
Dispatch is not completion. Tests, CHECK, SHIP and MASTER are different proofs. Deliver changes, validation, effective publication and pending items, with links useful to the owner. SHIP uses `ork ship`; a delivery without a human score is accepted by omission with the ledger-derived index (`ork master`), and the human score overrides it. A delivery without a MASTER log did not happen; publication and ratification remain distinct.
|
|
114
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
115
|
+
Dispatch, silence or Auto mode never replace a result, `verify` and receipts.
|
|
116
|
+
## Bandeiras vermelhas (Red flags)
|
|
117
|
+
An adapter that implements the demand, status without a source or publication without a gate break the separation.
|
|
118
|
+
## Verification before answering
|
|
119
|
+
The owner understands the result and the next action; state and evidence support the answer. See `DoD 17` and `DoD 20`.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: thread-state
|
|
3
|
+
description: "The thread's state on disk: thread.json, ledger.jsonl, claims.jsonl, hashed prompts and leases. Routes to ork thread status, ork phase list and ork board; no state is read from conversation memory."
|
|
4
|
+
bucket: core
|
|
5
|
+
roteia: "ork thread status | ork phase list | ork board"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Thread State
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router over the state that `ork` keeps on disk. It does not invent formats, does not edit
|
|
14
|
+
state files by hand and does not hold rules: it says which command reads the truth and calls that
|
|
15
|
+
command. **Editing `thread.json` with a text editor is corrupting state, not moving work forward.**
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
- When resuming a thread that another session opened.
|
|
20
|
+
- Before any phase, to know where the thread stands in the cycle.
|
|
21
|
+
- When two threads seem to be fighting over the same file or the same tree.
|
|
22
|
+
|
|
23
|
+
## Where the state lives
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
.orkastery/
|
|
27
|
+
|- threads/<thread-id>/
|
|
28
|
+
| |- thread.json estado da thread: modo, blocos, base carimbada, sessoes
|
|
29
|
+
| |- ledger.jsonl append-only: todo evento, com quem decidiu e a evidencia
|
|
30
|
+
| |- claims.jsonl alegacoes verificaveis e o comando que comprova cada uma
|
|
31
|
+
| |- prompts/ o prompt exato de cada sessao, nomeado pelo sha256
|
|
32
|
+
| |- POSTMORTEM.json fechamento tipado da thread
|
|
33
|
+
| `- master-log.json o contrato congelado ork.master-log/v1, com o score humano
|
|
34
|
+
`- leases/ leases por familia e a fila de espera
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## How to route
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
ork thread list # as threads NAO fechadas (aberta e pausada)
|
|
41
|
+
ork thread list --todas # todas, inclusive as fechadas
|
|
42
|
+
ork thread list --json # a mesma listagem como JSON
|
|
43
|
+
ork thread status <thread> # estado da thread, cruzado com o runtime real
|
|
44
|
+
ork phase list <thread> # o ledger inteiro, evento a evento
|
|
45
|
+
ork claims list <thread> # as alegacoes e o estado de cada uma
|
|
46
|
+
ork lease list # leases, familias e as filas
|
|
47
|
+
ork board # todas as threads em uma visao
|
|
48
|
+
ork memory status # regime de memoria efetivo (files ou orkmind)
|
|
49
|
+
ork recall <thread> --fase <FASE> # resolve os ponteiros do handoff DESTE momento
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## What the core guarantees
|
|
53
|
+
|
|
54
|
+
- **Append-only.** The `ledger.jsonl` only grows. A correction goes in as a new event, never as a rewritten
|
|
55
|
+
line: edited history stops being history.
|
|
56
|
+
- **The prompt is an artifact, not a recollection.** Each session writes the exact prompt with `sha256` in the name, and
|
|
57
|
+
the same hash goes to the ledger. That is what makes it possible to prove what was requested.
|
|
58
|
+
- **The base is stamped at creation.** `thread.json` keeps the branch and the commit the thread
|
|
59
|
+
started from; it is against that stamp that `ork worktree audit` detects that the base has moved.
|
|
60
|
+
- **The real state beats the recorded state.** `ork thread status` cross-checks the recorded sessions against the
|
|
61
|
+
runtime; a session that `thread.json` says is alive and the runtime does not know shows up as a divergence.
|
|
62
|
+
- **Memory is optional and declared.** The handoff carries the regime (`files` or `orkmind`) and the
|
|
63
|
+
pointers say WHEN they must be resolved. With OrkMind down, the same pointer resolves
|
|
64
|
+
through `path#ancora`, and no cycle stops because of it.
|
|
65
|
+
|
|
66
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
67
|
+
|
|
68
|
+
| Excuse | Reality |
|
|
69
|
+
|---|---|
|
|
70
|
+
| "The conversation still has all the context, I don't need to read the disk" | Conversations end and context windows rotate. Unrecorded work is work that cannot be resumed or audited. |
|
|
71
|
+
| "It's faster to edit thread.json by hand" | Editing state by hand corrupts state. Every field has a command that writes it, and the command also records it in the ledger. |
|
|
72
|
+
| "I'll fix the part of the ledger that went wrong" | The ledger is append-only. A correction is a new event. Edited history is no longer history, it is narrative. |
|
|
73
|
+
| "I'll load the whole handoff into the new session" | The handoff separates inline from pointer on purpose. `ork recall <thread> --fase <FASE>` brings only what belongs to that moment; the rest stays addressed, not lost. |
|
|
74
|
+
| "Two threads on the same file, but they don't intersect" | The lease decides that, not intuition. `ork lease list` shows region collisions and the queue. |
|
|
75
|
+
|
|
76
|
+
## Bandeiras vermelhas (Red flags)
|
|
77
|
+
|
|
78
|
+
- A thread directory without `thread.json` or without `ledger.jsonl`.
|
|
79
|
+
- A dispatched prompt with no matching file in `prompts/` with the sha in its name.
|
|
80
|
+
- A session recorded as alive that the runtime does not recognize.
|
|
81
|
+
- An expired lease with the thread still writing in the region.
|
|
82
|
+
- A manifest asking for `memory.mode: orkmind` with `ork memory status` reporting the effective regime
|
|
83
|
+
`files`: semantic memory is not in effect, and the typed reason says why.
|
|
84
|
+
|
|
85
|
+
## Verification before leaving the skill
|
|
86
|
+
|
|
87
|
+
Thread identified by its id, state read by command and not from memory, current phase known, and
|
|
88
|
+
any divergence between disk and runtime said out loud. See `DoD 4`.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: decision-triage
|
|
3
|
+
description: "The delegation discipline: classifies each decision as class 1 (the human decides), 2 (public contract, requires ratification) or 3 (delegated, recorded), and raises a real tradeoff with options and one recommendation. Routes to ork gate request."
|
|
4
|
+
bucket: governance
|
|
5
|
+
roteia: "ork gate request <thread>"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Decision Triage
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router for the delegation discipline. It does not decide for the human and does not hide a decision
|
|
14
|
+
behind "technical detail": it classifies, records what is delegated and raises what belongs to the human.
|
|
15
|
+
**A delegated decision without a record is a lost decision.**
|
|
16
|
+
|
|
17
|
+
## The three classes
|
|
18
|
+
|
|
19
|
+
| Class | Who decides | What it requires |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| 1 | The human, always | Product tradeoff, business risk, priority, scope, money |
|
|
22
|
+
| 2 | The human, with recorded ratification | Change to a versioned public contract: schema, event types, state layout, interface |
|
|
23
|
+
| 3 | Delegated to the agent | Internal choice with no observable effect outside the module, recorded in the ledger when relevant |
|
|
24
|
+
|
|
25
|
+
## How to route
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
ork gate request <thread> # abre o pedido; o humano responde pelo canal autenticado
|
|
29
|
+
ork phase list <thread> # a auditoria de delegacao le daqui
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Conduct
|
|
33
|
+
|
|
34
|
+
1. **Classify before acting**, not after having acted.
|
|
35
|
+
2. **Raise the tradeoff with options and exactly one recommendation.** Raising without a recommendation pushes the
|
|
36
|
+
work back to the human; raising without options asks for a signature, not a decision.
|
|
37
|
+
3. **Record the relevant class 3.** The qualifier carries weight: formatting and internal names
|
|
38
|
+
are also class 3, and requiring an event for each of them is undue escalation.
|
|
39
|
+
4. **Audit both sides with equal weight.** Under-classifying (treating a product decision as a
|
|
40
|
+
technical detail) and escalating unduly (asking for sign-off on a triviality) are defects of the same
|
|
41
|
+
size, and the CHECK audit hunts both.
|
|
42
|
+
5. **A closed decision is locked.** Reopening is a new decision, with its own record, never a silent edit.
|
|
43
|
+
|
|
44
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
45
|
+
|
|
46
|
+
| Excuse | Reality |
|
|
47
|
+
|---|---|
|
|
48
|
+
| "This is a technical detail, I'll decide on my own" | If it changes what the user sees, what the product promises or what costs money, it is class 1. Under-classifying is the polite way of deciding for the human. |
|
|
49
|
+
| "I'll ask about everything, that way nobody complains" | Undue escalation is a defect of equal weight. Whoever asks about everything hands the work back and does away with delegation. |
|
|
50
|
+
| "I'll raise the question and let the human choose" | Without options and without a recommendation, that is passing the problem along. Bring the map and say which way to go. |
|
|
51
|
+
| "I'll change the schema, it is compatible in practice" | A versioned public contract is class 2: it requires recorded ratification before the merge, even when it looks compatible. |
|
|
52
|
+
| "The decision changed, I'll update the old text" | A closed decision is locked. Reopening is a new decision with a record; editing the old one erases the reason for the first. |
|
|
53
|
+
|
|
54
|
+
## Bandeiras vermelhas (Red flags)
|
|
55
|
+
|
|
56
|
+
- A public contract change in the diff with no ratification gate in the ledger.
|
|
57
|
+
- A series of product decisions showing up only in the phase's final summary.
|
|
58
|
+
- A question to the human about a variable name while the scope changed without notice.
|
|
59
|
+
- A decision recorded in two places with different wording.
|
|
60
|
+
|
|
61
|
+
## Verification before leaving triage
|
|
62
|
+
|
|
63
|
+
Each decision with an assigned class, those of class 1 and 2 raised with options and one recommendation, the relevant
|
|
64
|
+
class 3 ones recorded in the ledger, and no closed decision reopened in silence. See
|
|
65
|
+
`DoD 5`, `DoD 12` and `DoD 20`.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: narrative-guardian
|
|
3
|
+
description: "Canon audit: checks that every public artifact of the product says the same thing the code does, with no number without a source, no promise of a nonexistent capability and no invented metric. Runs before any publication."
|
|
4
|
+
bucket: governance
|
|
5
|
+
roteia: "ork verify <thread> | ork phase list <thread>"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Narrative Guardian
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router for the canon audit. It compares what the public artifacts state with what
|
|
14
|
+
the code and the ledger prove. **A number without a source does not go into a public document**, and a capability that
|
|
15
|
+
does not exist does not become a promise in a README.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
- Before publishing a README, product doc, changelog, post or marketing page.
|
|
20
|
+
- At the end of every thread that changes outward-facing documentation.
|
|
21
|
+
- Whenever an artifact cites a metric, time, count or comparison.
|
|
22
|
+
|
|
23
|
+
## How to route
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
ork verify <thread> # o que a maquina realmente prova hoje
|
|
27
|
+
ork phase list <thread> # a origem de cada evidencia citada
|
|
28
|
+
ork master --todas # o que ja foi fechado e pode ser citado como entregue
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## The canon rules
|
|
32
|
+
|
|
33
|
+
1. **Every published number has its source attached.** Command, output, date. A number from memory does not go in.
|
|
34
|
+
2. **A described capability is a capability that exists today.** A roadmap is written as a roadmap, in the declared
|
|
35
|
+
future, never in the present indicative.
|
|
36
|
+
3. **A time metric is clocked, not optimistically estimated.** The fifteen-minute promise of the
|
|
37
|
+
quickstart holds because the run was executed and the record was published with it.
|
|
38
|
+
4. **A gap is published as a gap.** `unavailable` with the reason, never zero, never omission.
|
|
39
|
+
5. **A divergence between doc and code is a defect of the doc**, and it becomes a task, not a footnote.
|
|
40
|
+
|
|
41
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
42
|
+
|
|
43
|
+
| Excuse | Reality |
|
|
44
|
+
|---|---|
|
|
45
|
+
| "About 15 minutes, it's roughly that" | A time metric is clocked. A number without a source becomes a promise the first user disproves. |
|
|
46
|
+
| "It will exist in the next version, I'll already write it in the present" | A described capability is a capability that exists today. A roadmap written as present is the lie that killed the original product. |
|
|
47
|
+
| "I'll leave the field empty, nobody will notice" | A gap is published as a gap. An empty field becomes zero on the next read, and zero is a data point. |
|
|
48
|
+
| "The doc is outdated, but the code is right" | A divergence between doc and code is a defect of the doc, with its own task. A wrong doc is the wrong product for whoever reads it. |
|
|
49
|
+
| "I compared with the competitor off the top of my head" | A published comparison needs a method and a date. Without that, it is advertising dressed up as data. |
|
|
50
|
+
| "The whole team knows this number is approximate" | Outside readers do not know. A published approximation declares that it is an approximation. |
|
|
51
|
+
| "I'll take out the `unavailable`, it looks ugly in the README" | What is ugly is the false number discovered later. Measurement honesty is part of the product, not a formatting detail. |
|
|
52
|
+
| "This is a marketing detail, not an engineering one" | The public artifact is product surface. The canon applies equally on both sides. |
|
|
53
|
+
|
|
54
|
+
## Bandeiras vermelhas (Red flags)
|
|
55
|
+
|
|
56
|
+
- A number in a public document with no command or date next to it.
|
|
57
|
+
- A present-tense verb for a roadmap feature.
|
|
58
|
+
- A benchmark cited without machine, regime and repetition.
|
|
59
|
+
- A metric field left blank instead of `unavailable`.
|
|
60
|
+
- A changelog citing a delivery without a matching MASTER log.
|
|
61
|
+
|
|
62
|
+
## Verification before publishing
|
|
63
|
+
|
|
64
|
+
Every number with a source, every capability checked against the code, every time clocked, every
|
|
65
|
+
gap declared, and no divergence between the artifact and what the ledger proves. See `TEST 12`,
|
|
66
|
+
`PERF 9` and `PERF 10`.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: roadmap-keeper
|
|
3
|
+
description: "Roadmap guardian: every demand is recorded before it becomes a thread, every auditor proposal becomes an item with a source, and nothing vanishes from scope without a recorded decision. Routes to ork board and ork thread new."
|
|
4
|
+
bucket: governance
|
|
5
|
+
roteia: "ork board | ork board plan | ork thread new"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Roadmap Keeper
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router between the demand and the thread. It does not prioritize in the human's place: it ensures that
|
|
14
|
+
every demand is written down before it becomes work, with a source, and that nothing leaves scope in
|
|
15
|
+
silence. **A demand that becomes a thread without being recorded is work with no owner and no history.**
|
|
16
|
+
|
|
17
|
+
## How to route
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ork board # o estado de todas as threads
|
|
21
|
+
ork board plan # quem avanca agora, quem espera e por que
|
|
22
|
+
ork thread new "<nome>" --mode <modo>
|
|
23
|
+
ork master # as entregas, com o indice derivado do ledger
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Conduct
|
|
27
|
+
|
|
28
|
+
1. **Record before opening.** The demand comes in with a title, a source and the problem it solves, and only
|
|
29
|
+
then becomes `ork thread new`.
|
|
30
|
+
2. **Always a source.** Builder request, auditor finding, lesson from a MASTER log: who asked stays
|
|
31
|
+
written down. An item without a source does not know why it exists or when to die.
|
|
32
|
+
3. **An auditor proposal comes in as a proposal**, never as an already applied correction. The auditor reads, the
|
|
33
|
+
roadmap decides.
|
|
34
|
+
4. **An item that leaves scope leaves with a recorded decision**, with who decided and why. Scope that
|
|
35
|
+
shrinks in silence is scope that reappears as a surprise.
|
|
36
|
+
5. **The machine's capacity limits the board.** `concurrency.max_parallel_threads` in the manifest is the
|
|
37
|
+
real ceiling; a roadmap that ignores the ceiling becomes a queue disguised as a plan.
|
|
38
|
+
|
|
39
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
40
|
+
|
|
41
|
+
| Excuse | Reality |
|
|
42
|
+
|---|---|
|
|
43
|
+
| "I'll open the thread now and record it later" | Recording later is recording the way memory tells it. The demand comes in written, with a source, before it becomes work. |
|
|
44
|
+
| "This item obviously left scope" | Obvious to whoever was in the conversation. Leaving scope is a recorded decision, or it becomes a surprise in the next delivery. |
|
|
45
|
+
| "The auditor found it, I'll fix it directly" | The auditor proposes, the roadmap decides. A correction applied directly by an auditor is a change with no owner and no gate. |
|
|
46
|
+
| "One more thread fits in parallel, it's small" | The ceiling is the manifest's, measured, not optimism's. Above it, threads compete for the tree and for human attention. |
|
|
47
|
+
| "This is obviously a priority, no need to even ask" | Priority is a class 1 decision, the human's. The roadmap organizes the choice; it does not make the choice. |
|
|
48
|
+
|
|
49
|
+
## Bandeiras vermelhas (Red flags)
|
|
50
|
+
|
|
51
|
+
- A thread opened without a matching roadmap item.
|
|
52
|
+
- An item without a written source.
|
|
53
|
+
- An auditor finding applied as a direct correction.
|
|
54
|
+
- Scope reduced with no record of who decided.
|
|
55
|
+
- Number of active threads above the manifest ceiling.
|
|
56
|
+
|
|
57
|
+
## Verification before leaving the skill
|
|
58
|
+
|
|
59
|
+
Demand recorded with a source, parallelism ceiling respected, auditor proposals treated as
|
|
60
|
+
proposals, and every scope change with a recorded decision. See `DoD 20` and `REVIEW 11`.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scope-check-capability-map
|
|
3
|
+
description: "Phase 0: before opening the thread, checks whether the demand fits what the product and the machine can do, and returns what is missing instead of starting work doomed to stop halfway."
|
|
4
|
+
bucket: governance
|
|
5
|
+
roteia: "ork_preflight | ork doctor --modo | ork board plan | ork thread new --dry-run"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Scope Check and Capability Map
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router for phase 0. It runs before GOAL and answers a single question: **does this demand fit
|
|
14
|
+
what exists today?** If it does not fit, it returns what is missing, by name, before any thread
|
|
15
|
+
consumes context window.
|
|
16
|
+
|
|
17
|
+
## How to route
|
|
18
|
+
|
|
19
|
+
First resolve the mode through the core. Prefer `ork_preflight({modo})` in the project's MCP;
|
|
20
|
+
without that tool, use the contextual CLI below. The result follows the canonical setup per block.
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
ork doctor --modo <modo> # preflight contextual do modo autorizado
|
|
24
|
+
ork board plan # capacidade ocupada e capacidade livre
|
|
25
|
+
ork thread new "<nome>" --mode <modo> --dry-run # ensaio: slug, modo, blocos, sem gravar
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Plain `ork doctor`, without a mode, is an optional broad diagnosis with a global inventory; it does not replace
|
|
29
|
+
the contextual preflight, nor should it compete with it as a mandatory dispatch route.
|
|
30
|
+
|
|
31
|
+
## The capability map
|
|
32
|
+
|
|
33
|
+
1. **Machine capability.** Check `prontoPrimeiroBloco` and the checks of the initial block; a relevant
|
|
34
|
+
failure blocks that dispatch. `prontoTodosBlocos` reports the dependencies of the future blocks:
|
|
35
|
+
announce those limitations without confusing them with an impediment to the initial block. The probe does not prove
|
|
36
|
+
authentication, accepted model, gates or delivery; the dispatch revalidates those contracts. VERIFY/SHIP
|
|
37
|
+
MCP also depend on the isolated Codex executor and on the delivery transport, even with a Claude phase.
|
|
38
|
+
2. **Parallelism capability.** Active threads against `concurrency.max_parallel_threads`, plus the
|
|
39
|
+
leases already taken in the region the demand will touch.
|
|
40
|
+
3. **Product capability.** What the demand asks for either exists in the product or is a new capability. If it is
|
|
41
|
+
new, that is said in the scope check and not discovered in GO.
|
|
42
|
+
4. **Decision capability.** Does the demand depend on a decision only the human makes? Then it is born
|
|
43
|
+
with the gate planned, not with a surprise halfway through.
|
|
44
|
+
|
|
45
|
+
## The return contract
|
|
46
|
+
|
|
47
|
+
When the demand does not fit, the return **names what is missing and what would unblock it**, in one line
|
|
48
|
+
each. Returning "can't be done" without what is missing is a refusal, not a scope check.
|
|
49
|
+
|
|
50
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
51
|
+
|
|
52
|
+
| Excuse | Reality |
|
|
53
|
+
|---|---|
|
|
54
|
+
| "I'll start and see what is missing along the way" | Discovering the gap in GO costs the whole thread. The scope check costs one command. |
|
|
55
|
+
| "I'll ignore any fail because I chose Auto" | A relevant failure in the initial block's preflight blocks the dispatch; Auto does not remove verification. A future block's dependency must be reported as future. |
|
|
56
|
+
| "One more thread fits, I can handle it" | The ones who have to handle it are the machine and the human who approves gates, and both have a measured ceiling in the manifest. |
|
|
57
|
+
| "The demand is vague, GOAL will clarify it" | GOAL clarifies the goal, not whether a capability exists. A demand that asks for what does not exist is sent back earlier, with what is missing written down. |
|
|
58
|
+
|
|
59
|
+
## Bandeiras vermelhas (Red flags)
|
|
60
|
+
|
|
61
|
+
- Dispatch started with `prontoPrimeiroBloco` false or a relevant failure of the initial block.
|
|
62
|
+
- A demand asking for a nonexistent capability without that being written down.
|
|
63
|
+
- A file region already under another thread's lease, with no queue planned.
|
|
64
|
+
- A return that does not say what would unblock the demand.
|
|
65
|
+
|
|
66
|
+
## Verification before opening the thread
|
|
67
|
+
|
|
68
|
+
Contextual preflight read per block, future dependencies explained, parallelism capability
|
|
69
|
+
checked, product capability confirmed or declared
|
|
70
|
+
absent, human gates planned, and a rehearsal with `--dry-run` showing slug, mode and blocks. See
|
|
71
|
+
`DoD 17`.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: thread-tracing
|
|
3
|
+
description: "Thread trace: reads the ledger, the sessions, the claims and the MASTER log to reconstruct what happened, who decided and with what evidence. Read-only, never writes to the state."
|
|
4
|
+
bucket: observability
|
|
5
|
+
roteia: "ork phase list | ork thread status | ork sessions | ork board"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Thread Tracing
|
|
10
|
+
|
|
11
|
+
## What this skill is
|
|
12
|
+
|
|
13
|
+
A thin router for reading. It reconstructs the history of a thread from what is recorded,
|
|
14
|
+
and **never writes to the state**: observability that alters what it observes stops being
|
|
15
|
+
observability.
|
|
16
|
+
|
|
17
|
+
## How to route
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ork phase list <thread> # o ledger inteiro, evento a evento
|
|
21
|
+
ork thread status <thread> # o estado gravado cruzado com o runtime real
|
|
22
|
+
ork sessions --all # as sessoes vivas do runtime
|
|
23
|
+
ork claims list <thread> # as alegacoes e o estado de cada uma
|
|
24
|
+
ork board # todas as threads, uma visao
|
|
25
|
+
ork master # as entregas, com o indice derivado do ledger
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## What the trace must answer
|
|
29
|
+
|
|
30
|
+
1. **What was requested**, with the exact prompt: each session wrote the prompt with `sha256` in the name.
|
|
31
|
+
2. **Who decided**, at each gate: a human by name, or an autonomous decision with the #TAG that authorized it.
|
|
32
|
+
3. **With what evidence**, always: command, output, sha. An event without evidence is an annotation, not a trace.
|
|
33
|
+
4. **What failed and why**, with the typed reason: `claims.failed`, `verify.regression`,
|
|
34
|
+
`policy.violation`, `lease.busy`, `tree.blocked`, `human.pending`.
|
|
35
|
+
5. **Where the time and the window went**, with the source of the measurement declared: `runtime_reported`,
|
|
36
|
+
`estimated`, `informada` or `unavailable`.
|
|
37
|
+
|
|
38
|
+
## Measurement honesty
|
|
39
|
+
|
|
40
|
+
What the runtime does not expose comes out as `unavailable`, with the reason. **A gap is published as a gap, never
|
|
41
|
+
as zero.** A trace that fills a hole with a silent estimate is worse than a trace with a
|
|
42
|
+
declared hole, because nobody mistakes the latter for data.
|
|
43
|
+
|
|
44
|
+
## Racionalizacoes comuns (Common rationalizations)
|
|
45
|
+
|
|
46
|
+
| Excuse | Reality |
|
|
47
|
+
|---|---|
|
|
48
|
+
| "I'll write one more event to make the trace complete" | Observability does not write to the state. An event invented afterwards is not a trace, it is reconstruction. |
|
|
49
|
+
| "The tokens spent must have been around X" | Without a runtime measurement, it comes out as `unavailable`. An estimate presented as a reading is the start of every fake dashboard. |
|
|
50
|
+
| "I'll put zero where there is no data" | Zero is a data point. A gap is published as a gap. |
|
|
51
|
+
| "I'll reorder the ledger so it is readable" | The ledger is append-only and the order is evidence. Readability is the presentation's job, not the file's. |
|
|
52
|
+
|
|
53
|
+
## Bandeiras vermelhas (Red flags)
|
|
54
|
+
|
|
55
|
+
- An event in the ledger without evidence.
|
|
56
|
+
- A gate without who decided.
|
|
57
|
+
- A metric with a round number and no source.
|
|
58
|
+
- A session recorded as alive that the runtime does not recognize.
|
|
59
|
+
|
|
60
|
+
## Verification before delivering the trace
|
|
61
|
+
|
|
62
|
+
Request, decider, evidence, typed reason and source of each number, with every gap declared as a
|
|
63
|
+
gap and no write made to the state. See `PERF 9`, `PERF 10` and `DoD 5`.
|