@orkastery/cli 0.2.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 +21 -0
- package/README.md +87 -0
- package/adapters/README.md +22 -0
- package/adapters/claude-code/.claude-plugin/marketplace.json +15 -0
- package/adapters/claude-code/.claude-plugin/plugin.json +31 -0
- package/adapters/claude-code/README.md +102 -0
- package/adapters/claude-code/agents/ork-check.md +32 -0
- package/adapters/claude-code/agents/ork-go.md +32 -0
- package/adapters/claude-code/agents/ork-goal.md +33 -0
- package/adapters/claude-code/agents/ork-master.md +32 -0
- package/adapters/claude-code/agents/ork-plan.md +32 -0
- package/adapters/claude-code/agents/ork-ship.md +32 -0
- package/adapters/claude-code/commands/check.md +45 -0
- package/adapters/claude-code/commands/go.md +46 -0
- package/adapters/claude-code/commands/goal.md +54 -0
- package/adapters/claude-code/commands/master.md +42 -0
- package/adapters/claude-code/commands/ork.md +37 -0
- package/adapters/claude-code/commands/plan.md +47 -0
- package/adapters/claude-code/commands/ship.md +45 -0
- package/adapters/claude-code/hooks/hooks.json +17 -0
- package/adapters/claude-code/hooks/ork-guard.js +130 -0
- package/adapters/hermes/README.md +45 -0
- package/adapters/hermes/bin/ork-abrir-thread.sh +25 -0
- package/adapters/hermes/hermes.plugin.json +21 -0
- package/adapters/hermes/skills/orkastery-devmaster/SKILL.md +116 -0
- package/adapters/openclaw/README.md +63 -0
- package/adapters/openclaw/bin/ork-abrir-thread.sh +24 -0
- package/adapters/openclaw/openclaw.plugin.json +138 -0
- package/dist/adapters/claude-bg.js +308 -0
- package/dist/auditoria.js +848 -0
- package/dist/auditrun.js +976 -0
- package/dist/board.js +314 -0
- package/dist/canarios.js +271 -0
- package/dist/catalogo.js +124 -0
- package/dist/ciclos.js +156 -0
- package/dist/claims.js +226 -0
- package/dist/divida.js +374 -0
- package/dist/doctor.js +246 -0
- package/dist/evalrunner.js +458 -0
- package/dist/fix.js +450 -0
- package/dist/gates.js +92 -0
- package/dist/handoff.js +521 -0
- package/dist/hosts.js +331 -0
- package/dist/index.js +1910 -0
- package/dist/init.js +231 -0
- package/dist/leases.js +508 -0
- package/dist/ledger.js +138 -0
- package/dist/manifest.js +255 -0
- package/dist/master.js +453 -0
- package/dist/memoria.js +773 -0
- package/dist/modos.js +220 -0
- package/dist/orkmind.js +487 -0
- package/dist/orquestracao.js +559 -0
- package/dist/phase.js +572 -0
- package/dist/policies.js +176 -0
- package/dist/prompts.js +406 -0
- package/dist/ratelimit.js +179 -0
- package/dist/recall.js +252 -0
- package/dist/retry.js +917 -0
- package/dist/sandbox.js +94 -0
- package/dist/sessoes.js +104 -0
- package/dist/ship.js +551 -0
- package/dist/slug.js +100 -0
- package/dist/superficie.js +1347 -0
- package/dist/thread.js +333 -0
- package/dist/tokens.js +228 -0
- package/dist/types.js +20 -0
- package/dist/util.js +156 -0
- package/dist/verify.js +262 -0
- package/dist/worktree.js +576 -0
- package/dist/yaml.js +112 -0
- package/eval/README.md +85 -0
- package/eval/casos/check-quality.json +103 -0
- package/eval/casos/code-reviewer.json +102 -0
- package/eval/casos/decision-triage.json +103 -0
- package/eval/casos/go-implementation.json +103 -0
- package/eval/casos/goal-definition.json +103 -0
- package/eval/casos/master-metrics.json +103 -0
- package/eval/casos/narrative-guardian.json +163 -0
- package/eval/casos/orkastery-bootstrap.json +102 -0
- package/eval/casos/plan-specification.json +102 -0
- package/eval/casos/roadmap-keeper.json +103 -0
- package/eval/casos/scope-check-capability-map.json +83 -0
- package/eval/casos/security-auditor.json +102 -0
- package/eval/casos/ship-release.json +122 -0
- package/eval/casos/test-engineer.json +122 -0
- package/eval/casos/thread-state.json +82 -0
- package/eval/casos/thread-tracing.json +83 -0
- package/eval/casos/web-performance-auditor.json +102 -0
- package/eval/fixtures/b0-slug-e-modos/caso.json +56 -0
- package/eval/fixtures/b2-master-log/caso.json +91 -0
- package/eval/fixtures/fx-concurrency/caso.json +15 -0
- package/eval/fixtures/fx-hallucination/caso.json +12 -0
- package/eval/fixtures/fx-happy/caso.json +16 -0
- package/eval/fixtures/fx-schema-drift/caso.json +15 -0
- package/eval/fixtures/fx-stale-base/caso.json +12 -0
- package/eval/fixtures/fx-wiki-destroy/caso.json +16 -0
- package/eval/fixtures/superficie-de-rede/README.md +22 -0
- package/eval/fixtures/superficie-de-rede/api-express.js +30 -0
- package/eval/fixtures/superficie-de-rede/api_fastapi.py +17 -0
- package/eval/fixtures/superficie-de-rede/api_gin.go +18 -0
- package/package.json +56 -0
- package/references/README.md +25 -0
- package/references/code-review-axes.md +82 -0
- package/references/definition-of-done.md +74 -0
- package/references/performance-checklist.md +53 -0
- package/references/security-checklist.md +101 -0
- package/references/testing-patterns.md +51 -0
- package/skills/README.md +43 -0
- package/skills/core/orkastery-bootstrap/SKILL.md +89 -0
- package/skills/core/thread-state/SKILL.md +86 -0
- package/skills/governance/decision-triage/SKILL.md +65 -0
- package/skills/governance/narrative-guardian/SKILL.md +66 -0
- package/skills/governance/roadmap-keeper/SKILL.md +60 -0
- package/skills/governance/scope-check-capability-map/SKILL.md +61 -0
- package/skills/observability/thread-tracing/SKILL.md +63 -0
- package/skills/phases/check-quality/SKILL.md +87 -0
- package/skills/phases/go-implementation/SKILL.md +70 -0
- package/skills/phases/goal-definition/SKILL.md +69 -0
- package/skills/phases/master-metrics/SKILL.md +65 -0
- package/skills/phases/plan-specification/SKILL.md +67 -0
- package/skills/phases/ship-release/SKILL.md +68 -0
- package/skills/reviewers/code-reviewer/SKILL.md +61 -0
- package/skills/reviewers/security-auditor/SKILL.md +68 -0
- package/skills/reviewers/test-engineer/SKILL.md +66 -0
- package/skills/reviewers/web-performance-auditor/SKILL.md +63 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Security Checklist
|
|
2
|
+
|
|
3
|
+
A lista normativa que a auditoria de seguranca do CHECK percorre, cuja condicao dura de passagem e
|
|
4
|
+
zero bloqueadores no relatorio consolidado. Ela eleva verificacao que ja existe no nucleo e nao
|
|
5
|
+
inventa nenhuma. Os itens sao numerados uma unica vez no arquivo inteiro. Cite um item como `SEC 5`.
|
|
6
|
+
|
|
7
|
+
**Fontes:** `core/src/policies.ts` (padroes de segredo e policies bloqueantes),
|
|
8
|
+
`core/src/doctor.ts`, `core/src/ship.ts`, `core/src/gates.ts`,
|
|
9
|
+
`core/src/superficie.ts` (varredura deterministica da superficie de ataque de rede,
|
|
10
|
+
regras SP8..SP12 do pack `security-privacy`),
|
|
11
|
+
[definition-of-done.md](definition-of-done.md).
|
|
12
|
+
|
|
13
|
+
```mermaid
|
|
14
|
+
flowchart TB
|
|
15
|
+
E["escopo declarado:<br/>diff, historico, prompts, artefatos"] --> S1["SEC 1 a 4:<br/>segredo e credencial"]
|
|
16
|
+
S1 --> S2["SEC 5 a 8:<br/>entrada e superficie"]
|
|
17
|
+
S2 --> S3["SEC 9 e 10:<br/>dependencia e cadeia"]
|
|
18
|
+
S3 --> S4["SEC 11 a 14:<br/>artefatos do repositorio"]
|
|
19
|
+
S4 --> S5["SEC 15 a 17:<br/>conduta da auditoria"]
|
|
20
|
+
S5 --> S6["SEC 18 a 22:<br/>superficie de ataque de rede"]
|
|
21
|
+
S6 --> C{"algum bloqueador?"}
|
|
22
|
+
C -->|"sim"| B["veredito BLOQUEADO"]
|
|
23
|
+
C -->|"nao"| P["zero bloqueadores:<br/>condicao dura cumprida"]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Segredo e credencial
|
|
27
|
+
|
|
28
|
+
| # | Verificacao | Como se comprova |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| 1 | Nenhum segredo na arvore de trabalho: token, chave de API, senha, bloco de chave privada, string de conexao e string de alta entropia com cara de credencial, incluindo arquivos `.env`, fixtures de teste e configs de exemplo. | Leitura do diff da branch mais varredura da arvore. O relatorio nomeia a ferramenta usada ou diz que a passagem foi manual. |
|
|
31
|
+
| 2 | Nenhum segredo no historico atras da branch. Segredo commitado e depois apagado continua vazado. | `git log -p <base>..HEAD` sobre o intervalo inteiro, nao so a arvore. Bloqueador ate a credencial ser rotacionada e o historico limpo, com a rotacao verificada e nao prometida. |
|
|
32
|
+
| 3 | Nenhuma credencial real em prompt despachado. O gate `phase.dispatch` do `ork` avalia a policy `segredo_em_prompt` ANTES de gravar o prompt em disco: prompt reprovado nao chega a existir como arquivo, porque gravar um prompt com credencial cria um segundo vazamento dentro do proprio repositorio. | `ork phase run` sai com motivo tipado `policy.violation`; o ledger registra o nome do padrao e a linha, nunca o trecho casado. |
|
|
33
|
+
| 4 | Nenhuma credencial real em artefato de thread, ledger, saida de comando capturada ou no proprio relatorio de auditoria. Relatorio de vazamento que imprime o segredo e um segundo vazamento. | Leitura dos artefatos que a thread produziu. Placeholder redigido passa e e declarado como tal; credencial e referenciada por localizacao e forma redigida. |
|
|
34
|
+
|
|
35
|
+
## Entrada e superficie
|
|
36
|
+
|
|
37
|
+
| # | Verificacao | Como se comprova |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| 5 | Toda entrada que atravessa fronteira de confianca e validada no lado que confia, e nao no lado que chama. Validacao so no cliente conta como ausente. | Leitura do diff nos pontos de entrada tocados. |
|
|
40
|
+
| 6 | Nenhuma concatenacao de entrada em SQL, shell, caminho de arquivo ou template renderizado. O nucleo `ork` executa comando por lista de argumentos, sem shell interpolado, e o mesmo padrao vale para o codigo revisado. | Leitura do diff; qualquer construcao de comando por concatenacao e bloqueador. |
|
|
41
|
+
| 7 | Autenticacao e autorizacao verificadas por operacao, nao por tela: quem pode ler nem sempre pode escrever, e o teste que prova isso existe ou o achado e aviso com registro. | Testes de autorizacao na suite, reexecutados por `ork verify`. |
|
|
42
|
+
| 8 | Desserializacao de dado nao confiavel nao instancia tipo arbitrario, e todo `JSON.parse` de arquivo de estado tem erro tratado com o caminho no texto do erro. | Leitura do diff sobre os pontos de leitura de estado. |
|
|
43
|
+
|
|
44
|
+
## Dependencia e cadeia de suprimento
|
|
45
|
+
|
|
46
|
+
| # | Verificacao | Como se comprova |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| 9 | Nenhuma dependencia nova sem justificativa no PLAN. Dependencia que entra sem tarefa e scope creep com superficie de ataque. | Diff dos arquivos de manifesto de pacote contra as tarefas do PLAN. |
|
|
49
|
+
| 10 | Vulnerabilidade conhecida nas dependencias declaradas foi consultada, e o resultado esta no relatorio com a data e a ferramenta. Onde nao ha ferramenta, o item sai `unavailable` com o motivo. | `npm audit` onde ha dependencia de producao declarada. |
|
|
50
|
+
|
|
51
|
+
## Artefatos do repositorio
|
|
52
|
+
|
|
53
|
+
| # | Verificacao | Como se comprova |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| 11 | Nenhum comando destrutivo em massa em script, hook ou documentacao que alguem vai copiar: `rm -rf` com caminho variavel nao ancorado, `git add -A`, `git checkout -- .`, `git reset --hard` sem alvo, `push --force`. | Varredura dos diretorios tocados. O guard `PreToolUse` do adaptador Claude Code bloqueia estes mesmos comandos em tempo de execucao. |
|
|
56
|
+
| 12 | Nenhum push direto na branch base. A policy `push_direto_na_base` do manifesto e bloqueante e reprova entrega em que origem e destino sao a mesma branch. | `ork ship` sai com `policy.violation` antes de tocar no remoto. |
|
|
57
|
+
| 13 | Nenhum despacho por provider pago quando a politica e `subscription-only`. Variavel de ambiente que redireciona o `claude` para provider pago e bloqueador, porque o custo aparece na fatura e nao no gate. | `ork doctor` e a policy `provider`, avaliada no gate `phase.dispatch` e no `ship`. |
|
|
58
|
+
| 14 | Permissao de arquivo criado por script nao amplia acesso: nada de `chmod 777`, nada de arquivo de estado com bit de execucao. | Leitura do diff dos scripts e hooks. |
|
|
59
|
+
|
|
60
|
+
## Conduta da auditoria
|
|
61
|
+
|
|
62
|
+
| # | Verificacao | Como se comprova |
|
|
63
|
+
|---|---|---|
|
|
64
|
+
| 15 | O escopo auditado esta declarado antes dos achados: quais diretorios, qual intervalo de historico, quais artefatos. Auditoria sem escopo declarado nao e reproduzivel e nao vale como evidencia. | O cabecalho da secao de seguranca do relatorio. |
|
|
65
|
+
| 16 | Cada achado sai categorizado bloqueador, aviso ou sugestao, com o item `SEC n` que ele viola. Achado sem numero de item e opiniao. | A tabela de achados do relatorio. |
|
|
66
|
+
| 17 | Ausencia de achado e afirmada como resultado de verificacao, com o que foi olhado. "Nada encontrado" sem escopo e diferente de "auditado e limpo", e a diferenca fica escrita. | O texto da secao, contra `SEC 15`. |
|
|
67
|
+
|
|
68
|
+
## Superficie de ataque de rede
|
|
69
|
+
|
|
70
|
+
O que o produto PUBLICA. Os itens 5 a 8 olham o dado que entra por uma fronteira; estes olham
|
|
71
|
+
a fronteira em si: quais rotas e endpoints existem, quem pode chama-los e a que custo. O pack
|
|
72
|
+
`security-privacy` audita esta secao com varredura DETERMINISTICA (`ork audit surface`, regras
|
|
73
|
+
SP8 a SP12), que roda dentro de `ork audit run security-privacy` e grava cada achado no board
|
|
74
|
+
de divida com evidencia `arquivo:linha` e o comando que a reexecuta.
|
|
75
|
+
|
|
76
|
+
| # | Verificacao | Como se comprova |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| 18 | Toda rota de servidor HTTP/API declarada em producao passa por camada de autenticacao/autorizacao, ou e publica por decisao registrada (login, cadastro, health, webhook assinado). Rota publica por esquecimento e bloqueador. | `ork audit surface --regra SP8`. O achado traz a definicao da rota com `arquivo:linha`, o framework reconhecido e o comando que prova a ausencia de guarda no bloco da rota ou no arquivo. |
|
|
79
|
+
| 19 | Endpoint de administracao ou operacao (admin, console, debug, swagger/openapi, health detalhado, metricas, `pprof`, metadados de cluster) nao esta acessivel de fora: ha restricao de rede (allowlist, rede interna) ou oAuth/basic auth. Health que devolve versao, hostname, banco ou dependencia e endpoint de operacao, nao de saude. | `ork audit surface --regra SP9`, mais a configuracao de rede ou o middleware citado com `arquivo:linha`. |
|
|
80
|
+
| 20 | Rota exposta tem limite de taxa por IP e por identidade, com atencao especial ao caminho de autenticacao, recuperacao de senha, OTP, busca, exportacao e qualquer rota publica que altera estado. Sem limite, uma requisicao paga um brute-force. | `ork audit surface --regra SP10`. Middleware de limite, cota ou rpm citado na rota, no roteador que a monta ou no gateway, com o arquivo e a linha. |
|
|
81
|
+
| 21 | CORS nao combina origem global com credenciais, e origem aberta nao aparece em servico que trafega dado pessoal ou sessao. Lista explicita de origens, sempre. | `ork audit surface --regra SP11`. O achado cita a configuracao com `arquivo:linha`, o curinga de origem e a flag de credenciais, cada um com o comando que o reexecuta. |
|
|
82
|
+
| 22 | A definicao da rota declara o esquema do payload na borda (schema, validador, modelo tipado), e a recusa do payload invalido acontece antes do handler. Complementa o item 5, que olha o USO do dado dentro do handler. | `ork audit surface --regra SP12`, com a definicao da rota e a ausencia de esquema no ponto de entrada. |
|
|
83
|
+
|
|
84
|
+
Achado que a varredura marca com confianca `baixa` (ha middleware que o `ork` nao classifica,
|
|
85
|
+
framework nao reconhecido, marcador presente no arquivo e ausente no bloco da rota) sai como
|
|
86
|
+
**aviso que pede confirmacao humana**, nunca como bloqueador: a maquina diz onde olhar, e quem
|
|
87
|
+
decide se procede e a pessoa.
|
|
88
|
+
|
|
89
|
+
## Recomendacoes (nao sao gate nesta maquina)
|
|
90
|
+
|
|
91
|
+
- Varredura por ferramenta dedicada de segredo (gitleaks, trufflehog): nao instalada aqui. Os
|
|
92
|
+
padroes de `core/src/policies.ts` cobrem chave da Anthropic, da OpenAI, de acesso AWS, token do
|
|
93
|
+
GitHub, chave privada PEM e atribuicao de segredo em texto, e a auditoria diz que cobriu essas
|
|
94
|
+
classes e nao outras.
|
|
95
|
+
- Analise de composicao de software e assinatura de artefato: fora do alcance desta maquina; sai
|
|
96
|
+
`unavailable` com o motivo, nunca como passagem silenciosa.
|
|
97
|
+
- Teste dinamico da superficie (varredura de portas, fuzzing de endpoint, DAST): fora do alcance.
|
|
98
|
+
A varredura dos itens 18 a 22 e ESTATICA e le a definicao de rota no codigo: ela nao ve rota
|
|
99
|
+
gerada em tempo de execucao, nem proxy, gateway ou WAF na frente do servico. Onde houver essa
|
|
100
|
+
camada, o achado continua valendo como pergunta e e resolvido com a evidencia da camada, nunca
|
|
101
|
+
em silencio.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Testing Patterns
|
|
2
|
+
|
|
3
|
+
O que uma suite precisa provar e como uma suite verde e ganha honestamente. Os itens sao numerados
|
|
4
|
+
uma unica vez no arquivo inteiro. Cite um item como `TEST 3`.
|
|
5
|
+
|
|
6
|
+
**Fontes:** `core/src/verify.ts` (baseline e reexecucao), `core/src/claims.ts`,
|
|
7
|
+
[definition-of-done.md](definition-of-done.md), [code-review-axes.md](code-review-axes.md).
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
flowchart LR
|
|
11
|
+
B["baseline gravada<br/>antes do GO"] --> G["GO: implementacao<br/>slice por slice"]
|
|
12
|
+
G --> R["reexecucao no HEAD real"]
|
|
13
|
+
R --> D{"comparacao contra a baseline"}
|
|
14
|
+
D -->|"passava e falha"| RG["regressao:<br/>TEST 1, gate verify.regression"]
|
|
15
|
+
D -->|"ja falhava"| DV["divida pre-existente:<br/>declarada, nao imputada a thread"]
|
|
16
|
+
D -->|"tudo verde"| OK["suite verde ganha"]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## O que a suite prova
|
|
20
|
+
|
|
21
|
+
| # | Verificacao | Como se comprova |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| 1 | Existe baseline gravada antes do GO. Sem ela, uma falha nao distingue regressao de divida pre-existente, e a thread leva culpa por defeito que ja estava la, ou pior, esconde o que ela mesma quebrou. | `ork verify <thread> --baseline` antes do GO. |
|
|
24
|
+
| 2 | Todo criterio de sucesso do GOAL tem um comando que o comprova. Criterio que nao vira comando nao e criterio, e adjetivo. | As claims da thread, com `--verificar`. |
|
|
25
|
+
| 3 | Numa demanda de correcao, existe um teste que reproduz o defeito e que falhava antes da correcao. Correcao cujo defeito nunca foi reproduzido nao pode provar que corrigiu nada. | O teste novo, rodado contra o commit anterior a correcao. |
|
|
26
|
+
| 4 | O caminho de falha tem teste, nao so o caminho feliz. Suite que so exercita o sucesso mede otimismo. | Leitura da suite contra os casos de borda do PLAN. |
|
|
27
|
+
| 5 | Teste novo falha quando a implementacao e revertida. Teste que passa com e sem a mudanca nao testa a mudanca. | Reverter localmente e rodar, ou mutar a linha central e conferir a reprovacao. |
|
|
28
|
+
|
|
29
|
+
## Como a suite verde e ganha
|
|
30
|
+
|
|
31
|
+
| # | Verificacao | Como se comprova |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| 6 | A suite roda no HEAD real, no diretorio de trabalho da thread. Passagem relatada por agente nao e passagem. | `ork verify <thread>` reexecuta os comandos do manifesto e as claims, e carimba o commit real. |
|
|
34
|
+
| 7 | Nenhum teste foi desligado, marcado para pular ou afrouxado para fechar a entrega. Pular teste e mudanca de escopo com registro, nunca ajuste de rota silencioso. | Diff sobre os arquivos de teste, procurando teste removido, `skip` e assercao relaxada. |
|
|
35
|
+
| 8 | Nenhuma assercao foi trocada pelo valor que o codigo produz hoje sem que alguem tenha dito por que o valor certo mudou. Ajustar o esperado ao observado e a forma mais comum de transformar defeito em contrato. | Diff das assercoes contra a intencao declarada no PLAN. |
|
|
36
|
+
| 9 | Teste nao depende de rede, de credencial paga nem de relogio de parede. Fixture deterministica e o padrao; o que precisa de mundo externo fica fora do gate e e declarado. | Rodar a suite offline. No `ork`, os canarios de `ork eval` montam repositorio git temporario e nao tocam a rede. |
|
|
37
|
+
| 10 | Teste nao depende de outro teste nem da ordem de execucao. Estado compartilhado entre casos e defeito, mesmo quando a suite esta verde hoje. | Rodar em ordem embaralhada ou isoladamente o caso suspeito. |
|
|
38
|
+
|
|
39
|
+
## Contagem e cobertura
|
|
40
|
+
|
|
41
|
+
| # | Verificacao | Como se comprova |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| 11 | A contagem de testes reportada e a que o comando imprimiu, colada da saida real. Numero de suite digitado de memoria nao e evidencia. | A saida do runner no relatorio da entrega. |
|
|
44
|
+
| 12 | Cobertura e reportada com origem: `runtime_reported` quando a ferramenta mediu, `estimated` quando alguem estimou e disse que estimou, `unavailable` quando nao ha ferramenta. Lacuna e publicada como lacuna, nunca como zero. | A secao de metricas do relatorio. |
|
|
45
|
+
|
|
46
|
+
## Recomendacoes (nao sao gate nesta maquina)
|
|
47
|
+
|
|
48
|
+
- Cobertura por ferramenta: este repositorio nao tem uma instalada, entao a cobertura sai
|
|
49
|
+
`unavailable` por `TEST 12`, e nao estimada por conveniencia.
|
|
50
|
+
- Teste de mutacao para provar `TEST 5` de forma automatica: fora do alcance desta maquina; a prova
|
|
51
|
+
aqui e manual e declarada como manual.
|
package/skills/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# skills/
|
|
2
|
+
|
|
3
|
+
Catalogo do Orkastery: as 17 skills que levam a metodologia das 6 fases para qualquer host
|
|
4
|
+
compativel. Buckets: `core/`, `phases/`, `reviewers/`, `governance/`, `observability/`.
|
|
5
|
+
|
|
6
|
+
**Regra do catalogo, herdada do original e mantida aqui:** cada skill e um **roteador fino que
|
|
7
|
+
chama o `ork`**, nunca a implementacao, e **skill sem eval nao entra**. A metodologia executavel
|
|
8
|
+
mora no nucleo (`core/`), nao nesta prosa. Em qualquer divergencia entre uma skill e o que o `ork`
|
|
9
|
+
faz, o nucleo vence, e a divergencia e defeito da skill.
|
|
10
|
+
|
|
11
|
+
| Bucket | Skill | Roteia para |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| core | [orkastery-bootstrap](core/orkastery-bootstrap/SKILL.md) | `ork modos`, `ork thread new`, `ork board` |
|
|
14
|
+
| core | [thread-state](core/thread-state/SKILL.md) | `ork thread status`, `ork phase list` |
|
|
15
|
+
| phases | [goal-definition](phases/goal-definition/SKILL.md) | `ork phase run <t> GOAL`, `ork claims add` |
|
|
16
|
+
| phases | [plan-specification](phases/plan-specification/SKILL.md) | `ork phase run <t> PLAN`, `ork lease acquire` |
|
|
17
|
+
| phases | [go-implementation](phases/go-implementation/SKILL.md) | `ork worktree ensure`, `ork verify --baseline` |
|
|
18
|
+
| phases | [check-quality](phases/check-quality/SKILL.md) | `ork verify`, `ork gate approve` |
|
|
19
|
+
| phases | [ship-release](phases/ship-release/SKILL.md) | `ork ship` |
|
|
20
|
+
| phases | [master-metrics](phases/master-metrics/SKILL.md) | `ork master`, `ork master --batch` |
|
|
21
|
+
| reviewers | [code-reviewer](reviewers/code-reviewer/SKILL.md) | `references/code-review-axes.md` |
|
|
22
|
+
| reviewers | [security-auditor](reviewers/security-auditor/SKILL.md) | `references/security-checklist.md` |
|
|
23
|
+
| reviewers | [test-engineer](reviewers/test-engineer/SKILL.md) | `references/testing-patterns.md` |
|
|
24
|
+
| reviewers | [web-performance-auditor](reviewers/web-performance-auditor/SKILL.md) | `references/performance-checklist.md` |
|
|
25
|
+
| governance | [decision-triage](governance/decision-triage/SKILL.md) | `ork gate approve` |
|
|
26
|
+
| governance | [narrative-guardian](governance/narrative-guardian/SKILL.md) | `ork verify`, `ork phase list` |
|
|
27
|
+
| governance | [roadmap-keeper](governance/roadmap-keeper/SKILL.md) | `ork board`, `ork thread new` |
|
|
28
|
+
| governance | [scope-check-capability-map](governance/scope-check-capability-map/SKILL.md) | `ork doctor`, `ork board plan` |
|
|
29
|
+
| observability | [thread-tracing](observability/thread-tracing/SKILL.md) | `ork phase list`, `ork sessions` |
|
|
30
|
+
|
|
31
|
+
## Evals
|
|
32
|
+
|
|
33
|
+
Os 87 casos que protegem estas skills ficam em [`eval/casos/`](../eval/casos/) e rodam por
|
|
34
|
+
`ork eval`. Cada skill tem no minimo tres casos, cobrindo caminho feliz, resistencia a
|
|
35
|
+
racionalizacao e borda de dominio. O runner julga a **metade estatica** (as regras que precisam
|
|
36
|
+
existir no arquivo para o comportamento ser possivel) e diz em voz alta que a **metade
|
|
37
|
+
comportamental e `unavailable`**, nunca `passing`: lacuna e publicada como lacuna.
|
|
38
|
+
|
|
39
|
+
## Instalacao nos hosts
|
|
40
|
+
|
|
41
|
+
`ork adapter install claude-code|hermes|openclaw` instala estas mesmas skills no host, sem copiar o
|
|
42
|
+
catalogo: **uma copia so**, declarada caminho a caminho no manifesto do plugin. Duas copias do
|
|
43
|
+
catalogo divergem, e a divergencia so aparece quando ja custou uma entrega.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orkastery-bootstrap
|
|
3
|
+
description: "Skill raiz do Orkastery: explica o ciclo de looping threads, roteia /goal /plan /go /check /ship /master para as skills de fase e para o `ork`, e le a #TAG de conducao do pedido. Ativa sempre que o repositorio tem orkastery.yaml."
|
|
4
|
+
bucket: core
|
|
5
|
+
roteia: "ork modos | ork thread new | ork board"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Orkastery Bootstrap
|
|
10
|
+
|
|
11
|
+
## O que esta skill e
|
|
12
|
+
|
|
13
|
+
Um roteador fino. Ela nao executa fase nenhuma, nao escreve codigo e nao guarda regra de negocio:
|
|
14
|
+
ela diz qual comando `ork` responde pela intencao do builder e chama esse comando. **A metodologia
|
|
15
|
+
executavel mora no nucleo `ork`, nunca nesta prosa.** Em qualquer divergencia entre o que esta
|
|
16
|
+
escrito aqui e o que o `ork` faz, o nucleo vence, e a divergencia e defeito desta skill.
|
|
17
|
+
|
|
18
|
+
Essa e a licao que matou o Orkastery original: metodologia que existe so como texto e metodologia
|
|
19
|
+
que ninguem verifica.
|
|
20
|
+
|
|
21
|
+
## Quando usar
|
|
22
|
+
|
|
23
|
+
- Automaticamente, sempre que o repositorio de trabalho tem `orkastery.yaml`.
|
|
24
|
+
- Quando o builder pede para comecar, retomar, listar ou avaliar trabalho.
|
|
25
|
+
- Quando outra skill do catalogo precisa das regras de base repetidas.
|
|
26
|
+
|
|
27
|
+
## Como rotear
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
ork doctor # o que vale nesta maquina agora
|
|
31
|
+
ork modos # a tabela dos 5 modos de conducao
|
|
32
|
+
ork thread new "<nome>" --mode <modo> # abre a thread com a #TAG do pedido
|
|
33
|
+
ork phase run <thread> GOAL --prompt "<...>" # despacha a fase pelo runtime
|
|
34
|
+
ork board # o estado de todas as threads
|
|
35
|
+
ork board plan # quem avanca agora, quem espera e por que
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## A #TAG de conducao
|
|
39
|
+
|
|
40
|
+
A autonomia se escolhe no pedido, nao em arquivo de configuracao. O adaptador do host extrai a
|
|
41
|
+
primeira #TAG do texto do builder e repassa `--mode` ao `ork`; sem #TAG vale o
|
|
42
|
+
`conduction.default_mode` do manifesto. **A validacao contra `allowed_modes` e do nucleo:** o host
|
|
43
|
+
nao decide se um modo e permitido, ele so transporta a tag.
|
|
44
|
+
|
|
45
|
+
| #TAG | Pausas humanas | Uso |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| `#Look` | 6 | Risco alto, passo irreversivel, dominio novo |
|
|
48
|
+
| `#Ork` | 5 | Veredito separado da execucao e da evidencia |
|
|
49
|
+
| `#Classic` | 3 | O padrao: premissas delicadas, entrega solta, score em batch |
|
|
50
|
+
| `#Maestro` | 1 | Solucao clara e agil, score em batch |
|
|
51
|
+
| `#Auto` | 0 | Docs, estudos, configuracoes, auditorias |
|
|
52
|
+
|
|
53
|
+
## As regras inviolaveis
|
|
54
|
+
|
|
55
|
+
1. **Nenhuma fase se pula.** Demanda pequena ganha fase compacta, nunca fase a menos. Uma correcao
|
|
56
|
+
de uma linha tambem atravessa GOAL, PLAN, GO, CHECK, SHIP e MASTER.
|
|
57
|
+
2. **O modo afrouxa a pausa, NUNCA a verificacao.** Claims, verify, policies e gates tipados rodam
|
|
58
|
+
identicos em `#Look` e em `#Auto`; o que muda e se o veredito espera o humano.
|
|
59
|
+
3. **A camada que apresenta nunca escreve codigo de produto.** Quem escreve codigo e a orquestra
|
|
60
|
+
(Camada 3), despachada pelo `ork`. Adaptador que implementa a demanda quebrou a arquitetura.
|
|
61
|
+
4. **O estado mora em disco**, em `.orkastery/threads/<id>/`. Qualquer sessao retoma qualquer
|
|
62
|
+
thread a partir do disco; conversa nao e estado.
|
|
63
|
+
5. **Gate e decisao humana registrada**, ou decisao autonoma registrada com quem decidiu, com que
|
|
64
|
+
evidencia e por que. Gate sem registro nao aconteceu.
|
|
65
|
+
6. **Entrega sem MASTER log nao aconteceu.** O score humano de 0 a 5 fecha toda thread, na hora ou
|
|
66
|
+
na fila de batch dos modos sem pausa de MASTER.
|
|
67
|
+
|
|
68
|
+
## Racionalizacoes comuns
|
|
69
|
+
|
|
70
|
+
| Desculpa | Realidade |
|
|
71
|
+
|---|---|
|
|
72
|
+
| "E uma correcao minima, GOAL e exagero" | Compacto, nunca ausente: um GOAL de tres paragrafos custa minutos e evita o retrabalho classico de direcao errada. |
|
|
73
|
+
| "Depois eu dou o score da thread anterior" | Entrega sem MASTER log nao aconteceu. Nos modos sem pausa, o score vai para a fila de `ork master --batch`, que continua sendo humana. |
|
|
74
|
+
| "Como e `#Auto`, da para pular o verify" | O modo afrouxa a pausa, nunca a verificacao. Policy `block` e escalacao tipada param `#Auto` igual param `#Look`. |
|
|
75
|
+
| "Eu mesmo escrevo esse trecho, e mais rapido" | A camada que apresenta nao escreve codigo de produto. Velocidade que quebra a trilha de auditoria e divida, nao velocidade. |
|
|
76
|
+
| "A conversa lembra em que fase a thread esta" | Conversa termina. O estado mora em disco e e isso que faz qualquer sessao retomar qualquer thread. |
|
|
77
|
+
|
|
78
|
+
## Bandeiras vermelhas
|
|
79
|
+
|
|
80
|
+
- Um diretorio de thread sem `thread.json` ou sem `ledger.jsonl`.
|
|
81
|
+
- Uma skill do catalogo implementando o que o `ork` ja faz, em vez de chamar o comando.
|
|
82
|
+
- Regra de negocio dentro do adaptador de host: validacao de modo, calculo de slug, decisao de gate.
|
|
83
|
+
- Uma entrega mergeada sem relatorio de CHECK, ou uma thread fechada sem MASTER log.
|
|
84
|
+
|
|
85
|
+
## Verificacao antes de sair da skill
|
|
86
|
+
|
|
87
|
+
Manifesto lido, modo da thread conhecido, estado da thread presente em disco, comando `ork` certo
|
|
88
|
+
identificado, e o builder informado em uma linha de em que fase a thread esta e o que acontece
|
|
89
|
+
agora. Ver `DoD 17` e `DoD 20`.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: thread-state
|
|
3
|
+
description: "O estado da thread em disco: thread.json, ledger.jsonl, claims.jsonl, prompts com hash e leases. Roteia para ork thread status, ork phase list e ork board; nenhuma leitura de estado por memoria de conversa."
|
|
4
|
+
bucket: core
|
|
5
|
+
roteia: "ork thread status | ork phase list | ork board"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Thread State
|
|
10
|
+
|
|
11
|
+
## O que esta skill e
|
|
12
|
+
|
|
13
|
+
Um roteador fino sobre o estado que o `ork` mantem em disco. Ela nao inventa formato, nao edita
|
|
14
|
+
arquivo de estado na mao e nao guarda regra: ela diz qual comando le a verdade e chama esse
|
|
15
|
+
comando. **Editar `thread.json` com editor de texto e corromper estado, nao adiantar trabalho.**
|
|
16
|
+
|
|
17
|
+
## Quando usar
|
|
18
|
+
|
|
19
|
+
- Ao retomar uma thread que outra sessao abriu.
|
|
20
|
+
- Antes de qualquer fase, para saber em que ponto do ciclo a thread esta.
|
|
21
|
+
- Quando duas threads parecem estar disputando o mesmo arquivo ou a mesma arvore.
|
|
22
|
+
|
|
23
|
+
## Onde o estado mora
|
|
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
|
+
## Como rotear
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
ork thread list # todas as threads do projeto
|
|
41
|
+
ork thread status <thread> # estado da thread, cruzado com o runtime real
|
|
42
|
+
ork phase list <thread> # o ledger inteiro, evento a evento
|
|
43
|
+
ork claims list <thread> # as alegacoes e o estado de cada uma
|
|
44
|
+
ork lease list # leases, familias e as filas
|
|
45
|
+
ork board # todas as threads em uma visao
|
|
46
|
+
ork memory status # regime de memoria efetivo (files ou orkmind)
|
|
47
|
+
ork recall <thread> --fase <FASE> # resolve os ponteiros do handoff DESTE momento
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## O que o nucleo garante
|
|
51
|
+
|
|
52
|
+
- **Append-only.** O `ledger.jsonl` so cresce. Correcao entra como evento novo, nunca como linha
|
|
53
|
+
reescrita: historico editado deixa de ser historico.
|
|
54
|
+
- **O prompt e artefato, nao lembranca.** Cada sessao grava o prompt exato com `sha256` no nome, e
|
|
55
|
+
o mesmo hash vai ao ledger. Isso e o que permite provar o que foi pedido.
|
|
56
|
+
- **A base e carimbada na criacao.** `thread.json` guarda a branch e o commit de onde a thread
|
|
57
|
+
partiu; e contra esse carimbo que `ork worktree audit` detecta que a base andou.
|
|
58
|
+
- **O estado real vence o estado gravado.** `ork thread status` cruza as sessoes gravadas com o
|
|
59
|
+
runtime; sessao que o `thread.json` diz viva e o runtime nao conhece aparece como divergencia.
|
|
60
|
+
- **A memoria e opcional e declarada.** O handoff carrega o regime (`files` ou `orkmind`) e os
|
|
61
|
+
ponteiros dizem QUANDO devem ser resolvidos. Com OrkMind fora do ar, o mesmo ponteiro resolve
|
|
62
|
+
por `path#ancora`, e nenhum ciclo para por causa disso.
|
|
63
|
+
|
|
64
|
+
## Racionalizacoes comuns
|
|
65
|
+
|
|
66
|
+
| Desculpa | Realidade |
|
|
67
|
+
|---|---|
|
|
68
|
+
| "A conversa ainda tem todo o contexto, nao preciso ler o disco" | Conversa termina e janela rotaciona. Trabalho nao registrado e trabalho nao retomavel e nao auditavel. |
|
|
69
|
+
| "E mais rapido editar o thread.json na mao" | Editar estado na mao corrompe estado. Todo campo tem um comando que o escreve, e o comando tambem registra no ledger. |
|
|
70
|
+
| "Vou consertar o ledger que ficou errado" | O ledger e append-only. Correcao e evento novo. Historico editado nao e mais historico, e narrativa. |
|
|
71
|
+
| "Vou carregar o handoff inteiro na sessao nova" | O handoff separa inline de ponteiro de proposito. `ork recall <thread> --fase <FASE>` traz so o que e daquele momento; o resto continua endereçado, nao perdido. |
|
|
72
|
+
| "Duas threads no mesmo arquivo, mas elas nao se cruzam" | Quem decide isso e o lease, nao a intuicao. `ork lease list` mostra colisao de regiao e a fila. |
|
|
73
|
+
|
|
74
|
+
## Bandeiras vermelhas
|
|
75
|
+
|
|
76
|
+
- Diretorio de thread sem `thread.json` ou sem `ledger.jsonl`.
|
|
77
|
+
- Prompt despachado sem arquivo correspondente em `prompts/` com o sha no nome.
|
|
78
|
+
- Sessao gravada como viva que o runtime nao reconhece.
|
|
79
|
+
- Lease vencido com a thread ainda escrevendo na regiao.
|
|
80
|
+
- Manifesto pedindo `memory.mode: orkmind` com `ork memory status` reportando regime efetivo
|
|
81
|
+
`files`: a memoria semantica nao esta valendo, e o motivo tipado diz por que.
|
|
82
|
+
|
|
83
|
+
## Verificacao antes de sair da skill
|
|
84
|
+
|
|
85
|
+
Thread identificada pelo id, estado lido por comando e nao por memoria, fase atual conhecida, e
|
|
86
|
+
qualquer divergencia entre disco e runtime dita em voz alta. Ver `DoD 4`.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: decision-triage
|
|
3
|
+
description: "A disciplina de delegacao: classifica cada decisao em classe 1 (humano decide), 2 (contrato publico, exige ratificacao) ou 3 (delegada, registrada), e sobe tradeoff real com opcoes e uma recomendacao. Roteia para ork gate approve."
|
|
4
|
+
bucket: governance
|
|
5
|
+
roteia: "ork gate approve <thread> <sobre> --por <quem>"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Decision Triage
|
|
10
|
+
|
|
11
|
+
## O que esta skill e
|
|
12
|
+
|
|
13
|
+
Um roteador fino da disciplina de delegacao. Ela nao decide pelo humano e nao esconde decisao
|
|
14
|
+
atras de "detalhe tecnico": ela classifica, registra o que e delegado e sobe o que e do humano.
|
|
15
|
+
**Decisao delegada sem registro e decisao perdida.**
|
|
16
|
+
|
|
17
|
+
## As tres classes
|
|
18
|
+
|
|
19
|
+
| Classe | Quem decide | O que exige |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| 1 | O humano, sempre | Tradeoff de produto, risco de negocio, prioridade, escopo, dinheiro |
|
|
22
|
+
| 2 | O humano, com ratificacao registrada | Mudanca de contrato publico versionado: schema, tipos de evento, layout de estado, interface |
|
|
23
|
+
| 3 | Delegada ao agente | Escolha interna sem efeito observavel fora do modulo, registrada no ledger quando relevante |
|
|
24
|
+
|
|
25
|
+
## Como rotear
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
ork gate approve <thread> <sobre> --por <quem> # decisao humana registrada
|
|
29
|
+
ork phase list <thread> # a auditoria de delegacao le daqui
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Conduta
|
|
33
|
+
|
|
34
|
+
1. **Classificar antes de agir**, nao depois de ter agido.
|
|
35
|
+
2. **Subir tradeoff com opcoes e exatamente uma recomendacao.** Subir sem recomendacao empurra o
|
|
36
|
+
trabalho de volta ao humano; subir sem opcoes pede assinatura, nao decisao.
|
|
37
|
+
3. **Registrar a classe 3 relevante.** O qualificador carrega peso: formatacao e nome interno
|
|
38
|
+
tambem sao classe 3, e exigir evento para cada um deles e escalacao indevida.
|
|
39
|
+
4. **Auditar os dois lados com peso igual.** Subclassificar (tratar decisao de produto como
|
|
40
|
+
detalhe tecnico) e escalar indevidamente (pedir aval para trivialidade) sao defeitos do mesmo
|
|
41
|
+
tamanho, e a auditoria de CHECK caca os dois.
|
|
42
|
+
5. **Decisao fechada trava.** Reabrir e decisao nova, com registro proprio, nunca edicao silenciosa.
|
|
43
|
+
|
|
44
|
+
## Racionalizacoes comuns
|
|
45
|
+
|
|
46
|
+
| Desculpa | Realidade |
|
|
47
|
+
|---|---|
|
|
48
|
+
| "Isso e detalhe tecnico, decido sozinho" | Se muda o que o usuario ve, o que o produto promete ou o que custa dinheiro, e classe 1. Subclassificar e a forma educada de decidir pelo humano. |
|
|
49
|
+
| "Pergunto tudo, assim ninguem reclama" | Escalacao indevida e defeito de igual peso. Quem pergunta tudo transfere o trabalho e some com a delegacao. |
|
|
50
|
+
| "Subo a duvida e o humano escolhe" | Sem opcoes e sem uma recomendacao, isso e transferir o problema. Traga o mapa e diga por onde ir. |
|
|
51
|
+
| "Mudo o schema, e compativel na pratica" | Contrato publico versionado e classe 2: exige ratificacao registrada antes do merge, mesmo quando parece compativel. |
|
|
52
|
+
| "A decisao mudou, atualizo o texto antigo" | Decisao fechada trava. Reabertura e decisao nova com registro; editar a antiga apaga a razao da primeira. |
|
|
53
|
+
|
|
54
|
+
## Bandeiras vermelhas
|
|
55
|
+
|
|
56
|
+
- Mudanca de contrato publico no diff sem gate de ratificacao no ledger.
|
|
57
|
+
- Uma serie de decisoes de produto aparecendo so no resumo final da fase.
|
|
58
|
+
- Pergunta ao humano sobre nome de variavel enquanto o escopo mudou sem aviso.
|
|
59
|
+
- Decisao registrada em dois lugares com redacoes diferentes.
|
|
60
|
+
|
|
61
|
+
## Verificacao antes de sair da triagem
|
|
62
|
+
|
|
63
|
+
Cada decisao com classe atribuida, as de classe 1 e 2 subidas com opcoes e uma recomendacao, as de
|
|
64
|
+
classe 3 relevantes registradas no ledger, e nenhuma decisao fechada reaberta em silencio. Ver
|
|
65
|
+
`DoD 5`, `DoD 12` e `DoD 20`.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: narrative-guardian
|
|
3
|
+
description: "Auditoria de canon: confere que todo artefato publico do produto diz a mesma coisa que o codigo faz, sem numero sem origem, sem promessa de capacidade inexistente e sem metrica inventada. Roda antes de qualquer publicacao."
|
|
4
|
+
bucket: governance
|
|
5
|
+
roteia: "ork verify <thread> | ork phase list <thread>"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Narrative Guardian
|
|
10
|
+
|
|
11
|
+
## O que esta skill e
|
|
12
|
+
|
|
13
|
+
Um roteador fino da auditoria de canon. Ela compara o que os artefatos publicos afirmam com o que
|
|
14
|
+
o codigo e o ledger provam. **Numero sem origem nao entra em documento publico**, e capacidade que
|
|
15
|
+
nao existe nao vira promessa em README.
|
|
16
|
+
|
|
17
|
+
## Quando usar
|
|
18
|
+
|
|
19
|
+
- Antes de publicar README, doc de produto, changelog, post ou pagina de marketing.
|
|
20
|
+
- Ao fim de toda thread que muda documentacao voltada para fora.
|
|
21
|
+
- Sempre que um artefato cita metrica, tempo, contagem ou comparacao.
|
|
22
|
+
|
|
23
|
+
## Como rotear
|
|
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 --batch # o que ja foi fechado e pode ser citado como entregue
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## As regras do canon
|
|
32
|
+
|
|
33
|
+
1. **Todo numero publicado tem origem colada.** Comando, saida, data. Numero de memoria nao entra.
|
|
34
|
+
2. **Capacidade descrita e capacidade que existe hoje.** Roadmap se escreve como roadmap, no futuro
|
|
35
|
+
declarado, nunca no presente do indicativo.
|
|
36
|
+
3. **Metrica de tempo e cronometrada, nao estimada com otimismo.** A promessa de quinze minutos do
|
|
37
|
+
quickstart vale porque o run foi executado e o registro publicado junto.
|
|
38
|
+
4. **Lacuna e publicada como lacuna.** `unavailable` com o motivo, nunca zero, nunca omissao.
|
|
39
|
+
5. **Divergencia entre doc e codigo e defeito do doc**, e vira tarefa, nao nota de rodape.
|
|
40
|
+
|
|
41
|
+
## Racionalizacoes comuns
|
|
42
|
+
|
|
43
|
+
| Desculpa | Realidade |
|
|
44
|
+
|---|---|
|
|
45
|
+
| "Uns 15 minutos, e mais ou menos isso" | Metrica de tempo e cronometrada. Numero sem origem vira promessa que o primeiro usuario desmente. |
|
|
46
|
+
| "Vai existir na proxima versao, ja escrevo no presente" | Capacidade descrita e capacidade que existe hoje. Roadmap escrito como presente e a mentira que matou o produto original. |
|
|
47
|
+
| "Deixo o campo vazio, ninguem repara" | Lacuna publicada como lacuna. Campo vazio vira zero na proxima leitura, e zero e um dado. |
|
|
48
|
+
| "O doc esta desatualizado, mas o codigo esta certo" | Divergencia entre doc e codigo e defeito do doc, com tarefa propria. Doc errado e o produto errado para quem le. |
|
|
49
|
+
| "Comparei com o concorrente de cabeca" | Comparacao publicada precisa de metodo e data. Sem isso, e propaganda com cara de dado. |
|
|
50
|
+
| "O time todo sabe que esse numero e aproximado" | Quem le de fora nao sabe. Aproximacao publicada declara que e aproximacao. |
|
|
51
|
+
| "Tiro o `unavailable`, fica feio no README" | Feio e o numero falso descoberto depois. A honestidade de medicao e parte do produto, nao um detalhe de formatacao. |
|
|
52
|
+
| "Isso e detalhe de marketing, nao de engenharia" | O artefato publico e superficie do produto. O canon vale igual nos dois lados. |
|
|
53
|
+
|
|
54
|
+
## Bandeiras vermelhas
|
|
55
|
+
|
|
56
|
+
- Numero em documento publico sem comando ou data ao lado.
|
|
57
|
+
- Verbo no presente para funcionalidade de roadmap.
|
|
58
|
+
- Benchmark citado sem maquina, regime e repeticao.
|
|
59
|
+
- Campo de metrica em branco em vez de `unavailable`.
|
|
60
|
+
- Changelog citando entrega sem MASTER log correspondente.
|
|
61
|
+
|
|
62
|
+
## Verificacao antes de publicar
|
|
63
|
+
|
|
64
|
+
Todo numero com origem, toda capacidade conferida contra o codigo, todo tempo cronometrado, toda
|
|
65
|
+
lacuna declarada, e nenhuma divergencia entre o artefato e o que o ledger prova. Ver `TEST 12`,
|
|
66
|
+
`PERF 9` e `PERF 10`.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: roadmap-keeper
|
|
3
|
+
description: "Guardiao do roadmap: toda demanda entra registrada antes de virar thread, toda proposta de auditor vira item com origem, e nada some do escopo sem decisao registrada. Roteia para ork board e 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
|
+
## O que esta skill e
|
|
12
|
+
|
|
13
|
+
Um roteador fino entre a demanda e a thread. Ela nao prioriza no lugar do humano: ela garante que
|
|
14
|
+
toda demanda esteja escrita antes de virar trabalho, com origem, e que nada saia do escopo em
|
|
15
|
+
silencio. **Demanda que vira thread sem estar registrada e trabalho sem dono e sem historia.**
|
|
16
|
+
|
|
17
|
+
## Como rotear
|
|
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 --batch # o que fechou e ainda espera score
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Conduta
|
|
27
|
+
|
|
28
|
+
1. **Registrar antes de abrir.** A demanda entra com titulo, origem e o problema que resolve, e so
|
|
29
|
+
entao vira `ork thread new`.
|
|
30
|
+
2. **Origem sempre.** Pedido do builder, achado de auditor, licao de MASTER log: quem pediu fica
|
|
31
|
+
escrito. Item sem origem nao sabe por que existe e nao sabe quando morrer.
|
|
32
|
+
3. **Proposta de auditor entra como proposta**, nunca como correcao ja aplicada. O auditor le, o
|
|
33
|
+
roadmap decide.
|
|
34
|
+
4. **Item que sai do escopo sai com decisao registrada**, com quem decidiu e por que. Escopo que
|
|
35
|
+
encolhe em silencio e escopo que reaparece como surpresa.
|
|
36
|
+
5. **A capacidade da maquina limita o quadro.** `concurrency.max_parallel_threads` no manifesto e o
|
|
37
|
+
teto real; roadmap que ignora o teto vira fila disfarcada de plano.
|
|
38
|
+
|
|
39
|
+
## Racionalizacoes comuns
|
|
40
|
+
|
|
41
|
+
| Desculpa | Realidade |
|
|
42
|
+
|---|---|
|
|
43
|
+
| "Abro a thread agora e registro depois" | Registrar depois e registrar do jeito que a memoria contar. A demanda entra escrita, com origem, antes de virar trabalho. |
|
|
44
|
+
| "Esse item obviamente saiu do escopo" | Obvio para quem estava na conversa. Saida de escopo e decisao registrada, ou vira surpresa na entrega seguinte. |
|
|
45
|
+
| "O auditor achou, ja corrijo direto" | Auditor propoe, roadmap decide. Correcao aplicada direto por auditor e mudanca sem dono e sem gate. |
|
|
46
|
+
| "Cabe mais uma thread em paralelo, e pequena" | O teto e o do manifesto, medido, nao o do otimismo. Acima dele as threads competem por arvore e por atencao humana. |
|
|
47
|
+
| "Isso e obviamente prioridade, nem precisa perguntar" | Prioridade e decisao de classe 1, do humano. O roadmap organiza a escolha; ele nao faz a escolha. |
|
|
48
|
+
|
|
49
|
+
## Bandeiras vermelhas
|
|
50
|
+
|
|
51
|
+
- Thread aberta sem item de roadmap correspondente.
|
|
52
|
+
- Item sem origem escrita.
|
|
53
|
+
- Achado de auditor aplicado como correcao direta.
|
|
54
|
+
- Escopo reduzido sem registro de quem decidiu.
|
|
55
|
+
- Numero de threads ativas acima do teto do manifesto.
|
|
56
|
+
|
|
57
|
+
## Verificacao antes de sair da skill
|
|
58
|
+
|
|
59
|
+
Demanda registrada com origem, teto de paralelismo respeitado, propostas de auditor tratadas como
|
|
60
|
+
propostas, e toda mudanca de escopo com decisao registrada. Ver `DoD 20` e `REVIEW 11`.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scope-check-capability-map
|
|
3
|
+
description: "Fase 0: antes de abrir a thread, confere se a demanda cabe no que o produto e no que a maquina conseguem fazer, e devolve o que falta em vez de comecar trabalho fadado a parar no meio."
|
|
4
|
+
bucket: governance
|
|
5
|
+
roteia: "ork doctor | ork board plan | ork thread new --dry-run"
|
|
6
|
+
license: MIT
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Scope Check e Capability Map
|
|
10
|
+
|
|
11
|
+
## O que esta skill e
|
|
12
|
+
|
|
13
|
+
Um roteador fino da fase 0. Ela roda antes do GOAL e responde uma pergunta so: **esta demanda cabe
|
|
14
|
+
no que existe hoje?** Se nao cabe, ela devolve o que falta, com nome, antes de qualquer thread
|
|
15
|
+
consumir janela de contexto.
|
|
16
|
+
|
|
17
|
+
## Como rotear
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ork doctor # o que vale nesta maquina agora
|
|
21
|
+
ork board plan # capacidade ocupada e capacidade livre
|
|
22
|
+
ork thread new "<nome>" --mode <modo> --dry-run # ensaio: slug, modo, blocos, sem gravar
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## O mapa de capacidade
|
|
26
|
+
|
|
27
|
+
1. **Capacidade de maquina.** Runtime disponivel, assinatura valida, provider correto. Um `fail` do
|
|
28
|
+
`ork doctor` para o ciclo antes de ele abrir, e isso e economia, nao obstaculo.
|
|
29
|
+
2. **Capacidade de paralelismo.** Threads ativas contra `concurrency.max_parallel_threads`, mais os
|
|
30
|
+
leases que ja estao tomados na regiao que a demanda vai tocar.
|
|
31
|
+
3. **Capacidade de produto.** O que a demanda pede existe no produto, ou e capacidade nova. Se e
|
|
32
|
+
nova, isso e dito no scope check e nao descoberto no GO.
|
|
33
|
+
4. **Capacidade de decisao.** A demanda depende de decisao que so o humano toma? Entao ela nasce
|
|
34
|
+
com o gate previsto, nao com uma surpresa no meio.
|
|
35
|
+
|
|
36
|
+
## O contrato de devolucao
|
|
37
|
+
|
|
38
|
+
Quando a demanda nao cabe, a devolucao **nomeia o que falta e o que destravaria**, em uma linha
|
|
39
|
+
cada. Devolver "nao da" sem o que falta e recusa, nao scope check.
|
|
40
|
+
|
|
41
|
+
## Racionalizacoes comuns
|
|
42
|
+
|
|
43
|
+
| Desculpa | Realidade |
|
|
44
|
+
|---|---|
|
|
45
|
+
| "Comeco e vejo no caminho o que falta" | Descobrir a falta no GO custa a thread inteira. O scope check custa um comando. |
|
|
46
|
+
| "O doctor esta com um fail, mas nao e desse ponto" | Um `fail` do doctor e a maquina dizendo que o despacho nao vale. Abrir mesmo assim gasta janela para parar no mesmo lugar. |
|
|
47
|
+
| "Cabe mais uma thread, dou conta" | Quem da conta e a maquina e o humano que aprova gate, e os dois tem teto medido no manifesto. |
|
|
48
|
+
| "A demanda e vaga, o GOAL esclarece" | GOAL esclarece objetivo, nao existencia de capacidade. Demanda que pede o que nao existe volta antes, com o que falta escrito. |
|
|
49
|
+
|
|
50
|
+
## Bandeiras vermelhas
|
|
51
|
+
|
|
52
|
+
- Thread aberta com `ork doctor` em `fail`.
|
|
53
|
+
- Demanda que pede capacidade inexistente sem isso estar escrito.
|
|
54
|
+
- Regiao de arquivos ja sob lease de outra thread, sem fila prevista.
|
|
55
|
+
- Devolucao sem dizer o que destravaria a demanda.
|
|
56
|
+
|
|
57
|
+
## Verificacao antes de abrir a thread
|
|
58
|
+
|
|
59
|
+
Doctor lido, capacidade de paralelismo conferida, capacidade de produto confirmada ou declarada
|
|
60
|
+
ausente, gates humanos previstos, e ensaio com `--dry-run` mostrando slug, modo e blocos. Ver
|
|
61
|
+
`DoD 17`.
|