@orkastery/cli 0.2.0 → 0.3.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/LICENSE +1 -1
- package/README.md +86 -65
- package/adapters/README.md +30 -15
- package/adapters/claude-code/.claude-plugin/plugin.json +11 -5
- package/adapters/claude-code/README.md +110 -8
- package/adapters/claude-code/commands/onboarding.md +21 -0
- package/adapters/claude-code/commands/ork.md +99 -27
- package/adapters/claude-code/hooks/hooks.json +6 -1
- package/adapters/claude-code/hooks/ork-sensor.js +66 -0
- package/adapters/codex/skills/ork/SKILL.md +57 -0
- package/adapters/hermes/README.md +163 -0
- package/adapters/hermes/bin/ork-abrir-thread.sh +2 -0
- package/adapters/hermes/bin/ork-brain.sh +4 -0
- package/adapters/hermes/bin/ork-hitl-answer.py +82 -0
- package/adapters/hermes/bin/ork-maestro.sh +6 -0
- package/adapters/hermes/bin/ork-master-enviar.py +84 -0
- package/adapters/hermes/bin/ork-objective-message.sh +17 -0
- package/adapters/hermes/bin/ork-objective-status.sh +12 -0
- package/adapters/hermes/bin/ork-pulse-enviar.py +47 -0
- package/adapters/hermes/hermes.plugin.json +26 -4
- package/adapters/hermes/hitl-ingress/__init__.py +356 -0
- package/adapters/hermes/hitl-ingress/plugin.yaml +4 -0
- package/adapters/hermes/skills/orkastery-devmaster/SKILL.md +75 -22
- package/adapters/openclaw/README.md +135 -26
- package/adapters/openclaw/bin/ork-brain.sh +4 -0
- package/adapters/openclaw/construir.sh +19 -0
- package/adapters/openclaw/dist/hitl-ingress.js +199 -0
- package/adapters/openclaw/dist/index.js +437 -0
- package/adapters/openclaw/openclaw.plugin.json +39 -134
- package/adapters/openclaw/package.json +26 -0
- package/adapters/openclaw/src/hitl-ingress.ts +180 -0
- package/adapters/openclaw/src/index.ts +458 -0
- package/adapters/openclaw/src/tipos-openclaw.d.ts +58 -0
- package/adapters/openclaw/tsconfig.json +15 -0
- package/assets/docs/markdownlint-cli2.jsonc +22 -0
- package/assets/docs/padroes/documentacao-de-produto.md +133 -0
- package/assets/docs/padroes/roadmap-de-produto.md +98 -0
- package/assets/docs/produto/README.md +14 -0
- package/assets/docs/produto/_modelo-feature.md +59 -0
- package/assets/docs/roadmap/README.md +14 -0
- package/assets/docs/roadmap/_modelo-item.md +73 -0
- package/assets/orkmind-native-schema.json +32 -0
- package/assets/orkmind_bridge.py +357 -0
- package/assets/orkmind_fixture.py +67 -0
- package/assets/orkmind_prospective.py +138 -0
- package/assets/reference-tariffs-i07.json +23 -0
- package/dist/adapters/claude-bg.js +488 -39
- package/dist/adapters/codex-controller-sensor.js +449 -0
- package/dist/adapters/codex-controller-worker.js +361 -0
- package/dist/adapters/codex-controller.js +252 -0
- package/dist/adapters/codex-events.js +205 -0
- package/dist/adapters/codex-question.js +26 -0
- package/dist/adapters/codex-runner.js +133 -0
- package/dist/adapters/codex.js +394 -0
- package/dist/agents-md.js +84 -0
- package/dist/auditoria.js +11 -8
- package/dist/auditrun.js +5 -4
- package/dist/board.js +173 -22
- package/dist/branch-de-estado.js +136 -0
- package/dist/canarios-hitl.js +177 -0
- package/dist/canarios-i43.js +543 -0
- package/dist/canarios-pulse.js +147 -0
- package/dist/canarios-sensores.js +129 -0
- package/dist/canarios.js +111 -2
- package/dist/catalogo.js +9 -0
- package/dist/ci.js +216 -0
- package/dist/ciclos.js +2 -1
- package/dist/claim-lint.js +64 -0
- package/dist/claims.js +60 -0
- package/dist/company-brain-capture.js +195 -0
- package/dist/company-brain-cli.js +123 -0
- package/dist/company-brain-client.js +61 -0
- package/dist/company-brain-contract.js +166 -0
- package/dist/company-brain-journal.js +192 -0
- package/dist/company-brain-mcp.js +33 -0
- package/dist/company-brain-migration.js +60 -0
- package/dist/company-brain-source.js +177 -0
- package/dist/company-brain-worker.js +18 -0
- package/dist/conducao-texto.js +61 -0
- package/dist/conducao.js +876 -0
- package/dist/contrato-publico.js +39 -0
- package/dist/creation-operation-store.js +251 -0
- package/dist/creation-operation.js +148 -0
- package/dist/decisao-autonoma.js +183 -0
- package/dist/delegation.js +79 -0
- package/dist/demo.js +120 -0
- package/dist/docs.js +828 -0
- package/dist/doctor.js +183 -24
- package/dist/entrega-pr.js +117 -0
- package/dist/escopo-escrita.js +71 -0
- package/dist/estado-thread.js +222 -0
- package/dist/evalrunner.js +12 -0
- package/dist/fabrica-estado.js +329 -0
- package/dist/fabrica-publicar.js +76 -0
- package/dist/fix.js +21 -0
- package/dist/gates.js +55 -9
- package/dist/handoff.js +39 -23
- package/dist/hitl-canais.js +333 -0
- package/dist/hitl-classificacao.js +131 -0
- package/dist/hitl-contract.js +465 -0
- package/dist/hitl-estado.js +136 -0
- package/dist/hitl-gates.js +554 -0
- package/dist/hitl-ingress-receipt.js +382 -0
- package/dist/hitl-local-atestado.js +57 -0
- package/dist/hitl-local-receipt.js +328 -0
- package/dist/hitl-local.js +143 -0
- package/dist/hitl-lock.js +139 -0
- package/dist/hitl-lote.js +223 -0
- package/dist/hitl-native-offer.js +97 -0
- package/dist/hitl-native.js +65 -0
- package/dist/hitl-presentation.js +209 -0
- package/dist/hitl-public-receipt.js +176 -0
- package/dist/hitl-resumo.js +209 -0
- package/dist/hitl-sessions.js +475 -0
- package/dist/hitl.js +711 -0
- package/dist/horario.js +269 -0
- package/dist/hosts.js +198 -22
- package/dist/index.js +1736 -93
- package/dist/indice.js +99 -0
- package/dist/init.js +28 -3
- package/dist/integracoes-locais.js +17 -0
- package/dist/leases.js +65 -21
- package/dist/ledger-stats.js +272 -0
- package/dist/ledger.js +107 -2
- package/dist/licoes.js +215 -0
- package/dist/liveness.js +218 -0
- package/dist/maestro-actions.js +51 -0
- package/dist/maestro-authority.js +152 -0
- package/dist/maestro-cli.js +97 -0
- package/dist/maestro-contract.js +55 -0
- package/dist/maestro-discovery.js +132 -0
- package/dist/maestro-runtime.js +268 -0
- package/dist/maestro-snapshot.js +86 -0
- package/dist/maestro-sources.js +224 -0
- package/dist/manifest.js +165 -6
- package/dist/maquina.js +102 -0
- package/dist/master-audit.js +101 -0
- package/dist/master-batch.js +43 -0
- package/dist/master-digest.js +149 -0
- package/dist/master-migracao.js +155 -0
- package/dist/master.js +361 -77
- package/dist/mcp-artifacts.js +234 -0
- package/dist/mcp-git.js +433 -0
- package/dist/mcp-install.js +310 -0
- package/dist/mcp-maestro.js +25 -0
- package/dist/mcp-server.js +469 -0
- package/dist/mcp-ship.js +436 -0
- package/dist/mcp-verify.js +173 -0
- package/dist/memoria-humana.js +207 -0
- package/dist/memoria.js +314 -78
- package/dist/memory-migration.js +279 -0
- package/dist/memory-prospective.js +148 -0
- package/dist/modos-migracao.js +191 -0
- package/dist/modos.js +151 -15
- package/dist/monitor-lock.js +110 -0
- package/dist/objective.js +449 -0
- package/dist/ocupacao.js +267 -0
- package/dist/onboarding.js +303 -0
- package/dist/orkmind.js +389 -90
- package/dist/orquestracao.js +96 -69
- package/dist/phase.js +596 -150
- package/dist/playbook-capabilities.js +150 -0
- package/dist/playbook-contracts.js +188 -0
- package/dist/portfolio-context.js +61 -0
- package/dist/portfolio.js +180 -0
- package/dist/preflight.js +207 -0
- package/dist/process-audit.js +112 -0
- package/dist/project-state.js +93 -0
- package/dist/prompts.js +25 -5
- package/dist/prova-minima.js +112 -0
- package/dist/pulse-cadencia.js +163 -0
- package/dist/pulse-consentimento.js +260 -0
- package/dist/pulse-delivery.js +323 -0
- package/dist/pulse-resposta.js +542 -0
- package/dist/pulse.js +262 -0
- package/dist/ratelimit.js +35 -2
- package/dist/recall.js +80 -3
- package/dist/redacao-saida.js +45 -0
- package/dist/redacao-url.js +66 -0
- package/dist/retry.js +637 -115
- package/dist/roadmap-reservas.js +243 -0
- package/dist/runtime-ambiente.js +38 -0
- package/dist/runtime-context.js +215 -0
- package/dist/runtime-profiles.js +869 -0
- package/dist/runtimes.js +103 -0
- package/dist/sandbox.js +9 -0
- package/dist/session-events.js +203 -0
- package/dist/session-watcher-claude.js +637 -0
- package/dist/session-watcher.js +683 -0
- package/dist/sessoes-adopt.js +154 -0
- package/dist/sessoes-inventario.js +159 -0
- package/dist/sessoes.js +16 -35
- package/dist/setup.js +691 -0
- package/dist/ship.js +150 -15
- package/dist/slug.js +1 -1
- package/dist/thread-close.js +115 -0
- package/dist/thread.js +142 -28
- package/dist/tokens.js +1 -1
- package/dist/util.js +4 -2
- package/dist/verify-sandbox.js +265 -0
- package/dist/verify.js +270 -25
- package/dist/versao.js +60 -0
- package/dist/worktree.js +31 -2
- package/dist/write-activation.js +291 -0
- package/dist/yaml.js +2 -0
- package/eval/casos/onboarding.json +102 -0
- package/eval/casos/orkastery-bootstrap.json +35 -1
- package/eval/casos/scope-check-capability-map.json +45 -7
- package/eval/casos/ship-release.json +2 -2
- package/eval/fixtures/b0-slug-e-modos/caso.json +35 -22
- package/eval/fixtures/b2-master-log/caso.json +1 -1
- package/eval/fixtures/fx-adapter-editado-detectado/caso.json +19 -0
- package/eval/fixtures/fx-auto-quiet/caso.json +11 -0
- package/eval/fixtures/fx-blanket-approve/caso.json +10 -0
- package/eval/fixtures/fx-check-runtime-cruzado/caso.json +20 -0
- package/eval/fixtures/fx-codex-dry/caso.json +18 -0
- package/eval/fixtures/fx-donewhen-executavel/caso.json +15 -0
- package/eval/fixtures/fx-estado-dividido/caso.json +15 -0
- package/eval/fixtures/fx-fase-orfa/caso.json +116 -0
- package/eval/fixtures/fx-happy/caso.json +6 -4
- package/eval/fixtures/fx-hitl-latency/caso.json +20 -0
- package/eval/fixtures/fx-indice-reversao/caso.json +25 -0
- package/eval/fixtures/fx-listagem-abertas/caso.json +16 -0
- package/eval/fixtures/fx-maestro-bootstrap/caso.json +21 -0
- package/eval/fixtures/fx-modo-aposentado-escritor/caso.json +21 -0
- package/eval/fixtures/fx-modo-aposentado-leitor/caso.json +16 -0
- package/eval/fixtures/fx-objective-oscillation/caso.json +14 -0
- package/eval/fixtures/fx-omnicanal/caso.json +17 -0
- package/eval/fixtures/fx-sensores-runtime/caso.json +17 -0
- package/monitor/company-brain.cjs +17 -0
- package/monitor/pulse-scope.cjs +45 -0
- package/monitor/pulse.cron +18 -0
- package/monitor/varredura-pulse.sh +27 -0
- package/package.json +25 -4
- package/schemas/claims.schema.json +25 -0
- package/schemas/company-brain.schema.json +1158 -0
- package/schemas/creation-operation.schema.json +365 -0
- package/schemas/maestro-snapshot.schema.json +2716 -0
- package/skills/core/onboarding/SKILL.md +50 -0
- package/skills/core/orkastery-bootstrap/SKILL.md +95 -65
- package/skills/core/thread-state/SKILL.md +3 -1
- package/skills/governance/scope-check-capability-map/SKILL.md +17 -7
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,87 +1,108 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @orkastery/cli, the `ork` core
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
**Sem LLM embutido**: o `ork` monta prompt, despacha pelo runtime adapter, verifica no
|
|
5
|
-
mundo real e registra no ledger. Quem escreve código e a orquestra (Camada 3); quem
|
|
6
|
-
decide e o humano.
|
|
3
|
+
**Your agents say "done". `ork` re-runs it.**
|
|
7
4
|
|
|
8
|
-
|
|
5
|
+
`ork` conducts coding agents (Claude Code, Codex) through six-phase threads, verifies every
|
|
6
|
+
claim by re-running the command that proves it, and only delivers with the push proven on the
|
|
7
|
+
remote. It has no embedded LLM: it assembles the prompt, dispatches through the CLI of the
|
|
8
|
+
runtime you already use, checks the result in the real world and records everything in an
|
|
9
|
+
append-only ledger.
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
- **Truth, not a report.** Every statement becomes a claim with the command that judges it.
|
|
12
|
+
`ork verify` re-runs it on the thread's real HEAD and, with `ci.required_for_ship`, CI re-runs
|
|
13
|
+
it again on an independent runner before the merge.
|
|
14
|
+
- **You choose how often you are called.** One mode per #TAG, in the request itself, decides
|
|
15
|
+
where the cycle pauses. Verification is the same in all of them.
|
|
16
|
+
- **Subscription, never pay-per-token.** Dispatch uses the runtime CLI's own login. `ork` never
|
|
17
|
+
reads credentials, and the `subscription-only` policy blocks paid providers.
|
|
18
|
+
|
|
19
|
+
The CLI and the docs are in Brazilian Portuguese today.
|
|
20
|
+
|
|
21
|
+
## Install
|
|
22
|
+
|
|
23
|
+
Requires Node.js 20 or newer, git and at least one runtime logged in to your subscription
|
|
24
|
+
(`claude` or `codex`).
|
|
12
25
|
|
|
13
26
|
```bash
|
|
14
27
|
npm install -g @orkastery/cli
|
|
15
|
-
ork
|
|
28
|
+
ork demo # 30 seconds: a false claim rejected, the fixed one accepted; no account, no model
|
|
29
|
+
ork doctor # what holds on this machine right now (exits != 0 when something blocks)
|
|
16
30
|
```
|
|
17
31
|
|
|
18
|
-
|
|
19
|
-
|
|
32
|
+
The package ships the product catalog too (skills, references, eval and host adapters), so
|
|
33
|
+
`ork eval` and `ork adapter install` work from the global install.
|
|
20
34
|
|
|
21
|
-
##
|
|
35
|
+
## First steps
|
|
22
36
|
|
|
23
37
|
```bash
|
|
24
|
-
cd
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
38
|
+
cd your-repository
|
|
39
|
+
ork init # writes the orkastery.yaml
|
|
40
|
+
ork thread new "fix the date filter" --modo classic --worktree auto
|
|
41
|
+
ork phase run <thread> GOAL --prompt "the filter ignores the user's time zone"
|
|
42
|
+
ork claims add <thread> src/filter.ts --claim "respects the time zone" --verificar "npm test -- filter"
|
|
43
|
+
ork verify <thread> # re-runs the claims on the real HEAD
|
|
44
|
+
ork ship <thread> --para main # serialized merge and proven push
|
|
29
45
|
```
|
|
30
46
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
47
|
+
`ork board` shows every thread, and `ork pulse` gathers what needs you right now.
|
|
48
|
+
|
|
49
|
+
## The four modes
|
|
34
50
|
|
|
35
|
-
|
|
51
|
+
The #TAG goes in the request itself. The mode changes **where** the cycle waits for you:
|
|
52
|
+
|
|
53
|
+
| #TAG | Pauses | Cycle | What it is for |
|
|
54
|
+
| --- | --- | --- | --- |
|
|
55
|
+
| `#Classic` | 3 | `GOAL* / PLAN* / GO-CHECK* / SHIP-MASTER` | The default: delicate premises |
|
|
56
|
+
| `#Maestro` | 1 | `GOAL-PLAN* / GO-CHECK-SHIP / MASTER` | A clear solution, moving fast |
|
|
57
|
+
| `#Auto` | 0 | `GOAL-PLAN-GO-CHECK-SHIP-MASTER` | Docs, studies, configuration, audits |
|
|
58
|
+
| `#Fast` | 0 | `GO` | A small, clear request that takes minutes |
|
|
59
|
+
|
|
60
|
+
`*` marks the block that pauses. `#Fast` runs only the GO, with minimal proof (a focused test, a
|
|
61
|
+
cheap claim, or an absence declared in the ledger). It does not authorize a push on its own and
|
|
62
|
+
does not touch public contract files. `ork modos` is the source of truth.
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
The mode relaxes the PAUSE. The mode NEVER relaxes VERIFICATION.
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Hosts
|
|
69
|
+
|
|
70
|
+
`ork` talks to the host through thin adapters. Every rule lives in the core:
|
|
36
71
|
|
|
37
72
|
```bash
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
node dist/index.js modos # tabela dos 5 modos de conducao
|
|
41
|
-
node dist/index.js thread new "<nome>" --modo default
|
|
42
|
-
node dist/index.js thread list
|
|
43
|
-
node dist/index.js thread status <thread-id>
|
|
44
|
-
node dist/index.js phase run <thread-id> GOAL --prompt "<pedido>"
|
|
45
|
-
node dist/index.js phase list <thread-id>
|
|
46
|
-
node dist/index.js sessions [--all]
|
|
47
|
-
node dist/index.js sessions logs|stop|attach <sessao>
|
|
73
|
+
ork adapter list
|
|
74
|
+
ork adapter install claude-code # also: codex, hermes, openclaw
|
|
48
75
|
```
|
|
49
76
|
|
|
50
|
-
|
|
77
|
+
## Most used commands
|
|
78
|
+
|
|
79
|
+
| Command | What it does |
|
|
80
|
+
| --- | --- |
|
|
81
|
+
| `ork doctor` | Checks runtime, manifest, cost policy and sessions |
|
|
82
|
+
| `ork thread new <name> --modo <mode>` | Creates the thread, the slug and the ledger |
|
|
83
|
+
| `ork phase run <thread> <PHASE> --prompt "..."` | Dispatches the phase on the block's runtime |
|
|
84
|
+
| `ork claims add` / `ork verify` | Records claims and re-runs them |
|
|
85
|
+
| `ork ci prepare` / `ork ci run` | Takes the claims to the independent CHECK in CI |
|
|
86
|
+
| `ork ship <thread> --para main` | Merge serialized by lease, with the push proven by `ls-remote` |
|
|
87
|
+
| `ork board` / `ork pulse` | View of the threads and of the human attention queue |
|
|
88
|
+
| `ork setup <mode>` | Runtime, model and effort per block of each mode |
|
|
89
|
+
|
|
90
|
+
The full list comes from `ork help`.
|
|
91
|
+
|
|
92
|
+
## Build from this repository
|
|
51
93
|
|
|
52
94
|
```bash
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
node dist/index.js handoff export <thread-id> [--proxima-fase FASE]
|
|
59
|
-
node dist/index.js handoff recall <thread-id> "<path#ancora>"
|
|
60
|
-
node dist/index.js ship <thread-id> --para main [--autorizar-push <quem>] [--dry-run]
|
|
61
|
-
node dist/index.js lease list|release <nome>
|
|
95
|
+
cd core
|
|
96
|
+
npm ci
|
|
97
|
+
npm run build # writes dist/index.js (the `ork` bin)
|
|
98
|
+
npm test # builds and runs the suite (node --test)
|
|
99
|
+
npm link # optional: puts this tree's `ork` on the PATH
|
|
62
100
|
```
|
|
63
101
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
| `src/thread.ts` | Estado da thread em disco, slug, base carimbada, listagem |
|
|
72
|
-
| `src/phase.ts` | Montagem do prompt da fase, despacho e leitura do ledger |
|
|
73
|
-
| `src/modos.ts` | Matriz dos 5 modos de condução e parse da #TAG |
|
|
74
|
-
| `src/slug.ts` | Slug de 3 partes, regex canonica e rotação de sessão |
|
|
75
|
-
| `src/ledger.ts` | Ledger JSONL append-only por thread |
|
|
76
|
-
| `src/manifest.ts` | Leitura e validação do manifesto (com fallback `devmaster.yaml`) |
|
|
77
|
-
| `src/yaml.ts` | Leitor do subconjunto de YAML usado pelo manifesto (sem dependência) |
|
|
78
|
-
| `src/adapters/claude-bg.ts` | Runtime adapter: `claude --bg`, `claude agents`, logs e stop |
|
|
79
|
-
| `src/sessoes.ts` | Observabilidade: cruza o runtime real com o registrado nas threads |
|
|
80
|
-
| `src/claims.ts` | Alegações verificaveis por thread (`claims.jsonl`) e a regra da alegação negativa |
|
|
81
|
-
| `src/verify.ts` | Reexecucao no HEAD real, baseline e classificação regressão vs pré-existente |
|
|
82
|
-
| `src/gates.ts` | Catálogo de motivos tipados de gate e registro de aprovação humana |
|
|
83
|
-
| `src/policies.ts` | Policies do manifesto executaveis, por gate e por severidade |
|
|
84
|
-
| `src/leases.ts` | Leases com aquisição atômica e TTL (o `main-tree` serializa o ship) |
|
|
85
|
-
| `src/ship.ts` | Merge --no-ff serializado, verificado, e push provado por `ls-remote` |
|
|
86
|
-
| `src/tokens.ts` | Gate de tokens: medida honesta da janela e veredito de rotação |
|
|
87
|
-
| `src/handoff.ts` | Handoff triado em 3 níveis com proveniência, e o recall dos ponteiros |
|
|
102
|
+
`prepack` builds and copies the catalog from the repository root into `core/`, and `postpack`
|
|
103
|
+
removes the copies. That is why `npm pack` and `npm publish` ship the whole product without
|
|
104
|
+
those folders existing in the versioned tree of `core/`.
|
|
105
|
+
|
|
106
|
+
## License
|
|
107
|
+
|
|
108
|
+
MIT. Full documentation, roadmap and changelog in the Orkastery repository.
|
package/adapters/README.md
CHANGED
|
@@ -1,22 +1,37 @@
|
|
|
1
1
|
# adapters/
|
|
2
2
|
|
|
3
|
-
Adaptadores de host (Camada 1:
|
|
3
|
+
Adaptadores de host (Camada 1): Claude Code, Codex, Hermes e OpenClaw.
|
|
4
4
|
|
|
5
|
-
Eles traduzem
|
|
6
|
-
**Zero regra de
|
|
7
|
-
`ork
|
|
8
|
-
`
|
|
5
|
+
Eles traduzem intenção em chamada de `ork`, apresentam gates ao humano e registram decisões.
|
|
6
|
+
**Zero regra de negócio.** Nem o parse da #TAG de modo é reimplementado aqui: o host chama
|
|
7
|
+
`ork modos --do-pedido`, que usa a `extrairTagDoPedido` do núcleo, e a validação contra
|
|
8
|
+
`conduction.allowed_modes` também é do núcleo.
|
|
9
9
|
|
|
10
|
-
| Host | O que entra |
|
|
11
|
-
|
|
12
|
-
| [claude-code](claude-code/README.md) | Plugin com as
|
|
13
|
-
|
|
|
14
|
-
| [
|
|
10
|
+
| Host | O que entra | Instalação |
|
|
11
|
+
| --- | --- | --- |
|
|
12
|
+
| [claude-code](claude-code/README.md) | Plugin com as skills do catálogo, subagentes de fase, `/goal` ... `/master` e o guard `PreToolUse` | `ork adapter install claude-code` |
|
|
13
|
+
| codex | Entrada `$ork` e o catálogo de condução em skills locais do projeto | `ork adapter install codex` |
|
|
14
|
+
| [hermes](hermes/README.md) | Skill roteadora fina, plugin de ingresso HITL e scripts de abertura de thread | `ork adapter install hermes` |
|
|
15
|
+
| [openclaw](openclaw/README.md) | Extensão (`package.json`, `dist/index.js` e manifesto) com as tools `ork_*`, instalada em `extensions/orkastery` | `ork adapter install openclaw` |
|
|
15
16
|
|
|
16
|
-
Cada README traz os **3 pitfalls de
|
|
17
|
-
|
|
17
|
+
Cada README traz os **3 pitfalls de instalação** do seu host: os três jeitos conhecidos de a
|
|
18
|
+
instalação "dar certo" e não funcionar. O instalador cita os mesmos três ao terminar, e o
|
|
18
19
|
`--dry-run` mostra o que ele faria sem escrever nada.
|
|
19
20
|
|
|
20
|
-
Os adaptadores de RUNTIME (Camada 3)
|
|
21
|
-
os chama
|
|
22
|
-
diferentes
|
|
21
|
+
Os adaptadores de RUNTIME (Camada 3) são outra coisa e ficam em `core/src/adapters/`, porque quem
|
|
22
|
+
os chama é o núcleo: `claude-bg` e `codex`. O Claude Code aparece nas duas camadas, com papéis
|
|
23
|
+
diferentes, e confundir as duas é o jeito mais rápido de prometer um motor que não existe.
|
|
24
|
+
|
|
25
|
+
## Paridade Maestro
|
|
26
|
+
|
|
27
|
+
A frase `orkastery maestro` consulta o mesmo contrato do núcleo nas quatro
|
|
28
|
+
instalações: MCP no Codex e no Claude, wrapper argv no Hermes e tool argv no OpenClaw.
|
|
29
|
+
O instalador inclui entrada, callback e recibo de arquivos; instalação não prova
|
|
30
|
+
ativação em sessão nova. `maestro-parity.test.ts` compara o contrato canônico e
|
|
31
|
+
instalações temporárias. Os testes específicos de cada adaptador exercitam o
|
|
32
|
+
transporte fixture; os recibos live são uma etapa posterior e separada.
|
|
33
|
+
|
|
34
|
+
Usabilidade HITL é prioridade máxima: recomendação, opções claras e canal disponível
|
|
35
|
+
associado ao pedido. MCP local conserva elicitation; Telegram segue disponível
|
|
36
|
+
quando configurado. Ingresso nativo Hermes/Discord e OpenClaw depende de callback
|
|
37
|
+
autenticado e binding privado; terminal Hermes/ACP não está homologado.
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
"displayName": "Orkastery",
|
|
4
4
|
"description": "Conducao de looping threads em 6 fases com gates humanos, estado em disco e MASTER log com score de 0 a 5. As skills sao roteadores finos: quem executa e o nucleo `ork`.",
|
|
5
5
|
"version": "{{versao}}",
|
|
6
|
-
"author": {
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Julio Pessoa e contribuidores do Orkastery"
|
|
8
|
+
},
|
|
7
9
|
"license": "MIT",
|
|
8
10
|
"skills": [
|
|
9
11
|
"./skills/core/orkastery-bootstrap",
|
|
@@ -22,10 +24,14 @@
|
|
|
22
24
|
"./skills/reviewers/code-reviewer",
|
|
23
25
|
"./skills/reviewers/security-auditor",
|
|
24
26
|
"./skills/reviewers/test-engineer",
|
|
25
|
-
"./skills/reviewers/web-performance-auditor"
|
|
27
|
+
"./skills/reviewers/web-performance-auditor",
|
|
28
|
+
"./skills/core/onboarding"
|
|
26
29
|
],
|
|
27
30
|
"commands": "./commands",
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
"keywords": [
|
|
32
|
+
"orquestracao",
|
|
33
|
+
"metodologia",
|
|
34
|
+
"governanca",
|
|
35
|
+
"telemetria"
|
|
36
|
+
]
|
|
31
37
|
}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
# Adaptador Claude Code
|
|
2
2
|
|
|
3
|
-
O Orkastery chega ao Claude Code como **plugin**: as
|
|
3
|
+
O Orkastery chega ao Claude Code como **plugin**: as 18 skills finas do catalogo, seis subagentes
|
|
4
4
|
de fase, os slash commands `/goal` ... `/master` e um guard `PreToolUse`.
|
|
5
5
|
|
|
6
6
|
## Instalacao
|
|
7
7
|
|
|
8
8
|
```bash
|
|
9
|
-
ork adapter install claude-code
|
|
10
|
-
ork adapter install claude-code
|
|
11
|
-
|
|
9
|
+
ork adapter install claude-code --dry-run
|
|
10
|
+
ork adapter install claude-code # prepara <projeto>/.claude/plugins/orkastery
|
|
11
|
+
claude plugin validate .claude/plugins/orkastery
|
|
12
|
+
claude plugin marketplace add "$PWD/.claude/plugins/orkastery" --scope project
|
|
13
|
+
claude plugin install orkastery@orkastery --scope project
|
|
14
|
+
claude plugin details orkastery
|
|
12
15
|
```
|
|
13
16
|
|
|
14
17
|
O instalador copia o catalogo unico de `skills/` e `references/`, renderiza o manifesto do plugin
|
|
@@ -16,6 +19,37 @@ com os caminhos declarados um a um, e grava `INSTALADO.json` com a origem e o sh
|
|
|
16
19
|
arquivo. E esse arquivo que permite detectar depois que alguem editou a copia instalada em vez do
|
|
17
20
|
catalogo.
|
|
18
21
|
|
|
22
|
+
Copiar o adaptador não habilita o plugin no Claude. Os comandos nativos acima registram
|
|
23
|
+
o marketplace e habilitam o plugin no projeto atual. Confirme primeiro que o nome
|
|
24
|
+
`orkastery` não pertence a outro marketplace e preserve as configurações existentes.
|
|
25
|
+
O manifesto usa a descoberta padrão de `agents/` e `hooks/hooks.json`: declarar o
|
|
26
|
+
diretório como `agents` é inválido no Claude 2.1.263; declarar novamente o arquivo
|
|
27
|
+
padrão em `hooks` provoca erro de carregamento por duplicação.
|
|
28
|
+
|
|
29
|
+
O escopo precisa ser provado em cada worktree. Nos ensaios do Claude 2.1.263,
|
|
30
|
+
`--scope project` habilitou os diretórios configurados explicitamente, enquanto
|
|
31
|
+
`--scope local` na main também alcançou uma worktree não configurada. Não use esse
|
|
32
|
+
último mecanismo para excluir threads. O [plano de ativação](ACTIVATION.md) descreve
|
|
33
|
+
preservação, exclusões, prova de despacho e rollback antes de uso operacional.
|
|
34
|
+
|
|
35
|
+
Validação, instalação e startup nativos sem modelo:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm --prefix core run build
|
|
39
|
+
npm --prefix core run build:test
|
|
40
|
+
node adapters/claude-code/test/native-plugin.cjs
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
O teste cria projeto e worktrees pela API do `ork`, isola cache/configuração com
|
|
44
|
+
`CLAUDE_CONFIG_DIR` e verifica o startup do CLI, além do inventário. Uma worktree
|
|
45
|
+
não habilitada e outro projeto devem carregar zero hooks. O teste explícito
|
|
46
|
+
`node adapters/claude-code/test/native-plugin.cjs --smoke` também abre duas sessões
|
|
47
|
+
reais e exige `PermissionRequest` no ledger canônico, sem aprovar Bash. Esse smoke
|
|
48
|
+
exige Linux, Python 3/pexpect e OAuth de assinatura em `ANTHROPIC_TOKEN` no arquivo
|
|
49
|
+
`~/.hermes/.env`; não usa chave API nem fallback. A configuração global
|
|
50
|
+
permanece fora da fixture. As sessões e os ledgers temporários são descartados;
|
|
51
|
+
guarde a saída JSON como recibo antes de declarar a prova concluída.
|
|
52
|
+
|
|
19
53
|
## O que voce ganha
|
|
20
54
|
|
|
21
55
|
| Voce digita | Voce recebe |
|
|
@@ -50,6 +84,64 @@ verifica. Comando que comeca com `ork` passa direto, porque quem prova o push e
|
|
|
50
84
|
o nucleo. E se o proprio guard quebrar, ele **libera**: um hook que derruba a sessao por bug proprio
|
|
51
85
|
e pior que nenhum hook.
|
|
52
86
|
|
|
87
|
+
## Sensores de sessão
|
|
88
|
+
|
|
89
|
+
`PermissionRequest`, `Notification`, `Stop`, `SubagentStop` e `PostToolUse` chamam
|
|
90
|
+
`ork sessions event` com a sessão e o diretório fornecidos pelo Claude. A sessão deve
|
|
91
|
+
estar registrada em uma thread do projeto. `ORK_SENSOR_CLI` pode apontar para o executável
|
|
92
|
+
do ork instalado; o padrão é `ork` no PATH. Cada chamada tem timeout de três segundos.
|
|
93
|
+
|
|
94
|
+
O sensor deixa stdout vazio e sai com código zero, inclusive em falha. Ele observa o
|
|
95
|
+
bloqueio, sem decidir a permissão. `PermissionRequest` captura a solicitação imediata;
|
|
96
|
+
`Notification` com `permission_prompt` só ocorre após cerca de seis segundos, conforme a
|
|
97
|
+
[referência de hooks](https://code.claude.com/docs/en/hooks#permissionrequest).
|
|
98
|
+
|
|
99
|
+
O ledger recebe carimbos e identificadores, sem prompts, comandos ou transcrições.
|
|
100
|
+
`PostToolUse` registra progresso; para Bash, um recibo de commit só é emitido quando o
|
|
101
|
+
resultado contém o SHA do HEAD confirmado no Git. O comando recebido nunca é executado.
|
|
102
|
+
`Stop` e `SubagentStop` são observações distintas e não aprovam uma fase.
|
|
103
|
+
|
|
104
|
+
Teste de integração isolado: `npm --prefix core run build && npm --prefix core run build:test && node --test core/dist-test/test/claude-sensors.test.js`.
|
|
105
|
+
|
|
106
|
+
O canário `node core/dist/index.js eval --so-canarios --canario fx-sensores-runtime`
|
|
107
|
+
integra hook, CLI, supervisor e watcher em um repositório temporário. Seus eventos Codex
|
|
108
|
+
são sintéticos; a saída identifica esse limite e mede ingestão, morte e duplicatas.
|
|
109
|
+
|
|
110
|
+
Para homologação com as assinaturas autenticadas, execute explicitamente:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
node core/scripts/smoke-sensores.cjs --runtime claude
|
|
114
|
+
node core/scripts/smoke-sensores.cjs --runtime codex
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
O harness exige usuário comum; Claude exige Python 3 com `pexpect`. Ele cria um projeto
|
|
118
|
+
temporário e aceita a confiança somente nesse projeto que acabou de criar. Claude roda
|
|
119
|
+
em PTY com permissão de Bash obrigatória: o teste observa o diálogo real, o instante do
|
|
120
|
+
hook e a ingestão no ledger, e encerra a sessão sem aprovar a ferramenta. A saída inclui
|
|
121
|
+
o código/sinal desse encerramento controlado, sem alegar resposta ou aprovação humana.
|
|
122
|
+
Codex executa um comando curto e o harness confere o arquivo produzido, tokens, rollout
|
|
123
|
+
e recibo supervisionado. A descoberta do rollout é refeita no término porque sua criação
|
|
124
|
+
pode ocorrer após `thread.started`. O sandbox vem de `runtime.sandbox` do manifesto
|
|
125
|
+
do diretório de execução, sem override do harness. A prova de escrita em `read-only`
|
|
126
|
+
falha, preservando o modo configurado.
|
|
127
|
+
|
|
128
|
+
Cada comando emite JSON e retorna código 1 quando falta a prova. Variáveis de credenciais
|
|
129
|
+
e redirecionamento de API paga são removidas; não há fallback. HOME, CODEX_HOME,
|
|
130
|
+
CLAUDE_CONFIG_DIR, XDG e temporários ficam dentro da tentativa, junto dos ledgers.
|
|
131
|
+
O recibo lista os arquivos nativos e confirma a limpeza apenas desses recursos.
|
|
132
|
+
Claude usa OAuth de assinatura somente no ambiente. Codex lê seu cache nativo por
|
|
133
|
+
`memfd` Linux selado, sem cópia persistente de credenciais ou escrita na origem.
|
|
134
|
+
Refresh que precise escrever no cache torna a prova indisponível. Veja os limites
|
|
135
|
+
e o tratamento do rollout legado de T9 no [plano de ativação](ACTIVATION.md).
|
|
136
|
+
Guarde o JSON no diretório de evidências da thread
|
|
137
|
+
condutora. O teste de contrato do harness não dispara runtimes nem substitui esses smokes.
|
|
138
|
+
O prompt de permissão de rede do sandbox tem um fluxo distinto, descrito na
|
|
139
|
+
[referência de PermissionRequest](https://code.claude.com/docs/en/hooks#permissionrequest).
|
|
140
|
+
|
|
141
|
+
Sem `tool_use_id`, cada invocação do hook recebe uma identidade de ocorrência. O tamanho
|
|
142
|
+
do transcript não identifica uma ocorrência; eventos de um novo episódio de permissão
|
|
143
|
+
podem chegar sem alteração do arquivo. Replays com `tool_use_id` continuam idempotentes.
|
|
144
|
+
|
|
53
145
|
## A #TAG de conducao
|
|
54
146
|
|
|
55
147
|
O comando `/goal` extrai o modo do proprio pedido, sem reimplementar nada:
|
|
@@ -71,9 +163,11 @@ tres e o `--dry-run` mostra o que ele vai fazer sobre cada um.
|
|
|
71
163
|
1. **Manifesto sem os caminhos das skills instala limpo e nao expoe nada.** Um plugin do Claude
|
|
72
164
|
Code auto-descobre `skills/<nome>/SKILL.md` e para ai: ele nao desce nos diretorios de bucket
|
|
73
165
|
(`core/`, `phases/`, `reviewers/`, ...) que este catalogo usa. Por isso `plugin.json` declara os
|
|
74
|
-
|
|
75
|
-
`
|
|
76
|
-
|
|
166
|
+
caminhos um a um. O teste compara esses caminhos com o catálogo fonte e exige
|
|
167
|
+
`onboarding`, acrescentada por I15. Neste catálogo, `claude plugin details orkastery`
|
|
168
|
+
deve reportar 26 entradas: 18 skills mais oito comandos. O startup registra
|
|
169
|
+
separadamente skills e comandos. A prova anterior de T10, com 17 skills, é histórica.
|
|
170
|
+
Confira também os seis agentes e seis eventos de hooks, sem erros de carregamento.
|
|
77
171
|
|
|
78
172
|
2. **Duas copias do catalogo divergem, e a divergencia so aparece quando ja custou uma entrega.**
|
|
79
173
|
A fonte unica e `skills/` na raiz do produto. O instalador copia de la e grava a origem e o
|
|
@@ -84,7 +178,7 @@ tres e o `--dry-run` mostra o que ele vai fazer sobre cada um.
|
|
|
84
178
|
3. **Hook com caminho relativo silenciosamente nao roda, e o guard vira decoracao.** O
|
|
85
179
|
`hooks.json` chama `node "${CLAUDE_PLUGIN_ROOT}/hooks/ork-guard.js"`, nunca um caminho relativo
|
|
86
180
|
ao diretorio de trabalho, que muda a cada worktree de thread. Depois de instalar, prove que o
|
|
87
|
-
|
|
181
|
+
script do guard funciona isoladamente:
|
|
88
182
|
|
|
89
183
|
```bash
|
|
90
184
|
echo '{"tool_name":"Bash","tool_input":{"command":"git add -A"}}' \
|
|
@@ -100,3 +194,11 @@ host onde o builder conversa e de onde as chamadas de `ork` saem. Ele tambem e *
|
|
|
100
194
|
orquestra, quando o `ork` despacha `claude --bg` para escrever codigo, e esse adaptador de runtime
|
|
101
195
|
mora em `core/src/adapters/claude-bg.ts`, chamado pelo nucleo. Sao papeis diferentes no mesmo
|
|
102
196
|
programa, e misturar os dois e como o Orkastery original acabou prometendo um motor que nunca teve.
|
|
197
|
+
# Entrada Maestro
|
|
198
|
+
|
|
199
|
+
Em sessão nova com o plugin ativado, diga `orkastery maestro`. A entrada consulta
|
|
200
|
+
`mcp__orkastery__ork_maestro` e apresenta fontes, lacunas e ações disponíveis.
|
|
201
|
+
A instalação em fixture prova os arquivos/roteamento; ativação e conversa real
|
|
202
|
+
dependem do recibo pós-SHIP. HITL prioriza recomendação, opções claras e pergunta
|
|
203
|
+
nativa na condutora. Telegram é opcional. Falha de autenticação não autoriza trocar
|
|
204
|
+
provider, runtime ou permissões.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Conduz ou retoma a entrevista do projeto pela pauta do núcleo ork.
|
|
3
|
+
argument-hint: "<pedido de onboarding>"
|
|
4
|
+
allowed-tools: Bash(ork:*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /onboarding
|
|
8
|
+
|
|
9
|
+
Execute `ork onboarding` para obter a pauta e `ork onboarding show --json` para consultar
|
|
10
|
+
as respostas atuais. Conduza as pendências pela pauta devolvida pelo núcleo. Não duplique
|
|
11
|
+
etapas ou validação neste host e não invente respostas em nome do builder.
|
|
12
|
+
|
|
13
|
+
Grave a resposta pública solicitada com `ork onboarding set <etapa> --conteudo <JSON> --por <quem>`.
|
|
14
|
+
Transporte o JSON como argumento, com escaping de shell adequado; nunca execute o texto recebido.
|
|
15
|
+
Peça somente nomes de variáveis para credenciais. Valores secretos ficam em `~/.hermes/.env`;
|
|
16
|
+
não leia esse arquivo nem transporte valores para a conversa, onboarding ou ledger.
|
|
17
|
+
|
|
18
|
+
Reset solicitado usa `ork onboarding reset [etapa]`. Publicação opcional usa
|
|
19
|
+
`ork onboarding sync --json`; apresente o motivo tipado de degradação sem bloquear a entrevista.
|
|
20
|
+
A escolha da memória orienta o manifesto, sem editá-lo automaticamente.
|
|
21
|
+
Conclua com o estado de `ork onboarding show --json`. Não crie thread para apenas entrevistar.
|
|
@@ -1,37 +1,109 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
argument-hint: "[board|plan|doctor|modos]"
|
|
4
|
-
allowed-tools: Bash(ork:*), Read
|
|
2
|
+
description: Reconhece orkastery maestro e conduz pedidos, retomadas e status na conversa com o Maestro/Builder.
|
|
3
|
+
argument-hint: "[pedido em linguagem natural|thread|status|board|plan|doctor|modos]"
|
|
4
|
+
allowed-tools: Bash(ork:*), Read, mcp__orkastery__ork_thread_status, mcp__orkastery__ork_phase_list, mcp__orkastery__ork_hitl_pending, mcp__orkastery__ork_observe, mcp__orkastery__ork_artifact_read, mcp__orkastery__ork_claims_list, mcp__orkastery__ork_git_status, mcp__orkastery__ork_thread_new, mcp__orkastery__ork_phase_run, mcp__orkastery__ork_preflight
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# /ork
|
|
7
|
+
# /orkastery:ork
|
|
8
8
|
|
|
9
|
-
Entrada
|
|
10
|
-
|
|
9
|
+
Entrada nativa do plugin ativado no projeto: `/orkastery:ork`. A copia dos arquivos pelo
|
|
10
|
+
instalador ainda exige ativacao nativa; `/ork` sozinho nao e um alias garantido.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Esta entrada ja esta carregada pela invocacao do dono. Nao invoque `Skill(orkastery:ork)`
|
|
13
|
+
nem outro comando para recarregar estas instrucoes. Conduza o pedido com as ferramentas
|
|
14
|
+
ja permitidas.
|
|
15
|
+
As oito consultas MCP e criar/despachar thread desta entrada valem no turno da invocacao;
|
|
16
|
+
nao persistem por si nas proximas mensagens. Criar/despachar exige demanda e escopo autorizados
|
|
17
|
+
pelo dono, modo resolvido e preflight do nucleo. Nao recarregue a skill para obter permissoes.
|
|
18
|
+
Esses grants nao ativam MCP, nao autorizam outras mutacoes nem aprovam gates ou respostas humanas.
|
|
19
|
+
|
|
20
|
+
Leia o contrato comum com `Read`, sem chamar `Skill` para carregar o bootstrap:
|
|
21
|
+
@${CLAUDE_PLUGIN_ROOT}/skills/core/orkastery-bootstrap/SKILL.md
|
|
22
|
+
|
|
23
|
+
Se o contrato ja estiver no contexto, use-o sem reler. Se o arquivo estiver ausente,
|
|
24
|
+
informe instalacao incompleta; nao invente outro fluxo.
|
|
25
|
+
|
|
26
|
+
Entrada conversacional do Orkastery. Use o contrato comum para conduzir a intencao do dono pelo nucleo. Nao limite um pedido de execucao a indicar outro
|
|
27
|
+
slash command. Se recebeu um pedido e possui as ferramentas necessarias, execute o roteamento.
|
|
28
|
+
Os comandos de fase continuam disponiveis como atalhos; o dono nao precisa conhece-los.
|
|
29
|
+
|
|
30
|
+
## Reconhecer a intencao
|
|
31
|
+
|
|
32
|
+
A frase literal `orkastery maestro`, em sessão limpa, pede leitura do panorama.
|
|
33
|
+
Descubra a ferramenta com `ToolSearch` em `select:mcp__orkastery__ork_maestro`,
|
|
34
|
+
então consulte o projeto fixado. Não abre thread nem despacho por consulta.
|
|
35
|
+
Projeto ausente/ambíguo exige resolver o contexto permitido pelo núcleo.
|
|
36
|
+
Se já recebeu fase/thread/worktree, execute o bloco recebido, sem recursão.
|
|
37
|
+
MCP ausente ou autenticação negada permanece impedimento; não troque runtime,
|
|
38
|
+
provider ou sandbox. A consulta CLI `ork maestro --json` não concede mutações.
|
|
39
|
+
|
|
40
|
+
Usabilidade HITL é prioridade máxima: tópicos, recomendação e opções rotuladas,
|
|
41
|
+
UUID interno e cancelamento preservado. A condutora usa
|
|
42
|
+
`mcp__orkastery__ork_request_decision`; o filho nunca responde em nome do dono.
|
|
43
|
+
|
|
44
|
+
| Pedido do dono | Acao do agente |
|
|
45
|
+
|---|---|
|
|
46
|
+
| Demanda nova | Resolva o modo pelo nucleo, confira o preflight e abra/despache a thread correspondente. |
|
|
47
|
+
| "Continue" ou thread/roadmap existente | Leia o estado e o ultimo resultado; retome o proximo passo autorizado, sem duplicar despacho. |
|
|
48
|
+
| "Como esta?" ou status | Consulte a thread conhecida; apresente progresso comprovado, impedimento e proximo passo. |
|
|
49
|
+
| Decisao ou resposta | Correlacione com o pedido/gate apresentado, transporte pelo caminho suportado e confira o resultado. |
|
|
50
|
+
| Onboarding | Use a pauta de `ork onboarding` e retome as etapas existentes. |
|
|
51
|
+
| board, plan, doctor ou modos | Execute a consulta correspondente e interprete o resultado para a intencao do dono. |
|
|
52
|
+
|
|
53
|
+
## Fontes do nucleo
|
|
54
|
+
|
|
55
|
+
Priorize as ferramentas MCP do Orkastery quando descobertas nesta sessao, com o projeto
|
|
56
|
+
fixado pelo servidor. No Claude, o servidor instalado `orkastery` expoe nomes completos como
|
|
57
|
+
`mcp__orkastery__ork_thread_status`. Se houver ferramentas adiadas, use `ToolSearch` com
|
|
58
|
+
`select:mcp__orkastery__ork_thread_status,mcp__orkastery__ork_artifact_read` para essas leituras;
|
|
59
|
+
para outra operacao, selecione seu nome completo realmente exposto. Nao tente `select:ork_thread_status`
|
|
60
|
+
nem adivinhe outro namespace. Ativacao inicial do MCP e consentimento do dono continuam nativos. `ork_thread_status`, `ork_phase_list` e `ork_hitl_pending` leem
|
|
61
|
+
estado; `ork_thread_new` e `ork_phase_run` abrem/despacham; `ork_observe` consulta a sessao
|
|
62
|
+
nativa despachada. Quando pausa/escalacao real permitir e faltar pedido, use
|
|
63
|
+
`ork_gate_request(threadId, motivo?)`; nunca crie pedido para uma consulta de status.
|
|
64
|
+
`ork_request_decision(threadId, pedidoId)` apresenta o dialogo ao dono:
|
|
65
|
+
a resposta vem pelo host, nunca por argumento de resposta ou identidade inventada pelo modelo.
|
|
66
|
+
|
|
67
|
+
As consultas CLI abaixo continuam uteis quando a ferramenta correspondente nao esta disponivel:
|
|
13
68
|
|
|
14
69
|
```bash
|
|
15
|
-
ork
|
|
16
|
-
ork
|
|
17
|
-
ork
|
|
18
|
-
ork
|
|
19
|
-
ork
|
|
70
|
+
ork thread status <thread>
|
|
71
|
+
ork phase list <thread>
|
|
72
|
+
ork pulse --json
|
|
73
|
+
ork board plan
|
|
74
|
+
ork doctor
|
|
75
|
+
ork modos
|
|
76
|
+
ork master --batch
|
|
20
77
|
```
|
|
21
78
|
|
|
22
|
-
|
|
79
|
+
Use apenas as consultas necessarias. Nao rode todas a cada mensagem. O preflight pertence ao
|
|
80
|
+
inicio de despacho ou a uma mudanca relevante de ambiente; uma pergunta de status nao reinicia
|
|
81
|
+
onboarding nem trabalho. Se a thread estiver ambigua, esclareca antes de alterar seu estado.
|
|
82
|
+
Pausas listadas nos blocos do modo sao previstas. Para dizer que o dono precisa responder
|
|
83
|
+
agora, identifique uma pendencia atual no estado/ultimo resultado da thread, com gate,
|
|
84
|
+
pedido ou evento correspondente. Uma thread nova sem fase executada nao aguarda premissas
|
|
85
|
+
so porque o bloco f12 do modo preve essa pausa.
|
|
23
86
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
87
|
+
## Continuidade
|
|
88
|
+
|
|
89
|
+
Preserve modo, decisoes e autorizacoes da thread/sessao. Prossiga com trabalho autorizado em
|
|
90
|
+
vez de encerrar com "posso continuar?". Pergunte quando o modo ou uma ambiguidade real exigir
|
|
91
|
+
intervencao do dono e explique o que a resposta destrava. Nao aprove gates em nome dele.
|
|
92
|
+
|
|
93
|
+
Com despacho existente, consulte `ork_observe` e trate a espera nativa atual. Nao substitua
|
|
94
|
+
observacao por loops longos de `phase list`, sleeps ou regex de conclusao sobre historico.
|
|
95
|
+
Se faltar MCP e o sandbox impedir `.git`, informe instalacao pendente do transporte nativo;
|
|
96
|
+
nao repita a mutacao negada nem altere o sandbox. Diferencie permissao nativa de gate do Ork.
|
|
97
|
+
|
|
98
|
+
Antes do despacho, use `ork_preflight({modo})`; alternativa CLI: `ork doctor --modo <modo>`. A sonda segue setup por bloco, sem inventário global, e não comprova autenticação, gates ou entrega.
|
|
99
|
+
Para HEADs e estado Git, consulte `ork_git_status`; nao invente SHAs nem substitua o transporte por Bash Git.
|
|
100
|
+
O perfil filho `worktree` e opt-in da instalacao do projeto; nao o habilite por argumento de ferramenta
|
|
101
|
+
ou edicao de configuracao para contornar bloqueio. Preserve o perfil configurado e as permissoes nativas.
|
|
102
|
+
|
|
103
|
+
A sessao condutora despacha e acompanha; uma sessao que ja recebeu uma fase executa essa fase,
|
|
104
|
+
sem redespachar a si mesma. O nucleo continua validando fases, evidencias e gates.
|
|
105
|
+
|
|
106
|
+
Mostre o resultado, o ultimo progresso confirmado e o que acontece agora. Registre checkpoint
|
|
107
|
+
antes de uma retomada futura; nao prometa notificacao fora das capacidades da sessao.
|
|
108
|
+
Conclua com entrega e validacao efetivas, distinguindo o que ainda depende de CHECK, SHIP ou
|
|
109
|
+
score humano. A lista de comandos executados e diagnostico auxiliar, nao a experiencia do dono.
|
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
15
|
-
]
|
|
15
|
+
],
|
|
16
|
+
"PermissionRequest": [{ "hooks": [{ "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ork-sensor.js\"", "timeout": 5 }] }],
|
|
17
|
+
"Notification": [{ "hooks": [{ "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ork-sensor.js\"", "timeout": 5 }] }],
|
|
18
|
+
"Stop": [{ "hooks": [{ "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ork-sensor.js\"", "timeout": 5 }] }],
|
|
19
|
+
"SubagentStop": [{ "hooks": [{ "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ork-sensor.js\"", "timeout": 5 }] }],
|
|
20
|
+
"PostToolUse": [{ "hooks": [{ "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ork-sensor.js\"", "timeout": 5 }] }]
|
|
16
21
|
}
|
|
17
22
|
}
|