@orkastery/cli 0.5.3 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/adapters/README.md +18 -0
  2. package/adapters/claude-code/.claude-plugin/plugin.json +1 -0
  3. package/adapters/claude-code/README.md +195 -5
  4. package/adapters/claude-code/agents/ork-check.md +1 -0
  5. package/adapters/claude-code/agents/ork-go.md +1 -0
  6. package/adapters/claude-code/agents/ork-goal.md +1 -0
  7. package/adapters/claude-code/agents/ork-master.md +1 -0
  8. package/adapters/claude-code/agents/ork-plan.md +1 -0
  9. package/adapters/claude-code/agents/ork-ship.md +1 -0
  10. package/adapters/claude-code/hooks/hooks.json +2 -1
  11. package/adapters/claude-code/hooks/ork-guard.js +15 -1
  12. package/adapters/claude-code/hooks/ork-resposta.js +91 -0
  13. package/adapters/claude-code/hooks/ork-sensor.js +18 -2
  14. package/adapters/claude-code/hooks/quota-signal.js +14 -0
  15. package/adapters/claude-code/mods/autoridade.json +56 -0
  16. package/adapters/claude-code/mods/ork-clima/.claude-plugin/plugin.json +14 -0
  17. package/adapters/claude-code/mods/ork-clima/hooks/contas.ts +283 -0
  18. package/adapters/claude-code/mods/ork-clima/hooks/hooks.json +3 -0
  19. package/adapters/claude-code/mods/ork-clima/hooks/previsao.ts +393 -0
  20. package/adapters/claude-code/mods/ork-clima/hooks/register.ts +205 -0
  21. package/adapters/claude-code/mods/ork-clima/orkastery-mod.json +5 -0
  22. package/adapters/claude-code/mods/ork-clima/types/index.d.ts +80 -0
  23. package/adapters/claude-code/mods/ork-freio/.claude-plugin/plugin.json +14 -0
  24. package/adapters/claude-code/mods/ork-freio/hooks/carga.ts +160 -0
  25. package/adapters/claude-code/mods/ork-freio/hooks/conferencia.ts +309 -0
  26. package/adapters/claude-code/mods/ork-freio/hooks/hooks.json +3 -0
  27. package/adapters/claude-code/mods/ork-freio/hooks/lote.ts +270 -0
  28. package/adapters/claude-code/mods/ork-freio/hooks/register.ts +285 -0
  29. package/adapters/claude-code/mods/ork-freio/orkastery-mod.json +5 -0
  30. package/adapters/claude-code/mods/ork-freio/types/index.d.ts +127 -0
  31. package/adapters/claude-code/mods/ork-mensageiro/.claude-plugin/plugin.json +14 -0
  32. package/adapters/claude-code/mods/ork-mensageiro/hooks/caixa.ts +215 -0
  33. package/adapters/claude-code/mods/ork-mensageiro/hooks/hooks.json +3 -0
  34. package/adapters/claude-code/mods/ork-mensageiro/hooks/painel.tsx +165 -0
  35. package/adapters/claude-code/mods/ork-mensageiro/hooks/recepcao.ts +256 -0
  36. package/adapters/claude-code/mods/ork-mensageiro/hooks/register.tsx +481 -0
  37. package/adapters/claude-code/mods/ork-mensageiro/orkastery-mod.json +5 -0
  38. package/adapters/claude-code/mods/ork-mensageiro/types/index.d.ts +85 -0
  39. package/adapters/claude-code/mods/ork-mesa/.claude-plugin/plugin.json +14 -0
  40. package/adapters/claude-code/mods/ork-mesa/hooks/cartoes.tsx +246 -0
  41. package/adapters/claude-code/mods/ork-mesa/hooks/decidir.ts +110 -0
  42. package/adapters/claude-code/mods/ork-mesa/hooks/fila.ts +253 -0
  43. package/adapters/claude-code/mods/ork-mesa/hooks/hooks.json +3 -0
  44. package/adapters/claude-code/mods/ork-mesa/hooks/obvia.ts +98 -0
  45. package/adapters/claude-code/mods/ork-mesa/hooks/register.tsx +493 -0
  46. package/adapters/claude-code/mods/ork-mesa/orkastery-mod.json +5 -0
  47. package/adapters/claude-code/mods/ork-mesa/types/index.d.ts +131 -0
  48. package/adapters/claude-code/mods/ork-pista/.claude-plugin/plugin.json +14 -0
  49. package/adapters/claude-code/mods/ork-pista/hooks/acoes.ts +71 -0
  50. package/adapters/claude-code/mods/ork-pista/hooks/ci.ts +121 -0
  51. package/adapters/claude-code/mods/ork-pista/hooks/hooks.json +3 -0
  52. package/adapters/claude-code/mods/ork-pista/hooks/pista.tsx +356 -0
  53. package/adapters/claude-code/mods/ork-pista/hooks/register.tsx +439 -0
  54. package/adapters/claude-code/mods/ork-pista/orkastery-mod.json +5 -0
  55. package/adapters/claude-code/mods/ork-pista/types/index.d.ts +85 -0
  56. package/adapters/claude-code/mods/ork-ponte/.claude-plugin/plugin.json +13 -0
  57. package/adapters/claude-code/mods/ork-ponte/hooks/faixa.tsx +57 -0
  58. package/adapters/claude-code/mods/ork-ponte/hooks/guarda.ts +410 -0
  59. package/adapters/claude-code/mods/ork-ponte/hooks/hooks.json +3 -0
  60. package/adapters/claude-code/mods/ork-ponte/hooks/mostrado.ts +55 -0
  61. package/adapters/claude-code/mods/ork-ponte/hooks/nucleo.ts +157 -0
  62. package/adapters/claude-code/mods/ork-ponte/hooks/papel.ts +42 -0
  63. package/adapters/claude-code/mods/ork-ponte/hooks/register.ts +331 -0
  64. package/adapters/claude-code/mods/ork-ponte/hooks/vigia.ts +76 -0
  65. package/adapters/claude-code/mods/ork-ponte/orkastery-mod.json +5 -0
  66. package/adapters/claude-code/mods/ork-ponte/types/index.d.ts +178 -0
  67. package/adapters/claude-code/mods/ork-portao/.claude-plugin/plugin.json +14 -0
  68. package/adapters/claude-code/mods/ork-portao/hooks/hooks.json +3 -0
  69. package/adapters/claude-code/mods/ork-portao/hooks/lease.ts +201 -0
  70. package/adapters/claude-code/mods/ork-portao/hooks/plano.ts +304 -0
  71. package/adapters/claude-code/mods/ork-portao/hooks/register.ts +339 -0
  72. package/adapters/claude-code/mods/ork-portao/hooks/verify.ts +152 -0
  73. package/adapters/claude-code/mods/ork-portao/orkastery-mod.json +5 -0
  74. package/adapters/claude-code/mods/ork-portao/types/index.d.ts +60 -0
  75. package/adapters/claude-code/mods/ork-radar/.claude-plugin/plugin.json +14 -0
  76. package/adapters/claude-code/mods/ork-radar/hooks/colisao.ts +420 -0
  77. package/adapters/claude-code/mods/ork-radar/hooks/hooks.json +3 -0
  78. package/adapters/claude-code/mods/ork-radar/hooks/mapa.tsx +322 -0
  79. package/adapters/claude-code/mods/ork-radar/hooks/register.tsx +470 -0
  80. package/adapters/claude-code/mods/ork-radar/orkastery-mod.json +5 -0
  81. package/adapters/claude-code/mods/ork-radar/types/index.d.ts +72 -0
  82. package/adapters/claude-code/mods/ork-ritual/.claude-plugin/plugin.json +14 -0
  83. package/adapters/claude-code/mods/ork-ritual/hooks/hooks.json +3 -0
  84. package/adapters/claude-code/mods/ork-ritual/hooks/nota.ts +88 -0
  85. package/adapters/claude-code/mods/ork-ritual/hooks/register.tsx +494 -0
  86. package/adapters/claude-code/mods/ork-ritual/hooks/replay.tsx +271 -0
  87. package/adapters/claude-code/mods/ork-ritual/hooks/ritual.ts +218 -0
  88. package/adapters/claude-code/mods/ork-ritual/orkastery-mod.json +5 -0
  89. package/adapters/claude-code/mods/ork-ritual/types/index.d.ts +106 -0
  90. package/adapters/claude-code/mods/ork-sentinela/.claude-plugin/plugin.json +14 -0
  91. package/adapters/claude-code/mods/ork-sentinela/hooks/alertas.ts +85 -0
  92. package/adapters/claude-code/mods/ork-sentinela/hooks/despacho.ts +156 -0
  93. package/adapters/claude-code/mods/ork-sentinela/hooks/hooks.json +3 -0
  94. package/adapters/claude-code/mods/ork-sentinela/hooks/register.ts +511 -0
  95. package/adapters/claude-code/mods/ork-sentinela/hooks/vigia.ts +186 -0
  96. package/adapters/claude-code/mods/ork-sentinela/orkastery-mod.json +5 -0
  97. package/adapters/claude-code/mods/ork-sentinela/types/index.d.ts +65 -0
  98. package/adapters/claude-code/mods/ork-torre/.claude-plugin/plugin.json +14 -0
  99. package/adapters/claude-code/mods/ork-torre/hooks/agenda.ts +60 -0
  100. package/adapters/claude-code/mods/ork-torre/hooks/detalhe.tsx +236 -0
  101. package/adapters/claude-code/mods/ork-torre/hooks/frases.ts +42 -0
  102. package/adapters/claude-code/mods/ork-torre/hooks/hooks.json +3 -0
  103. package/adapters/claude-code/mods/ork-torre/hooks/painel.tsx +344 -0
  104. package/adapters/claude-code/mods/ork-torre/hooks/rede.ts +97 -0
  105. package/adapters/claude-code/mods/ork-torre/hooks/register.tsx +437 -0
  106. package/adapters/claude-code/mods/ork-torre/orkastery-mod.json +5 -0
  107. package/adapters/claude-code/mods/ork-torre/types/index.d.ts +108 -0
  108. package/adapters/codex/skills/ork/SKILL.md +2 -0
  109. package/adapters/hermes/README.md +64 -1
  110. package/adapters/hermes/bin/ork-conhecimento-colecoes.sh +14 -0
  111. package/adapters/hermes/bin/ork-conhecimento-listar.sh +15 -0
  112. package/adapters/hermes/bin/ork-conhecimento-mostrar.sh +16 -0
  113. package/adapters/hermes/bin/ork-conhecimento-verificar.sh +15 -0
  114. package/adapters/hermes/bin/ork-vigia-batida.py +127 -0
  115. package/adapters/hermes/hermes.plugin.json +4 -0
  116. package/adapters/hermes/hitl-ingress/__init__.py +101 -8
  117. package/adapters/hermes/skills/orkastery-devmaster/SKILL.md +3 -3
  118. package/adapters/openclaw/README.md +83 -10
  119. package/adapters/openclaw/bin/ork-vigia-batida.js +86 -0
  120. package/adapters/openclaw/dist/hitl-ingress.js +106 -9
  121. package/adapters/openclaw/dist/index.js +86 -0
  122. package/adapters/openclaw/openclaw.plugin.json +34 -4
  123. package/adapters/openclaw/package.json +2 -2
  124. package/adapters/openclaw/src/hitl-ingress.ts +103 -9
  125. package/adapters/openclaw/src/index.ts +94 -0
  126. package/assets/adapters-en/claude-code/README.md +403 -0
  127. package/assets/adapters-en/claude-code/agents/ork-check.md +33 -0
  128. package/assets/adapters-en/claude-code/agents/ork-go.md +33 -0
  129. package/assets/adapters-en/claude-code/agents/ork-goal.md +34 -0
  130. package/assets/adapters-en/claude-code/agents/ork-master.md +35 -0
  131. package/assets/adapters-en/claude-code/agents/ork-plan.md +33 -0
  132. package/assets/adapters-en/claude-code/agents/ork-ship.md +33 -0
  133. package/assets/adapters-en/claude-code/commands/check.md +46 -0
  134. package/assets/adapters-en/claude-code/commands/go.md +46 -0
  135. package/assets/adapters-en/claude-code/commands/goal.md +55 -0
  136. package/assets/adapters-en/claude-code/commands/master.md +54 -0
  137. package/assets/adapters-en/claude-code/commands/onboarding.md +22 -0
  138. package/assets/adapters-en/claude-code/commands/ork.md +126 -0
  139. package/assets/adapters-en/claude-code/commands/plan.md +47 -0
  140. package/assets/adapters-en/claude-code/commands/ship.md +45 -0
  141. package/assets/adapters-en/codex/skills/ork/SKILL.md +85 -0
  142. package/assets/adapters-en/hermes/README.md +273 -0
  143. package/assets/adapters-en/hermes/skills/orkastery-devmaster/SKILL.md +169 -0
  144. package/assets/docs-en/markdownlint-cli2.jsonc +22 -0
  145. package/assets/docs-en/padroes/documentacao-de-produto.md +135 -0
  146. package/assets/docs-en/padroes/roadmap-de-produto.md +100 -0
  147. package/assets/docs-en/produto/README.md +14 -0
  148. package/assets/docs-en/produto/_modelo-feature.md +62 -0
  149. package/assets/docs-en/roadmap/README.md +14 -0
  150. package/assets/docs-en/roadmap/_modelo-item.md +75 -0
  151. package/assets/references-en/README.md +25 -0
  152. package/assets/references-en/code-review-axes.md +82 -0
  153. package/assets/references-en/definition-of-done.md +74 -0
  154. package/assets/references-en/performance-checklist.md +53 -0
  155. package/assets/references-en/security-checklist.md +101 -0
  156. package/assets/references-en/testing-patterns.md +51 -0
  157. package/assets/security-scan/defaults/.golangci.yml +2 -0
  158. package/assets/security-scan/defaults/eslint.config.mjs +11 -0
  159. package/assets/security-scan/defaults/gitleaks.toml +3 -0
  160. package/assets/security-scan/defaults/ruff.toml +1 -0
  161. package/assets/security-scan/tools-agil.json +87 -0
  162. package/assets/security-scan/tools.json +625 -0
  163. package/assets/skills-en/core/onboarding/SKILL.md +58 -0
  164. package/assets/skills-en/core/orkastery-bootstrap/SKILL.md +119 -0
  165. package/assets/skills-en/core/thread-state/SKILL.md +88 -0
  166. package/assets/skills-en/governance/decision-triage/SKILL.md +65 -0
  167. package/assets/skills-en/governance/narrative-guardian/SKILL.md +66 -0
  168. package/assets/skills-en/governance/roadmap-keeper/SKILL.md +60 -0
  169. package/assets/skills-en/governance/scope-check-capability-map/SKILL.md +71 -0
  170. package/assets/skills-en/observability/thread-tracing/SKILL.md +63 -0
  171. package/assets/skills-en/phases/check-quality/SKILL.md +103 -0
  172. package/assets/skills-en/phases/go-implementation/SKILL.md +78 -0
  173. package/assets/skills-en/phases/goal-definition/SKILL.md +69 -0
  174. package/assets/skills-en/phases/master-metrics/SKILL.md +72 -0
  175. package/assets/skills-en/phases/plan-specification/SKILL.md +67 -0
  176. package/assets/skills-en/phases/security-remediation/SKILL.md +70 -0
  177. package/assets/skills-en/phases/ship-release/SKILL.md +71 -0
  178. package/assets/skills-en/reviewers/code-reviewer/SKILL.md +61 -0
  179. package/assets/skills-en/reviewers/security-auditor/SKILL.md +93 -0
  180. package/assets/skills-en/reviewers/test-engineer/SKILL.md +66 -0
  181. package/assets/skills-en/reviewers/web-performance-auditor/SKILL.md +63 -0
  182. package/dist/adapters/claude-bg.js +193 -15
  183. package/dist/adapters/codex-controller-worker.js +12 -5
  184. package/dist/adapters/codex-events.js +16 -4
  185. package/dist/adapters/codex.js +13 -2
  186. package/dist/agents-md.js +24 -15
  187. package/dist/atualizar-branch.js +245 -0
  188. package/dist/auditoria.js +13 -11
  189. package/dist/auditrun.js +68 -48
  190. package/dist/autorizacao-duravel.js +327 -0
  191. package/dist/board.js +98 -43
  192. package/dist/branch-de-estado.js +39 -9
  193. package/dist/busca-semantica.js +7 -5
  194. package/dist/catalogo.js +35 -1
  195. package/dist/changelog-reconciliacao.js +290 -0
  196. package/dist/check-agil.js +500 -0
  197. package/dist/check-modo.js +41 -0
  198. package/dist/check-paralelo.js +183 -0
  199. package/dist/ci.js +255 -46
  200. package/dist/ciclos.js +8 -6
  201. package/dist/claim-lint.js +12 -8
  202. package/dist/claims-conferir.js +350 -0
  203. package/dist/claims.js +13 -10
  204. package/dist/company-brain-client.js +45 -3
  205. package/dist/company-brain-journal.js +2 -1
  206. package/dist/company-brain-migration.js +47 -6
  207. package/dist/conducao-batida.js +759 -0
  208. package/dist/conducao-sentinela.js +405 -0
  209. package/dist/conducao-texto.js +12 -18
  210. package/dist/conducao.js +206 -59
  211. package/dist/conhecimento-consulta.js +270 -0
  212. package/dist/conhecimento.js +514 -0
  213. package/dist/conta-esgotada.js +127 -0
  214. package/dist/dado-privado.js +816 -0
  215. package/dist/decisao-autonoma.js +5 -4
  216. package/dist/demo.js +14 -12
  217. package/dist/dependencias-da-worktree.js +25 -0
  218. package/dist/divida.js +38 -36
  219. package/dist/docs.js +103 -82
  220. package/dist/doctor-forja.js +345 -0
  221. package/dist/doctor-pulse-cron.js +294 -27
  222. package/dist/doctor-rede.js +18 -17
  223. package/dist/doctor.js +278 -116
  224. package/dist/dsn-da-memoria.js +417 -0
  225. package/dist/entrega-por-mod.js +503 -0
  226. package/dist/entrega-pr.js +158 -57
  227. package/dist/escopo-escrita.js +10 -1
  228. package/dist/esgotamentos.js +13 -11
  229. package/dist/estado-thread.js +42 -17
  230. package/dist/evalrunner.js +35 -32
  231. package/dist/experiencia-instalacao.js +45 -25
  232. package/dist/fabrica-batida.js +323 -0
  233. package/dist/fabrica-estado.js +49 -16
  234. package/dist/fabrica-publicar.js +3 -1
  235. package/dist/fila-pesada.js +444 -0
  236. package/dist/fix.js +24 -21
  237. package/dist/forja/adaptador.js +6 -0
  238. package/dist/forja/ambiente-de-ci.js +27 -0
  239. package/dist/forja/api.js +256 -0
  240. package/dist/forja/cache.js +89 -0
  241. package/dist/forja/cli.js +60 -0
  242. package/dist/forja/contrato.js +9 -0
  243. package/dist/forja/endereco.js +43 -0
  244. package/dist/forja/estado.js +22 -0
  245. package/dist/forja/executor.js +73 -0
  246. package/dist/forja/github/ci.js +95 -0
  247. package/dist/forja/github/dono-da-rede.js +18 -0
  248. package/dist/forja/github/metadados.js +15 -0
  249. package/dist/forja/github/pedidos.js +200 -0
  250. package/dist/forja/gitlab/ci.js +141 -0
  251. package/dist/forja/gitlab/consultas.js +59 -0
  252. package/dist/forja/gitlab/dono-da-rede.js +43 -0
  253. package/dist/forja/gitlab/metadados.js +15 -0
  254. package/dist/forja/gitlab/pedidos-abertos.js +158 -0
  255. package/dist/forja/gitlab/pedidos.js +141 -0
  256. package/dist/forja/produtor.js +32 -0
  257. package/dist/forja/registro.js +31 -0
  258. package/dist/forja/resolver.js +121 -0
  259. package/dist/forja/texto.js +13 -0
  260. package/dist/forja/versao.js +71 -0
  261. package/dist/forja.js +124 -81
  262. package/dist/gates.js +3 -28
  263. package/dist/handoff.js +33 -19
  264. package/dist/hitl-contract.js +46 -43
  265. package/dist/hitl-curto.js +37 -25
  266. package/dist/hitl-gates.js +13 -11
  267. package/dist/hitl-local-receipt.js +53 -0
  268. package/dist/hitl-local.js +11 -2
  269. package/dist/hitl-lock.js +5 -11
  270. package/dist/hitl-public-receipt.js +11 -0
  271. package/dist/hitl-resumo.js +72 -3
  272. package/dist/hitl-sessions.js +62 -9
  273. package/dist/hitl-tempo-parado.js +4 -4
  274. package/dist/hitl-texto-livre.js +7 -4
  275. package/dist/hitl.js +63 -64
  276. package/dist/horario.js +30 -7
  277. package/dist/hosts.js +155 -134
  278. package/dist/impedimento.js +108 -14
  279. package/dist/index.js +1421 -1019
  280. package/dist/indice-vetorial.js +14 -12
  281. package/dist/indice.js +7 -1
  282. package/dist/init.js +54 -49
  283. package/dist/instabilidade.js +144 -0
  284. package/dist/integracoes-locais.js +4 -0
  285. package/dist/intelligence-graph-cli.js +213 -88
  286. package/dist/intelligence-graph-contexto.js +56 -17
  287. package/dist/intelligence-graph-contract.js +2 -1
  288. package/dist/intelligence-graph-extract-md.js +56 -4
  289. package/dist/intelligence-graph-extract-ts.js +71 -3
  290. package/dist/intelligence-graph-query.js +96 -34
  291. package/dist/leases.js +19 -18
  292. package/dist/ledger-stats.js +17 -16
  293. package/dist/ledger.js +46 -2
  294. package/dist/licoes.js +12 -11
  295. package/dist/liveness.js +6 -3
  296. package/dist/locale-accounts.js +220 -0
  297. package/dist/locale-adapter.js +291 -0
  298. package/dist/locale-ajuda.js +833 -0
  299. package/dist/locale-audit.js +199 -0
  300. package/dist/locale-claims.js +213 -0
  301. package/dist/locale-conducao.js +138 -0
  302. package/dist/locale-conhecimento.js +181 -0
  303. package/dist/locale-decisao.js +205 -0
  304. package/dist/locale-docs.js +230 -0
  305. package/dist/locale-estado.js +101 -0
  306. package/dist/locale-forja.js +290 -0
  307. package/dist/locale-gerados.js +165 -0
  308. package/dist/locale-grafo.js +129 -0
  309. package/dist/locale-master.js +182 -0
  310. package/dist/locale-network.js +524 -0
  311. package/dist/locale-onboarding.js +92 -0
  312. package/dist/locale-operacao-restante.js +931 -0
  313. package/dist/locale-phase.js +151 -0
  314. package/dist/locale-projetos.js +100 -0
  315. package/dist/locale-prompts.js +194 -0
  316. package/dist/locale-pulse.js +349 -0
  317. package/dist/locale-reservas.js +87 -0
  318. package/dist/locale-retry.js +524 -0
  319. package/dist/locale-roadmap.js +102 -0
  320. package/dist/locale-security-scan.js +69 -0
  321. package/dist/locale-setup.js +192 -0
  322. package/dist/locale-ship.js +597 -0
  323. package/dist/locale-thread.js +421 -0
  324. package/dist/locale-verify.js +201 -0
  325. package/dist/locale-worktree.js +246 -0
  326. package/dist/locale.js +1258 -0
  327. package/dist/maestro-runtime.js +22 -3
  328. package/dist/manifest.js +415 -13
  329. package/dist/maquina-ociosa.js +211 -0
  330. package/dist/maquina.js +31 -7
  331. package/dist/master-digest.js +6 -1
  332. package/dist/master-nota-local.js +200 -0
  333. package/dist/master-nota.js +14 -8
  334. package/dist/master.js +139 -65
  335. package/dist/mcp-artifacts.js +11 -2
  336. package/dist/mcp-conhecimento.js +52 -0
  337. package/dist/mcp-experiencia.js +26 -5
  338. package/dist/mcp-git.js +23 -6
  339. package/dist/mcp-grafo.js +7 -4
  340. package/dist/mcp-install.js +73 -8
  341. package/dist/mcp-noctum.js +101 -0
  342. package/dist/mcp-server.js +90 -16
  343. package/dist/mcp-ship-transporte.js +977 -0
  344. package/dist/mcp-ship.js +71 -25
  345. package/dist/mcp-transportes.js +17 -0
  346. package/dist/mcp-verify.js +6 -1
  347. package/dist/memoria.js +63 -58
  348. package/dist/modos-migracao.js +8 -6
  349. package/dist/modos.js +20 -24
  350. package/dist/network-roadmap.js +90 -51
  351. package/dist/noctum-aceite.js +789 -0
  352. package/dist/noctum-arco.js +1418 -0
  353. package/dist/noctum-capacidade.js +141 -0
  354. package/dist/noctum-changelog.js +399 -0
  355. package/dist/noctum-cli.js +482 -0
  356. package/dist/noctum-coordenacao.js +1225 -0
  357. package/dist/noctum-entrega.js +1169 -0
  358. package/dist/noctum-envelope.js +1046 -0
  359. package/dist/noctum-execucao.js +376 -0
  360. package/dist/noctum-fechamento.js +405 -0
  361. package/dist/noctum-fila.js +314 -0
  362. package/dist/noctum-guarda.js +256 -0
  363. package/dist/noctum-integracao.js +507 -0
  364. package/dist/noctum-maquinas.js +383 -0
  365. package/dist/noctum-medicao.js +450 -0
  366. package/dist/noctum-modo.js +362 -0
  367. package/dist/noctum-pergunta-canal.js +96 -0
  368. package/dist/noctum-pergunta.js +115 -0
  369. package/dist/noctum-provas.js +838 -0
  370. package/dist/noctum-reconciliacao.js +591 -0
  371. package/dist/noctum-registro.js +215 -0
  372. package/dist/noctum-relatorio.js +827 -0
  373. package/dist/noctum-resposta.js +207 -0
  374. package/dist/noctum-sessoes-em-voo.js +93 -0
  375. package/dist/noctum-supervisao.js +649 -0
  376. package/dist/noctum-terminal.js +459 -0
  377. package/dist/noctum-transporte.js +655 -0
  378. package/dist/noctum-vigia.js +639 -0
  379. package/dist/ocupacao.js +32 -3
  380. package/dist/onboarding.js +56 -26
  381. package/dist/orkmind.js +48 -25
  382. package/dist/orquestracao.js +44 -47
  383. package/dist/parado-no-condutor.js +174 -127
  384. package/dist/phase.js +144 -63
  385. package/dist/policies.js +37 -4
  386. package/dist/portfolio.js +4 -2
  387. package/dist/postura-local.js +235 -0
  388. package/dist/preflight.js +11 -10
  389. package/dist/procedencia.js +220 -0
  390. package/dist/projeto-alvo.js +186 -24
  391. package/dist/prompts.js +140 -42
  392. package/dist/prova-minima.js +5 -6
  393. package/dist/pulse-cadencia.js +5 -4
  394. package/dist/pulse-consentimento.js +53 -1
  395. package/dist/pulse-delivery.js +151 -24
  396. package/dist/pulse-resposta.js +368 -4
  397. package/dist/pulse.js +188 -22
  398. package/dist/ratelimit.js +16 -6
  399. package/dist/recall.js +14 -13
  400. package/dist/redacao-saida.js +63 -0
  401. package/dist/rede-adesao.js +13 -8
  402. package/dist/rede-forja.js +108 -24
  403. package/dist/rede-status.js +66 -47
  404. package/dist/rede.js +86 -46
  405. package/dist/retomada-checkpoint.js +101 -0
  406. package/dist/retry.js +451 -212
  407. package/dist/roadmap-reservas.js +45 -28
  408. package/dist/roadmap-status.js +129 -33
  409. package/dist/runtime-ambiente.js +5 -0
  410. package/dist/runtime-context.js +284 -32
  411. package/dist/runtime-escada.js +423 -0
  412. package/dist/runtime-profiles.js +103 -46
  413. package/dist/runtimes.js +2 -1
  414. package/dist/saida-segura.js +3 -2
  415. package/dist/security-scan/agil.js +355 -0
  416. package/dist/security-scan/cli.js +76 -0
  417. package/dist/security-scan/compare.js +149 -0
  418. package/dist/security-scan/config.js +93 -0
  419. package/dist/security-scan/detect.js +97 -0
  420. package/dist/security-scan/executor.js +188 -0
  421. package/dist/security-scan/guard.js +180 -0
  422. package/dist/security-scan/imagem-de-lint.js +96 -0
  423. package/dist/security-scan/normalize/actionlint.js +12 -0
  424. package/dist/security-scan/normalize/eslint.js +12 -0
  425. package/dist/security-scan/normalize/gitleaks.js +13 -0
  426. package/dist/security-scan/normalize/golangci-lint.js +13 -0
  427. package/dist/security-scan/normalize/govulncheck.js +36 -0
  428. package/dist/security-scan/normalize/index.js +25 -0
  429. package/dist/security-scan/normalize/npm-audit.js +30 -0
  430. package/dist/security-scan/normalize/osv-scanner.js +32 -0
  431. package/dist/security-scan/normalize/oxlint.js +51 -0
  432. package/dist/security-scan/normalize/pip-audit.js +16 -0
  433. package/dist/security-scan/normalize/ruff.js +12 -0
  434. package/dist/security-scan/normalize/semgrep.js +20 -0
  435. package/dist/security-scan/normalize/trivy.js +33 -0
  436. package/dist/security-scan/normalize/util.js +204 -0
  437. package/dist/security-scan/normalize/zizmor.js +19 -0
  438. package/dist/security-scan/report.js +156 -0
  439. package/dist/security-scan/run.js +448 -0
  440. package/dist/security-scan/tools.js +62 -0
  441. package/dist/security-scan/trabalhador.js +74 -0
  442. package/dist/security-scan/types.js +15 -0
  443. package/dist/session-events.js +26 -5
  444. package/dist/session-watcher-claude.js +81 -20
  445. package/dist/session-watcher.js +340 -42
  446. package/dist/sessoes-contas.js +10 -1
  447. package/dist/sessoes-inventario.js +1 -1
  448. package/dist/sessoes.js +25 -23
  449. package/dist/setup.js +59 -58
  450. package/dist/ship-publicar.js +971 -0
  451. package/dist/ship.js +243 -97
  452. package/dist/steal.js +77 -0
  453. package/dist/superficie.js +14 -11
  454. package/dist/thread-close.js +12 -11
  455. package/dist/thread.js +274 -100
  456. package/dist/tokens.js +15 -11
  457. package/dist/trabalho-thread.js +297 -0
  458. package/dist/transporte-do-canal.js +189 -0
  459. package/dist/types.js +12 -1
  460. package/dist/util.js +13 -3
  461. package/dist/varredura-acoes.js +507 -0
  462. package/dist/verify.js +608 -76
  463. package/dist/vida-da-thread.js +254 -0
  464. package/dist/worktree-local.js +167 -0
  465. package/dist/worktree.js +99 -83
  466. package/dist/yaml.js +27 -8
  467. package/eval/casos/check-quality.json +77 -0
  468. package/eval/casos/security-auditor.json +148 -0
  469. package/eval/casos/security-remediation.json +161 -0
  470. package/eval/fixtures/security-scan/README.md +8 -0
  471. package/eval/fixtures/security-scan/go/.github/workflows/ci.yml +12 -0
  472. package/eval/fixtures/security-scan/go/Dockerfile +4 -0
  473. package/eval/fixtures/security-scan/go/README.md +4 -0
  474. package/eval/fixtures/security-scan/go/config.go +4 -0
  475. package/eval/fixtures/security-scan/go/go.mod +5 -0
  476. package/eval/fixtures/security-scan/go/go.sum +2 -0
  477. package/eval/fixtures/security-scan/go/main.go +31 -0
  478. package/eval/fixtures/security-scan/js/.github/workflows/ci.yml +12 -0
  479. package/eval/fixtures/security-scan/js/Dockerfile +3 -0
  480. package/eval/fixtures/security-scan/js/README.md +4 -0
  481. package/eval/fixtures/security-scan/js/package-lock.json +844 -0
  482. package/eval/fixtures/security-scan/js/package.json +10 -0
  483. package/eval/fixtures/security-scan/js/src/config.js +4 -0
  484. package/eval/fixtures/security-scan/js/src/server.js +17 -0
  485. package/eval/fixtures/security-scan/js/src/util.ts +4 -0
  486. package/eval/fixtures/security-scan/js/tsconfig.json +4 -0
  487. package/eval/fixtures/security-scan/python/.github/workflows/ci.yml +12 -0
  488. package/eval/fixtures/security-scan/python/Dockerfile +3 -0
  489. package/eval/fixtures/security-scan/python/README.md +4 -0
  490. package/eval/fixtures/security-scan/python/app/__init__.py +0 -0
  491. package/eval/fixtures/security-scan/python/app/config.py +2 -0
  492. package/eval/fixtures/security-scan/python/app/main.py +19 -0
  493. package/eval/fixtures/security-scan/python/requirements.txt +1 -0
  494. package/package.json +9 -4
  495. package/references/security-checklist.md +3 -3
  496. package/schemas/code-artifact-graph.v1.schema.json +2 -1
  497. package/skills/README.md +1 -0
  498. package/skills/core/orkastery-bootstrap/SKILL.md +2 -2
  499. package/skills/phases/check-quality/SKILL.md +16 -0
  500. package/skills/phases/go-implementation/SKILL.md +6 -0
  501. package/skills/phases/security-remediation/SKILL.md +70 -0
  502. package/skills/reviewers/security-auditor/SKILL.md +25 -0
@@ -0,0 +1,100 @@
1
+ # Software product roadmap standard
2
+
3
+ > Version 1.1 · Applies to: initiatives, epics, features and changes · Companion document: [Product documentation standard](documentacao-de-produto.md)
4
+ >
5
+ > Version 1.1 keeps 1.0 and adds section 6 (three readers and SDLC facts) and the template frontmatter, which `ork docs verificar` checks.
6
+
7
+ The frontmatter keys and values, the section titles of the page templates and the `> **Em uma frase:**` line stay in Portuguese in every language, because they are the contract that `ork docs verificar` reads.
8
+
9
+ ## 1. Purpose and tracking unit
10
+
11
+ This standard records **why to change, what is meant to be delivered, how to validate it and what the real state of execution is**. Use one item per traceable investment/delivery decision. Initiatives can contain epics, and epics can contain features; each item has its own ID and points to its parent item. An implemented feature points to its `FEAT-ID` specification. Do not replicate extensive technical fields of the product in the roadmap: keep links to the canonical documentation.
12
+
13
+ The roadmap is a planning view subject to revision. Dates, priorities and scope are commitments only when explicitly approved and identified as such. Mark estimates and hypotheses as such.
14
+
15
+ ## 2. Common rules
16
+
17
+ | Rule | How to apply |
18
+ | --- | --- |
19
+ | ID and links | Use a stable `RM-001`; state the parent, affected features and links to specifications, ADRs, issue, PR, tests and release. |
20
+ | Outcome | Spell out the problem, audience, objective, measurable hypothesis, baseline, target, window and source of the metric. |
21
+ | Prioritization | Record method, criteria, score and date; priority is distinct from urgency and does not replace a rationale. |
22
+ | Scope | Separate what is included, what is excluded, dependencies and assumptions. Scope changes call for a decision record. |
23
+ | Dates | Distinguish target, forecast and actual date; use ISO 8601, time zone and confidence level. Never infer progress from the date. |
24
+ | Evidence | Give the source and date of each status. Merged PR, deploy and availability to users are distinct facts. |
25
+ | Responsibility | Name a human owner for decision, execution and validation. AI agents can draft, verify or execute within recorded autonomy; assign review and the final decision to people. |
26
+ | Gaps | Use `To be defined` with an owner and a deadline; for an irrelevant section, `Not applicable: reason`. Do not make up status or metrics. |
27
+
28
+ ## 3. Roadmap item categories
29
+
30
+ ### 3.1 Identification and positioning
31
+
32
+ Record `ID`, `outcome-oriented title`, `type` (initiative, epic, feature or improvement; the `categoria` key takes `iniciativa`, `épico`, `feature` or `melhoria`), `parent item`, `platform`, `system`, `module`, `affected features`, `audience`, `requesting area`, `canonical links` and `page version`. The architectural hierarchy describes where the change happens; the roadmap hierarchy describes how it is planned.
33
+
34
+ ### 3.2 Problem, objective and hypothesis
35
+
36
+ Record `problem/opportunity`, `evidence`, `objective/OKR`, `hypothesis in the form If... then... because...`, `main metric`, `guardrail metrics`, `baseline`, `target`, `observation window`, `analysis segment` and `data source`. Without a known baseline, define how it will be measured before declaring success.
37
+
38
+ ### 3.3 Scope, deliverables and validation
39
+
40
+ Record `included scope`, `out of scope`, `deliverables`, `affected use cases`, `acceptance criteria`, `experiment/pilot`, `measurement plan`, `criteria to expand/stop`, `operational enablement` and `required documentation`. Point to the IDs of rules, contracts and tests in the product documentation.
41
+
42
+ ### 3.4 Prioritization and planning
43
+
44
+ Record `priority`, `method/score` (for example RICE, with explicit factors), `rationale`, `urgency`, `horizon` (Now/Next/Later or quarter), `target date`, `forecast`, `confidence`, `milestones`, `estimated capacity/cost` and `trade-offs`. A score without criteria and a date is not reproducible.
45
+
46
+ ### 3.5 Dependencies, risks and decisions
47
+
48
+ Record `dependencies with IDs and owners`, `blockers`, `assumptions not yet validated`, `risks with probability/impact`, `mitigation/contingency`, `product decisions`, `technical ADR`, `discarded alternatives`, `date/decider` and `review trigger`. An ADR is a decision record that can be superseded by another; preserve the history, without erasing earlier decisions.
49
+
50
+ ### 3.6 Lifecycle and independent states
51
+
52
+ Do not use a single field to hide differences between plan, code and delivery. Update each dimension separately:
53
+
54
+ | Dimension | Recommended values | Minimum evidence |
55
+ | --- | --- | --- |
56
+ | Item lifecycle | `Discovery` → `Backlog` → `Refinamento` (refinement) → `Pronto para desenvolvimento` (ready for development) → `Em desenvolvimento` (in development) → `Em validação` (in validation) → `Piloto` (pilot) → `Disponível` (available) → `Concluído` (done); side states: `Bloqueado` (blocked), `Cancelado` (canceled), `Descontinuado` (discontinued) | Decision, milestone or delivery with date and owner. |
57
+ | Documentation | `Rascunho` (draft), `Em revisão` (in review), `Aprovada` (approved), `Desatualizada` (outdated) | Link, version and reviewer. |
58
+ | Code | `Não iniciado` (not started), `Branch criada` (branch created), `PR aberto` (PR open), `Mesclado` (merged) | Repository, branch/PR and commit. |
59
+ | Tests | `Não iniciados` (not started), `Em execução` (running), `Aprovados` (passing), `Falhando` (failing) | Run and date; coverage, if relevant. |
60
+ | Deploy | `Não implantado` (not deployed), `Dev`, `Staging`, `Produção` (production) | Pipeline, release and actual date. |
61
+ | Exposure | `Flag desligada` (flag off), `Piloto/Canary` (pilot/canary), `Parcial` (partial), `Geral` (general) | Configuration per environment/cohort and verification. |
62
+ | Enablement | `Pendente` (pending), `Em andamento` (in progress), `Concluída` (done) | Communication, training or published material. |
63
+
64
+ `Bloqueado` requires a reason, a dependency, an owner and a next review. `Concluído` requires met acceptance criteria, evidence of availability and a record of the initial measurement or a post-launch evaluation plan. Status must not be updated merely because time has passed.
65
+
66
+ ### 3.7 Owners and collaboration between people and agents
67
+
68
+ Record `PM/PO accountable`, `technical lead`, `implementing engineer`, `QA/validator`, `sponsor`, `consulted`, `informed`, `channel`, `planning agent`, `execution agent`, `validation agent`, `allowed autonomy`, `human reviewer` and `RACI`. Separate an agent's contribution from the person who approves; document the actions taken and the evidence, without attributing decisions to an agent by default.
69
+
70
+ ## 4. Roadmap item template
71
+
72
+ Copy [the template](../roadmap/_modelo-item.md) for each item. The frontmatter holds the seven dimensions of section 3.6 with the standard's exact values, and the checker enforces coherence between them:
73
+
74
+ | Coherence rule | Why |
75
+ | --- | --- |
76
+ | `ciclo: Concluído` requires `codigo: Mesclado` and `testes: Aprovados` | done without code on the base branch is a promise |
77
+ | `deploy: Produção` requires `codigo: Mesclado` | you do not deploy what has not been merged |
78
+ | `codigo: Mesclado` requires `evidencias.codigo.commit` **on the base branch** | a merge is proven by git, not by declaration |
79
+ | `ciclo: Bloqueado` requires the `bloqueio` map (reason, dependency, owner, next review) | a blocker without an owner does not get cleared |
80
+
81
+ ## 5. Cadence and consistency
82
+
83
+ Revisit active items at the team's cadence and always after a decision, relevant PR, test, deploy, flag change or outcome measurement. At each review, compare roadmap, feature documentation, code, contracts and production evidence; note divergences with an owner and a deadline. Agents can suggest status updates from repository events, but a merged PR updates only the **code** dimension until deploy and exposure are proven. Record the update date and keep a history of decisions and scope changes.
84
+
85
+ In Orkastery, `ork docs sincronizar` is that agent: it updates `estado.codigo` and `evidencias.codigo.commit` from the ledger (`ship_done`) and git, and the `sdlc` section from the thread. **It never touches lifecycle, documentation, deploy, exposure or enablement**: those dimensions are a person's decision, and the checker only requires them to be coherent with the code. In a thread's worktree, it only touches that thread's item and the indexes, so that one thread's PR does not change another thread's item; `--so RM-NNN` picks the items, and `--todos` (the default at the project root, where the conductor syncs after the merge) goes back to all of them.
86
+
87
+ ## 6. Three readers and SDLC facts (Orkastery adaptation)
88
+
89
+ The reading rules of the [documentation standard](documentacao-de-produto.md#6-three-readers-and-sdlc-facts-orkastery-adaptation) apply here: answer first, state at a glance, one idea per line, sections with fixed names, frontmatter for agents.
90
+
91
+ What changes in the roadmap is the `sdlc` block, which ties the item to the Orkastery method **with product facts only**:
92
+
93
+ | Key | Content | Who fills it in |
94
+ | --- | --- | --- |
95
+ | `sdlc.thread` | ID of the thread that delivers the item | a person, when opening the thread |
96
+ | `sdlc.modo` | `#Classic`, `#Maestro` or `#Auto` | a person |
97
+ | `sdlc.fase`, `sdlc.status` | current phase and status of the thread | `ork docs sincronizar` |
98
+ | `sdlc.check` | latest verdict of the independent CHECK | a person, based on the assessment |
99
+
100
+ Conduction micro-decisions (re-registered claims, a GO-FIX for a test, a session that dropped) **stay out of the item**: they live in the thread's ledger, which is the method's audit record.
@@ -0,0 +1,14 @@
1
+ # Product documentation
2
+
3
+ > **In one sentence:** what the product is and does today, one page per entity, checked against the code on every PR.
4
+
5
+ - **Standard:** [product documentation](../padroes/documentacao-de-produto.md) · **Companion:** [roadmap](../roadmap/README.md)
6
+ - **Hierarchy:** platform (`PLAT`) → system (`SYS`) → module (`MOD`) → feature (`FEAT`)
7
+ - **New page:** copy [the template](_modelo-feature.md) and run `ork docs verificar`
8
+
9
+ ## Index
10
+
11
+ Generated by `ork docs sincronizar` from the frontmatter of each page, with the column labels in Portuguese.
12
+
13
+ <!-- ork-docs:indice:inicio -->
14
+ <!-- ork-docs:indice:fim -->
@@ -0,0 +1,62 @@
1
+ ---
2
+ id: FEAT-000
3
+ tipo: feature
4
+ titulo: <Feature name>
5
+ estado: proposto
6
+ pai: MOD-00
7
+ roadmap: [RM-000]
8
+ owner: <name>
9
+ aprovador: <name>
10
+ verificado_em: 2026-01-01T00:00:00-03:00
11
+ versao: main@0000000
12
+ fontes:
13
+ codigo: []
14
+ testes: []
15
+ simbolos: []
16
+ contratos: []
17
+ comandos: []
18
+ ---
19
+
20
+ <!-- The feature number comes from `ork roadmap feat --thread <thread>`, reserved across machines; never from the highest number on your branch. -->
21
+ <!-- Keep the frontmatter keys and values, the section titles and the "Em uma frase" line as they are: `ork docs verificar` reads them in Portuguese in every language. -->
22
+
23
+ # FEAT-000: Feature name
24
+
25
+ > **Em uma frase:** [what this feature does, for whom, in up to 240 characters]
26
+
27
+ - **State:** `proposto` · **Verified on:** [YYYY-MM-DD] · **Version:** [branch@commit]
28
+ - **Where it lives:** [PLAT-00 > SYS-00 > MOD-00, with links]
29
+ - **Roadmap:** [RM-000, with a link]
30
+ - **Page owner / approver:** [names]
31
+
32
+ ## Comportamento
33
+
34
+ - **Use cases and operations:** [UC-ID, action, actor]
35
+ - **Preconditions and trigger:** [what must exist and what starts it]
36
+ - **Main flow:**
37
+ 1. [observable step]
38
+ - **Alternatives, errors and recovery:** [error, cancellation, timeout, resume]
39
+ - **Postconditions:** [what is recorded, emitted or changed outside]
40
+ - **Business rules:** [BR-ID: condition → result; exception]
41
+ - **Acceptance criteria and tests:** [Given/When/Then, with the test that proves it]
42
+ - **Interface and accessibility:** [screens, states, prototype, or Not applicable: reason]
43
+
44
+ ## Dados e contratos
45
+
46
+ - **Entities and fields:** [links, types, validations, sensitivity]
47
+ - **APIs and endpoints:** [IDs, methods, contracts, errors, versioning]
48
+ - **Events and jobs:** [IDs, schemas, triggers, retries, time zone]
49
+
50
+ ## Operação e controle
51
+
52
+ - **Configuration and environments:** [parameters, no secrets]
53
+ - **Observability:** [metrics, SLO, logs, alerts, runbook]
54
+ - **Access, privacy and compliance:** [applicable controls]
55
+ - **Dependencies and rollback:** [what it uses and how to roll it back]
56
+ - **Code, PR, tests and release:** [identifiable links]
57
+
58
+ ## Histórico
59
+
60
+ | Date | Change | Author/reviewer | Evidence or decision |
61
+ | --- | --- | --- | --- |
62
+ | [YYYY-MM-DD] | [description] | [names] | [link] |
@@ -0,0 +1,14 @@
1
+ # Roadmap
2
+
3
+ > **In one sentence:** why change, what to deliver and where each item stands, with the state proven by git, not declared.
4
+
5
+ - **Standard:** [product roadmap](../padroes/roadmap-de-produto.md) · **Companion:** [product documentation](../produto/README.md)
6
+ - **One file per item:** `RM-000-subject.md`, with the state in the frontmatter
7
+ - **New item:** copy [the template](_modelo-item.md) and run `ork docs verificar`
8
+
9
+ ## Items
10
+
11
+ Generated by `ork docs sincronizar` from the frontmatter of each item, with the column labels in Portuguese.
12
+
13
+ <!-- ork-docs:indice:inicio -->
14
+ <!-- ork-docs:indice:fim -->
@@ -0,0 +1,75 @@
1
+ ---
2
+ id: RM-000
3
+ tipo: roadmap
4
+ titulo: <Intended result>
5
+ categoria: iniciativa
6
+ pai: null
7
+ features: []
8
+ owner: <name>
9
+ atualizado_em: 2026-01-01T00:00:00-03:00
10
+ estado:
11
+ ciclo: Discovery
12
+ documentacao: Rascunho
13
+ codigo: Não iniciado
14
+ testes: Não iniciados
15
+ deploy: Não implantado
16
+ exposicao: Flag desligada
17
+ habilitacao: Pendente
18
+ evidencias:
19
+ codigo:
20
+ commit: null
21
+ pr: null
22
+ sdlc:
23
+ thread: null
24
+ modo: null
25
+ ---
26
+
27
+ <!-- Keep the frontmatter keys and values, the section titles and the "Em uma frase" line as they are: `ork docs verificar` reads them in Portuguese in every language. -->
28
+
29
+ # RM-000: Intended result
30
+
31
+ > **Em uma frase:** [what this item delivers, for whom, in up to 240 characters]
32
+
33
+ <!-- ork-docs:relance:inicio -->
34
+ <!-- ork-docs:relance:fim -->
35
+
36
+ ## Problema e resultado
37
+
38
+ - **Audience and problem/opportunity:** [who suffers what]
39
+ - **Evidence and source:** [data, conversation, incident, with a link]
40
+ - **Objective/OKR:** [what changes for whom]
41
+ - **Hypothesis:** If [change], then [measurable effect], because [mechanism].
42
+ - **Main metric / baseline / target / window / source:** [values and origin]
43
+ - **Guardrail metrics:** [what must not get worse]
44
+
45
+ ## Escopo e validação
46
+
47
+ - **Included:** [what is in]
48
+ - **Out of scope:** [what is out]
49
+ - **Deliverables and acceptance criteria:** [deliverable → how it is proven]
50
+ - **Pilot, measurement and expand/stop criteria:** [how and when to decide]
51
+
52
+ ## Plano e decisões
53
+
54
+ - **Priority / method / score / rationale / date:** [values]
55
+ - **Horizon / target / forecast / confidence / milestones:** [values]
56
+ - **Dependencies and blockers (ID, owner, next review):** [list]
57
+ - **Assumptions / risks / mitigation:** [list]
58
+ - **Decisions, alternatives and ADRs (ID, decider, date, link):** [list]
59
+
60
+ ## Estado com evidências
61
+
62
+ The state is edited in the frontmatter; this table is generated by `ork docs sincronizar`, with its labels in Portuguese.
63
+
64
+ <!-- ork-docs:estado:inicio -->
65
+ <!-- ork-docs:estado:fim -->
66
+
67
+ ## Responsabilidades e histórico
68
+
69
+ - **RACI (R / A / C / I):** [names]
70
+ - **Agents involved, role, autonomy and human reviewer:** [who did what, and who approved]
71
+ - **Next action, owner and deadline:** [one line]
72
+
73
+ | Date | Change of plan, scope or status | Reason and evidence | Decider |
74
+ | --- | --- | --- | --- |
75
+ | [YYYY-MM-DD] | [description] | [link] | [name] |
@@ -0,0 +1,25 @@
1
+ # references/
2
+
3
+ Normative checklists cited **by item number** by the skills, by the adapters and by the
4
+ human, so that whoever writes `DoD 4` or `SEC 5` and whoever reads it resolve the same line.
5
+
6
+ | File | Cited as | What it establishes |
7
+ |---|---|---|
8
+ | [definition-of-done.md](definition-of-done.md) | `DoD 4` | The conditions a delivery meets, per task, per thread, per merge and per log |
9
+ | [code-review-axes.md](code-review-axes.md) | `REVIEW 7` | The 5 review axes and the rule that categorizes every finding |
10
+ | [security-checklist.md](security-checklist.md) | `SEC 5` | The audit surface and the hard condition of zero blockers |
11
+ | [testing-patterns.md](testing-patterns.md) | `TEST 3` | What a suite must prove and how a green suite is earned honestly |
12
+ | [performance-checklist.md](performance-checklist.md) | `PERF 2` | The conditional audit, its waiver contract and measurement honesty |
13
+
14
+ Three rules govern the five.
15
+
16
+ 1. **They elevate checks that already exist** in the core (`core/`) and in the thin skills, with the same
17
+ meaning. A divergence between a checklist and the `ork` command that runs it is a defect, never
18
+ a second opinion; wherever it shows up, the core wins.
19
+ 2. **An item is a gate only when this machine can run it.** Anything that depends on a missing
20
+ tool goes to the `Recomendacoes` (Recommendations) section, saying so. A checklist that demands evidence that
21
+ nobody can produce is a lie dressed up as rigor. What cannot be measured is published
22
+ as `unavailable`, never as zero.
23
+ 3. **Numbering is append-only** from the commit that publishes these files, for the life of v1.
24
+ Renumbering breaks every citation already written and is a change to a versioned public contract: it requires
25
+ a ratified class 2 decision, the same rule the MASTER log contract adopted when it was frozen.
@@ -0,0 +1,82 @@
1
+ # Code Review Axes
2
+
3
+ The five axes the CHECK walks through and the rule that categorizes every finding. No axis is optional:
4
+ an axis without findings comes out as an explicit "none", because silence is not evidence that anyone looked.
5
+ Items are numbered only once across the whole file. Cite an item as `REVIEW 7`.
6
+
7
+ **Sources:** `core/src/verify.ts`, `core/src/gates.ts`, `core/src/claims.ts`,
8
+ [definition-of-done.md](definition-of-done.md), [security-checklist.md](security-checklist.md).
9
+
10
+ ```mermaid
11
+ flowchart TB
12
+ D["diff da thread contra a base carimbada"] --> A1["REVIEW 1 a 4<br/>correcao"]
13
+ D --> A2["REVIEW 5 e 6<br/>seguranca"]
14
+ D --> A3["REVIEW 7 e 8<br/>performance"]
15
+ D --> A4["REVIEW 9 a 11<br/>manutenibilidade"]
16
+ D --> A5["REVIEW 12<br/>estilo"]
17
+ A1 --> C{"categoria de cada achado"}
18
+ A2 --> C
19
+ A3 --> C
20
+ A4 --> C
21
+ A5 --> C
22
+ C -->|"bloqueador"| B["veredito BLOQUEADO"]
23
+ C -->|"aviso aceito com registro"| P["veredito PASSOU"]
24
+ C -->|"sugestao"| P
25
+ ```
26
+
27
+ ## Axis 1, correctness
28
+
29
+ | # | Check | How it is proven |
30
+ |---|---|---|
31
+ | 1 | The code does what the PLAN said it would do, and what it does not do is stated. A difference between what was delivered and what was planned is a finding, even when what was delivered is better. | Diff against the PLAN tasks. |
32
+ | 2 | Edge cases declared in the PLAN have a test or a line saying why they do not. | Suite rerun by `ork verify <thread>`. |
33
+ | 3 | Errors are not swallowed: every failure path either handles the error, or propagates it with context, or fails loudly. An empty catch is a blocker. | Reading of the diff, backed by the failure-path tests. |
34
+ | 4 | No file or test cited by the runtime is missing from the diff. A citation without backing is a hallucination, categorized as a blocker. | `ork verify <thread>`, which reruns the claims on the real HEAD. |
35
+
36
+ ## Axis 2, security
37
+
38
+ | # | Check | How it is proven |
39
+ |---|---|---|
40
+ | 5 | The list in [security-checklist.md](security-checklist.md) was walked through over the scope of the diff and of the branch history, and the result is in the report. | The security section of the CHECK report, citing `SEC n` per finding. |
41
+ | 6 | Zero security blockers. This is a hard condition: with one open blocker the verdict is BLOQUEADO (blocked), in any conduction mode, including `#Auto`. | The report's verdict against the blocker count. The mode loosens the pause, never the verification. |
42
+
43
+ ## Axis 3, performance
44
+
45
+ | # | Check | How it is proven |
46
+ |---|---|---|
47
+ | 7 | The asymptotic cost of the touched structures was examined when the diff changes a loop over a collection that grows with use, and the finding brings the order of magnitude, not an adjective. | Reading of the diff, with the measured number when there is a way to measure. |
48
+ | 8 | A performance regression is only asserted with a measurement. Without a measurement, the item comes out `unavailable` with the reason, never as a guess presented as data. | [performance-checklist.md](performance-checklist.md) and the declared origin of each number. |
49
+
50
+ ## Axis 4, maintainability
51
+
52
+ | # | Check | How it is proven |
53
+ |---|---|---|
54
+ | 9 | Names say what the thing is, and new code looks like the code around it: same comment density, same human language, same language for names. Code that needs a guided tour to be read is a finding. | Reading of the diff against the neighboring files. |
55
+ | 10 | Introduced duplication was pointed out together with the place it should come from. Pointing out duplication without pointing to its owner is an empty suggestion. | Diff against the module that already solves the problem. |
56
+ | 11 | The diff carries no change outside the thread's scope. An opportunistic improvement without a task is scope creep, and it becomes a proposal, never a hidden commit. | `git show --stat` against the PLAN's `touch_paths`. |
57
+
58
+ ## Axis 5, style
59
+
60
+ | # | Check | How it is proven |
61
+ |---|---|---|
62
+ | 12 | The project's lint and formatter pass, and what they do not cover follows the convention of the neighboring file. Style never becomes a blocker on its own: it is a suggestion, except when it breaks a project tool, and then it is already a correctness issue. | The manifest's `verify:` commands. |
63
+
64
+ ## The categorization rule
65
+
66
+ Every finding, on any axis, comes out with exactly one category.
67
+
68
+ - **Blocker**: prevents the merge. A correctness defect, a hallucination proven with evidence, a security
69
+ blocker, a public contract break without ratification.
70
+ - **Warning**: passes only with a named record of who accepted it and why. A warning accepted without a record
71
+ is the same as a hidden warning.
72
+ - **Suggestion**: holds nothing up and needs no record; it becomes a roadmap proposal when it matters.
73
+
74
+ A finding without a category does not exist: it is opinion. And a category is not negotiated out of haste: a blocker
75
+ downgraded to a warning because the delivery was close is the process defect that this axis exists
76
+ to make visible.
77
+
78
+ ## Recommendations (not a gate on this machine)
79
+
80
+ - Static analysis beyond lint (cyclomatic complexity, tool-based duplication detection):
81
+ this repository does not have those tools, so axes 4 and 5 are walked through by reading and the
82
+ report says so, instead of reporting a number that nobody produced.
@@ -0,0 +1,74 @@
1
+ # Definition of Done
2
+
3
+ The universal conditions a delivery meets before it is called done. It consolidates the gates
4
+ the `ork` core already runs and invents no doctrine of its own. Items are numbered only once
5
+ across the whole file, so that a reviewer writes a number and every human and every skill resolve to the
6
+ same line. Cite an item as `DoD 4`.
7
+
8
+ **Sources:** `core/src/phase.ts` (phase contract), `core/src/claims.ts`, `core/src/verify.ts`,
9
+ `core/src/gates.ts`, `core/src/policies.ts`, `core/src/ship.ts`, `core/src/master.ts`,
10
+ `core/src/worktree.ts`, `core/src/leases.ts`, `core/src/retry.ts`, `core/src/fix.ts`,
11
+ `core/src/ratelimit.ts` (block B3: typed retry, GO-FIX/CHECK-REVERIFY and the rate limit queue).
12
+
13
+ ```mermaid
14
+ flowchart LR
15
+ GOAL["GOAL<br/>DoD 17 e 18<br/>objetivo aprovado"] --> PLAN["PLAN<br/>DoD 19 e 20<br/>tradeoffs decididos"]
16
+ PLAN --> GO["GO<br/>DoD 1 a 5 por tarefa"]
17
+ GO --> CHECK["CHECK<br/>DoD 6 a 11<br/>gate da thread"]
18
+ CHECK --> SHIP["SHIP<br/>DoD 12 a 15<br/>gate do merge"]
19
+ SHIP --> MASTER["MASTER<br/>DoD 16<br/>gate de fechamento"]
20
+ CHECK -->|"correcao tipo B"| GO
21
+ ```
22
+
23
+ ## Every task, before GO calls it done
24
+
25
+ | # | Check | How it is proven |
26
+ |---|---|---|
27
+ | 1 | One atomic commit per task, at most five files changed, with the thread and the task in the message (example: `ork-checkout T3: extrai o calculo de frete`). | `git log --oneline` and `git show --stat` on the thread branch. Above five files the task goes back to PLAN to be sliced. |
28
+ | 2 | The task's verify declared in the PLAN was run and passed. | Run the command. A reported pass is not a pass: `ork verify <thread>` reruns it on the real HEAD. |
29
+ | 3 | Anti-hallucination check: every file the runtime cited exists in the diff and every test it cited exists and passes. | Every statement becomes `ork claims add ... --verificar "<comando>"`, and `ork verify <thread>` reruns it. A mismatch comes out as typed reason `claims.failed`. |
30
+ | 4 | Work inside the thread worktree, with the base stamped in `thread.json`, never in the main tree. | `ork worktree audit <thread>` checks against git itself and exits non-zero if they diverge. |
31
+ | 5 | Every relevant delegated decision was recorded in the ledger with who decided, on what evidence and why. The qualifier carries weight: formatting and internal names are delegable too, and demanding an event for each of them is undue escalation, which the audit weighs the same as under-classification. | `ork phase list <thread>` over the thread's `ledger.jsonl`. |
32
+
33
+ ## Every thread, before the CHECK gate passes
34
+
35
+ | # | Check | How it is proven |
36
+ |---|---|---|
37
+ | 6 | The full suite is green, including the manifest's `verify:` commands, and code health passes: typecheck, lint and coverage with a declared origin. | `ork verify <thread>`. Every number carries `runtime_reported`, `estimated` or `unavailable`; a gap is published as a gap, never as zero. |
38
+ | 7 | The comparison is against the baseline recorded before GO, separating regression from pre-existing debt. | `ork verify <thread> --baseline` before GO and `ork verify <thread>` after it. A command that passed on the baseline and fails now comes out as `verify.regression`; what already failed before comes out as debt, not as the thread's fault. |
39
+ | 8 | The five review axes (correctness, security, performance, maintainability, style) bring findings or an explicit "none", each categorized as blocker, warning or suggestion. | The five-axis table of the CHECK report, per [code-review-axes.md](code-review-axes.md). |
40
+ | 9 | The security audit reports zero blockers, and the web performance audit either ran or states why the target has no web surface. | The report's audit sections, per [security-checklist.md](security-checklist.md) and [performance-checklist.md](performance-checklist.md). |
41
+ | 10 | Fixes classified honestly: type A is one line or equivalent, recorded, with the affected checks rerun; type B sent the task back to GO, and this CHECK round is the full rerun. | `ork fix open <thread>` derives one fix per typed reason, with the exact spec and the command that judges it; `ork fix reverify <thread>` gives the verdict PER fix and REFUSES a partial rerun when there is a type B. The ledger's `go_fix_opened` and `check_reverify` events against the report's counts. These counts measure the quality of the PLAN and of the GO, not that of the reviewer. |
42
+ | 11 | The report is in the thread directory with exactly one verdict (PASSOU = passed, PRECISA DE MUDANCA = needs changes, BLOQUEADO = blocked), every accepted warning has its record, and the gate was resolved through the right path. | The human answer to `ork gate request <thread>`, through the authenticated channel, for a human decision, or the mode's autonomous decision event, which only a PASSOU verdict allows. A verify failure, an anti-hallucination failure, any CHECK with a type B fix, an envelope deviation, a verdict other than PASSOU and an emergency always go up to the human, in any mode. |
43
+
44
+ ## Every merge, before SHIP closes
45
+
46
+ | # | Check | How it is proven |
47
+ |---|---|---|
48
+ | 12 | Contract guard: nothing in the final diff changes a versioned public contract (telemetry schema, interface contract, state layout, event types) without a ratified class 2 decision. | `git diff <base>...HEAD` over those files and the id of the gate that ratified it, in the ledger. No ratification, no merge. |
49
+ | 13 | The merge went through the serialized queue, updated against the latest base, fully revalidated whenever the update brought changes, with the `DoD 12` guard rerun against the final diff. | `ork ship <thread> --para <base>` takes the `main-tree` lease; the update can bring changes that touch a contract, so a verdict computed before it describes a diff that no longer exists. |
50
+ | 14 | The push was proven by a command, not reported. | `ork ship` compares the local sha with `git ls-remote` on the remote and writes `pushVerificado` to the ledger. A reported push without the remote's sha counts as a push that did not happen. |
51
+ | 15 | An irreversible step only happens with the mode's authorization: push, merge and deletion require the pause the #TAG provided for or a recorded advance authorization. | `ork ship <thread> --para <base> --autorizar-push <quem>`, or the human answer to the mode's pause, visible in `ork phase list <thread>`. |
52
+
53
+ ## Every closure, before the thread dies
54
+
55
+ | # | Check | How it is proven |
56
+ |---|---|---|
57
+ | 16 | There is a MASTER log valid against the frozen contract `ork.master-log/v1`, with a typed POSTMORTEM, failure classes from the fixed catalog, an integer score from 0 to 5 and a non-empty justification. A delivery without a MASTER log did not happen. | `ork master <thread> --score N --justificativa "<texto>" --por <quem>`. The command refuses a score outside the scale, a score without a justification, a score without human authorship in `--por` and a class outside the catalog, and writes nothing when it refuses. |
58
+
59
+ ## Every thread, at its start
60
+
61
+ | # | Check | How it is proven |
62
+ |---|---|---|
63
+ | 17 | The goal of the GOAL phase is verifiable: observable criteria (latency, coverage, behavior), never adjectives. In a fix request, reproducing the defect is a mandatory criterion. | The GOAL becomes claims with a verification command; a criterion that does not become a command is not a criterion. |
64
+ | 18 | The assumptions are written down. An implicit assumption is the biggest source of rework and is treated as a process defect, not as cleverness. | The assumptions section of the GOAL and the claims that tie them down. |
65
+ | 19 | The PLAN brings tasks with queryable `touch_paths` and one executable verify per task. | The thread's PLAN and the `path:<glob>` leases it justifies. |
66
+ | 20 | Decisions D1..Dn have a single home and stay locked once decided; reopening is a new decision, with a record, never a silent edit. | The thread's ledger, where the decision appears with who decided and when. |
67
+
68
+ ## Recommendations (not a gate on this machine)
69
+
70
+ - Test coverage as a number: this repository has no coverage tool installed, so
71
+ coverage is reported as `unavailable` instead of estimated.
72
+ - Tool-based dependency audit: `npm audit` runs where a dependency is declared; the
73
+ `ork` core has only development dependencies, and this is stated in the report instead of becoming a
74
+ convenient zero.
@@ -0,0 +1,53 @@
1
+ # Performance Checklist
2
+
3
+ The conditional audit: it runs when the target has a surface that suffers from latency, and when it does
4
+ not have one, it is waived by a written contract, never by oversight. Items are numbered only
5
+ once across the whole file. Cite an item as `PERF 2`.
6
+
7
+ **Sources:** [code-review-axes.md](code-review-axes.md) (axis 3),
8
+ [definition-of-done.md](definition-of-done.md), `core/src/verify.ts`.
9
+
10
+ ```mermaid
11
+ flowchart TB
12
+ Q{"o alvo tem superficie<br/>sensivel a latencia?"} -->|"nao"| D["dispensa registrada:<br/>PERF 1, com o motivo"]
13
+ Q -->|"sim"| M["PERF 2 a 6:<br/>medir antes de afirmar"]
14
+ M --> A["PERF 7 e 8:<br/>custo assintotico e recurso"]
15
+ A --> H["PERF 9 e 10:<br/>honestidade de medicao"]
16
+ ```
17
+
18
+ ## The waiver contract
19
+
20
+ | # | Check | How it is proven |
21
+ |---|---|---|
22
+ | 1 | When the target has no web surface and no latency-sensitive path, the audit is waived with a line saying what the target is and why it has no such surface. A written waiver is a result; a missing audit with no line at all is a gap. | The performance section of the CHECK report, which always exists, even when its content is the waiver. |
23
+
24
+ ## Measure before asserting
25
+
26
+ | # | Check | How it is proven |
27
+ |---|---|---|
28
+ | 2 | Every performance statement carries a number, a unit and how the number was obtained. "It got faster" without a measurement is opinion, and opinion does not pass a gate. | The report's measurement table, with the command that produced each number. |
29
+ | 3 | There is a measurement before and after, on the same machine and under the same conditions. Comparing measurements from different machines compares machines, not code. | The two runs, with the machine and the conditions declared. |
30
+ | 4 | The measurement was repeated enough to separate signal from noise, and the variation is stated. A single run becomes `estimated`, never `runtime_reported`. | The number of repetitions in the report. |
31
+ | 5 | The measured path is the user's path, not the convenient microbenchmark. A gain in a function nobody calls on the hot path is a suggestion, not a result. | The stretch of the real flow that the measurement covers. |
32
+ | 6 | A detected performance regression is categorized like any other finding: blocker, recorded warning or suggestion. | [code-review-axes.md](code-review-axes.md), categorization rule. |
33
+
34
+ ## Asymptotic cost and resources
35
+
36
+ | # | Check | How it is proven |
37
+ |---|---|---|
38
+ | 7 | A loop over a collection that grows with use was examined, and the order of magnitude is stated. A quadratic hidden in small data is a defect with a date already set. | Reading the diff at the points that iterate over accumulated state. |
39
+ | 8 | Repeated work inside a loop (file read, process call, parsing the same data) was pointed out, or it was stated that there is none. In `ork`, reading the whole ledger per event would be exactly this defect. | Reading the diff against the I/O points. |
40
+
41
+ ## Measurement honesty
42
+
43
+ | # | Check | How it is proven |
44
+ |---|---|---|
45
+ | 9 | Every number carries its source: `runtime_reported`, `estimated` or `unavailable`. It is the same discipline as the `ork` token gate, which would rather say "not measurable" than invent a window occupancy. | The source attached to each number in the report. |
46
+ | 10 | What was not measured shows up as `unavailable` with the reason, never as zero, never as a silent absence. A published gap is a gap; a hidden gap becomes a false number on the next reading. | The metrics section of the report. |
47
+
48
+ ## Recommendations (not a gate on this machine)
49
+
50
+ - Browser profiling tool (Lighthouse, CPU traces): not installed here. A web performance audit
51
+ of a target with a web surface comes out `unavailable` with the reason while that is the case.
52
+ - Continuous benchmarking with history: out of reach for this machine; the before-and-after comparison is
53
+ done in the thread itself, with an explicit `PERF 3`.
@@ -0,0 +1,101 @@
1
+ # Security Checklist
2
+
3
+ The normative list that the CHECK security audit walks through, whose hard pass condition is
4
+ zero blockers in the consolidated report. It elevates checks that already exist in the core and
5
+ invents none. Items are numbered only once across the whole file. Cite an item as `SEC 5`.
6
+
7
+ **Sources:** `core/src/policies.ts` (secret patterns and blocking policies),
8
+ `core/src/doctor.ts`, `core/src/ship.ts`, `core/src/gates.ts`,
9
+ `core/src/superficie.ts` (deterministic scan of the network attack surface,
10
+ rules SP8..SP12 of the `security-privacy` pack),
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
+ ## Secrets and credentials
27
+
28
+ | # | Check | How it is proven |
29
+ |---|---|---|
30
+ | 1 | No secret in the working tree: token, API key, password, private key block, connection string and high-entropy string that looks like a credential, including `.env` files, test fixtures and example configs. | Reading of the branch diff plus a scan of the tree. The report names the tool used or says the pass was manual. With `verify.security_scan` declared, the evidence is the `security_scan` (Gitleaks on the tree); the manual pass is only valid with the scan declared `unavailable`. |
31
+ | 2 | No secret in the history behind the branch. A secret committed and later deleted is still leaked. | `git log -p <base>..HEAD` over the whole range, not just the tree. Blocker until the credential is rotated and the history cleaned, with the rotation verified, not promised. With `verify.security_scan` declared, the `security_scan` also scans the commits of `<base>..HEAD`; the manual pass is only valid with the scan declared `unavailable`. |
32
+ | 3 | No real credential in a dispatched prompt. The `phase.dispatch` gate of `ork` evaluates the `segredo_em_prompt` policy BEFORE writing the prompt to disk: a rejected prompt never comes to exist as a file, because writing a prompt with a credential creates a second leak inside the repository itself. | `ork phase run` exits with typed reason `policy.violation`; the ledger records the pattern name and the line, never the matched excerpt. |
33
+ | 4 | No real credential in a thread artifact, the ledger, captured command output or the audit report itself. A leak report that prints the secret is a second leak. | Reading of the artifacts the thread produced. A redacted placeholder passes and is declared as such; a credential is referenced by location and redacted form. |
34
+
35
+ ## Input and surface
36
+
37
+ | # | Check | How it is proven |
38
+ |---|---|---|
39
+ | 5 | Every input that crosses a trust boundary is validated on the trusting side, not on the calling side. Client-only validation counts as missing. | Reading of the diff at the touched entry points. |
40
+ | 6 | No concatenation of input into SQL, shell, file path or rendered template. The `ork` core runs commands as an argument list, with no interpolated shell, and the same pattern applies to the reviewed code. | Reading of the diff; any command built by concatenation is a blocker. |
41
+ | 7 | Authentication and authorization checked per operation, not per screen: whoever can read cannot always write, and either the test that proves this exists or the finding is a warning with a record. | Authorization tests in the suite, rerun by `ork verify`. |
42
+ | 8 | Deserialization of untrusted data does not instantiate arbitrary types, and every `JSON.parse` of a state file has its error handled with the path in the error text. | Reading of the diff over the points that read state. |
43
+
44
+ ## Dependencies and supply chain
45
+
46
+ | # | Check | How it is proven |
47
+ |---|---|---|
48
+ | 9 | No new dependency without justification in the PLAN. A dependency that comes in without a task is scope creep with an attack surface. | Diff of the package manifest files against the PLAN tasks. |
49
+ | 10 | Known vulnerabilities in the declared dependencies were looked up, and the result is in the report with the date and the tool. Where there is no tool, the item comes out `unavailable` with the reason. | `npm audit` where a production dependency is declared. With `verify.security_scan` declared, the evidence is the `security_scan` (dependencies and govulncheck `reachable`); the manual pass is only valid with the scan declared `unavailable`. |
50
+
51
+ ## Repository artifacts
52
+
53
+ | # | Check | How it is proven |
54
+ |---|---|---|
55
+ | 11 | No mass destructive command in a script, hook or documentation that someone will copy: `rm -rf` with an unanchored variable path, `git add -A`, `git checkout -- .`, `git reset --hard` without a target, `push --force`. | Scan of the touched directories. The `PreToolUse` guard of the Claude Code adapter blocks these same commands at run time. |
56
+ | 12 | No direct push to the base branch. The manifest's `push_direto_na_base` policy is blocking and rejects any delivery whose source and target are the same branch. | `ork ship` exits with `policy.violation` before touching the remote. |
57
+ | 13 | No dispatch through a paid provider when the policy is `subscription-only`. An environment variable that redirects `claude` to a paid provider is a blocker, because the cost shows up on the bill and not at the gate. | `ork doctor` and the `provider` policy, evaluated at the `phase.dispatch` gate and in `ship`. |
58
+ | 14 | Permissions on a file created by a script do not widen access: no `chmod 777`, no state file with the execute bit. | Reading of the diff of the scripts and hooks. |
59
+
60
+ ## Audit conduct
61
+
62
+ | # | Check | How it is proven |
63
+ |---|---|---|
64
+ | 15 | The audited scope is declared before the findings: which directories, which history range, which artifacts. An audit without a declared scope is not reproducible and does not count as evidence. | The header of the report's security section. |
65
+ | 16 | Each finding comes out categorized as blocker, warning or suggestion, with the `SEC n` item it violates. A finding without an item number is opinion. | The report's findings table. |
66
+ | 17 | Absence of findings is stated as the result of a check, with what was looked at. "Nothing found" without a scope is different from "audited and clean", and the difference is written down. | The section text, against `SEC 15`. |
67
+
68
+ ## Network attack surface
69
+
70
+ What the product EXPOSES. Items 5 to 8 look at the data that comes in through a boundary; these look at
71
+ the boundary itself: which routes and endpoints exist, who can call them and at what cost. The
72
+ `security-privacy` pack audits this section with a DETERMINISTIC scan (`ork audit surface`, rules
73
+ SP8 to SP12), which runs inside `ork audit run security-privacy` and writes each finding to the
74
+ debt board with `arquivo:linha` evidence and the command that reruns it.
75
+
76
+ | # | Check | How it is proven |
77
+ |---|---|---|
78
+ | 18 | Every HTTP/API server route declared in production goes through an authentication/authorization layer, or is public by a recorded decision (login, sign-up, health, signed webhook). A route that is public by oversight is a blocker. | `ork audit surface --regra SP8`. The finding brings the route definition with `arquivo:linha`, the recognized framework and the command that proves the absence of a guard in the route block or in the file. |
79
+ | 19 | An administration or operations endpoint (admin, console, debug, swagger/openapi, detailed health, metrics, `pprof`, cluster metadata) is not reachable from outside: there is a network restriction (allowlist, internal network) or oAuth/basic auth. A health check that returns version, hostname, database or dependency is an operations endpoint, not a health one. | `ork audit surface --regra SP9`, plus the network configuration or the middleware cited with `arquivo:linha`. |
80
+ | 20 | An exposed route has a rate limit per IP and per identity, with special attention to the authentication path, password recovery, OTP, search, export and any public route that changes state. Without a limit, a brute-force costs no more than a request. | `ork audit surface --regra SP10`. Limit, quota or rpm middleware cited on the route, on the router that mounts it or on the gateway, with the file and the line. |
81
+ | 21 | CORS does not combine a global origin with credentials, and an open origin does not appear in a service that carries personal data or sessions. An explicit list of origins, always. | `ork audit surface --regra SP11`. The finding cites the configuration with `arquivo:linha`, the origin wildcard and the credentials flag, each with the command that reruns it. |
82
+ | 22 | The route definition declares the payload schema at the edge (schema, validator, typed model), and an invalid payload is rejected before the handler. Complements item 5, which looks at the USE of the data inside the handler. | `ork audit surface --regra SP12`, with the route definition and the absence of a schema at the entry point. |
83
+
84
+ A finding that the scan marks with confidence `baixa` (low: there is middleware that `ork` does not classify,
85
+ an unrecognized framework, a marker present in the file and absent from the route block) comes out as a
86
+ **warning that asks for human confirmation**, never as a blocker: the machine says where to look, and
87
+ the person decides whether it holds.
88
+
89
+ ## Recommendations (not a gate on this machine)
90
+
91
+ - Scanning with a dedicated secret tool (gitleaks, trufflehog): not installed here. The
92
+ patterns in `core/src/policies.ts` cover Anthropic keys, OpenAI keys, AWS access keys, GitHub
93
+ tokens, PEM private keys and secret assignments in text, and the audit says it covered those
94
+ classes and no others.
95
+ - Software composition analysis and artifact signing: out of reach for this machine; it comes out
96
+ `unavailable` with the reason, never as a silent pass.
97
+ - Dynamic surface testing (port scanning, endpoint fuzzing, DAST): out of reach.
98
+ The scan for items 18 to 22 is STATIC and reads the route definition in the code: it does not see
99
+ routes generated at run time, nor a proxy, gateway or WAF in front of the service. Where that
100
+ layer exists, the finding still stands as a question and is resolved with the layer's evidence, never
101
+ in silence.