@zaip-ai/cli 5.1.0 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/services/adapters.d.ts +1 -1
  2. package/dist/services/adapters.js +1 -1
  3. package/dist/services/codex-literal-read-sequence-template.d.ts +2 -0
  4. package/dist/services/codex-literal-read-sequence-template.d.ts.map +1 -0
  5. package/dist/services/codex-literal-read-sequence-template.js +91 -0
  6. package/dist/services/codex-literal-read-sequence-template.js.map +1 -0
  7. package/dist/services/codex-native-tool-authority-template.d.ts.map +1 -1
  8. package/dist/services/codex-native-tool-authority-template.js +19 -12
  9. package/dist/services/codex-native-tool-authority-template.js.map +1 -1
  10. package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
  11. package/dist/services/codex-pre-tool-hook-template.js +11 -8
  12. package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
  13. package/dist/services/codex-pre-tool-host-context-template.d.ts.map +1 -1
  14. package/dist/services/codex-pre-tool-host-context-template.js +36 -3
  15. package/dist/services/codex-pre-tool-host-context-template.js.map +1 -1
  16. package/dist/services/codex-pre-tool-support-template.d.ts.map +1 -1
  17. package/dist/services/codex-pre-tool-support-template.js +4 -43
  18. package/dist/services/codex-pre-tool-support-template.js.map +1 -1
  19. package/dist/services/codex-windows-hook-command.d.ts.map +1 -1
  20. package/dist/services/codex-windows-hook-command.js +21 -2
  21. package/dist/services/codex-windows-hook-command.js.map +1 -1
  22. package/package.json +1 -1
  23. package/templates/.agents/README-ENG.md +23 -0
  24. package/templates/.agents/README.md +24 -0
  25. package/templates/.agents/config/agents/discovery.json +1 -1
  26. package/templates/.agents/dashboard/.zaip-managed.json +30 -30
  27. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-CngnpoLL.js → DashboardHelpDialog-URSe1IiF.js} +25 -1
  28. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-Bszw3ekd.js → PricingSettingsDialog-8znf56to.js} +1 -1
  29. package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-IJ1znG4w.js → ProjectSettingsPage-O68yx0KF.js} +1 -1
  30. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-CsBpHqq_.js → TraceabilityWorkspace-DlYlyBhz.js} +1 -1
  31. package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-D41g5rdo.js → dashboard-localization-DhvlkPf2.js} +23 -0
  32. package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-Bedlm0f7.js → index-CWcci-bM.js} +2 -2
  33. package/templates/.agents/dashboard/apps/frontend/dist/index.html +1 -1
  34. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  35. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  36. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  37. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  38. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  39. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  40. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  41. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +162 -162
  42. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +126 -126
  43. package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
  44. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +163 -163
  45. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.test.mjs +0 -1
  46. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  47. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  48. package/templates/.agents/design/.zaip-managed.json +3 -3
  49. package/templates/.agents/design/apps/catalog/package.json +1 -1
  50. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  51. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  52. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  53. package/templates/.agents/requirements/comparative-audit.md +1 -1
  54. package/templates/.agents/requirements/context-engine.md +1 -1
  55. package/templates/.agents/requirements/cost-observability.md +1 -1
  56. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  57. package/templates/.agents/requirements/data-export.md +1 -1
  58. package/templates/.agents/requirements/design-system.md +1 -1
  59. package/templates/.agents/requirements/execution-engine.md +1 -1
  60. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  61. package/templates/.agents/requirements/model-orchestration.md +1 -1
  62. package/templates/.agents/requirements/public-distribution.md +1 -1
  63. package/templates/.agents/requirements/software-architecture.md +1 -1
  64. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  65. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  66. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  67. package/templates/.agents/runtime/VERSION +1 -1
  68. package/templates/.agents/runtime/bin/zaip.mjs +202 -110
  69. package/templates/.agents/runtime/checksums.sha256 +5 -5
  70. package/templates/.agents/runtime/manifest.json +1 -1
  71. package/templates/.agents/runtime/provenance.json +4 -4
  72. package/templates/.agents/runtime/sbom.cdx.json +1 -1
  73. package/templates/.agents/skills/zaip-skill-execution/references/runtime-governance.md +1 -0
  74. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.mjs +25 -0
  75. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-publication-intent.test.mjs +42 -0
  76. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs +1 -0
  77. package/templates/.agents/skills/zaip-skill-lifecycle-closure/SKILL.md +8 -0
  78. package/templates/.agents/skills/zaip-skill-lifecycle-closure/references/post-publication-task-first.md +119 -0
  79. package/templates/.agents/zaip-aios/VERSION +1 -1
  80. package/templates/template-manifest.json +75 -67
@@ -1,11 +1,11 @@
1
1
  b146bd0c7c60b1ab43c4f71e0b1d2262c6df6da6f7053a0425f834ccb77a6b48 LICENSE
2
2
  bc02cba77e8d51e5c580f43668863dc868eda66f1ff663bfaa49fcf3ca16320e THIRD_PARTY_NOTICES.md
3
- c0eacacd7e27bbf341d21e7e0e2997a363840a210d8e358d4babaebd765b5bfd VERSION
4
- bc095b0649bb85426f67614a7cc450afbc4a7d52bab8e83954e318f0d4aa4db4 bin/zaip.mjs
5
- 429917091d9e2a4af73bee5aa1d5d8f85888528e0c2cbcd62fa703b855deed79 manifest.json
3
+ d92973800706e6107fce68570df8589348db4a4127663e491f5bc2ff630f1450 VERSION
4
+ 41a3e5d688c59269eb0d65159275d7a8c4b642df43d0b5085781284af001e5fd bin/zaip.mjs
5
+ c2d0005475e8f8d7dcb676a4f1fd87c04dc5ef0ce9921b6685fde1f7aeaef438 manifest.json
6
6
  7f89219d7c567c82a51679ad136d84364bded7ac659492537e125d33b1d58a7a migrations/001-layout-v1.json
7
7
  5f8c48b286d0b44d8fbb57a9a5d009a8a500439aa3148d750b8f193f72995c9f migrations/002-layout-v2.json
8
8
  2bd34b2f5c253a2167d9addaf1994167308ac0bb4fec22a794c8a5b488205278 pnpm-lock.sha256
9
- f7612762f640328ad211f8e39308decde7ab1539a67be5f4770f9367e28e3290 provenance.json
10
- d2956defc87c3bc6022b68eaf905f7eda311b410918568b0d57101bdd6aec2d5 sbom.cdx.json
9
+ 69f525f9b1f6419c28f6b2f9f5e4defd5c02cac30980e5f2acf039e9c005bad5 provenance.json
10
+ 6effd566ac07d305daebba775b81cfb2031be89ec3f5d5c18abb1fa74fd16d94 sbom.cdx.json
11
11
  b3ffedf9e146be802a15b4009f33e031dec3071ca1525e12c67606fd964a3067 schemas/contracts.schema.json
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "name": "zaip-aios",
4
- "version": "5.1.0",
4
+ "version": "5.3.0",
5
5
  "node": ">=22",
6
6
  "files": [
7
7
  "LICENSE",
@@ -2,10 +2,10 @@
2
2
  "schema_version": 1,
3
3
  "statement_type": "self_reported_build_integrity",
4
4
  "authenticity": "unverified",
5
- "version": "5.1.0",
5
+ "version": "5.3.0",
6
6
  "source_origin": "zaip-aios:local-build",
7
7
  "lockfile_sha256": "b5e11351951654d41aa78dc858d43990a12964ba4051a070613ac8b11bc73a27",
8
- "sbom_sha256": "d2956defc87c3bc6022b68eaf905f7eda311b410918568b0d57101bdd6aec2d5",
9
- "runtime_sha256": "0c57b09af7368dc856de264574e9835376097fe52f79713b21414d7f1f9acf65",
10
- "statement_sha256": "5d508534242390ce35e059e0bcfe53a449eac817b34105b376bb200702857321"
8
+ "sbom_sha256": "6effd566ac07d305daebba775b81cfb2031be89ec3f5d5c18abb1fa74fd16d94",
9
+ "runtime_sha256": "f6d79701cff2c98781e538f1f7c95a236eb256b442c0718cdfa4af54feb046b8",
10
+ "statement_sha256": "5f5324711dc20b81d79122422114bd65b5a569cadf60c0fcda1b7c90db0455c7"
11
11
  }
@@ -6,7 +6,7 @@
6
6
  "component": {
7
7
  "type": "application",
8
8
  "name": "zaip-aios",
9
- "version": "5.1.0"
9
+ "version": "5.3.0"
10
10
  }
11
11
  },
12
12
  "components": [
@@ -6,6 +6,7 @@ Carregue antes de executar uma entrega ou delegar. Este contrato detalha o kerne
6
6
  - Em modo manual carregue `RULE-MODEL-ORCHESTRATION` antes da primeira resposta visível; aviso não bloqueia nem altera seleção. Com Codex/delegação use apenas `codex_name` do catálogo, formato `zaip-agent-NOME`, recursivamente; proíba `default`, `worker`, `explorer` e tipos ad-hoc.
7
7
  - Para delegação Codex, Sub-Run ZAIP é somente subagente nativo de colaboração (`spawn_agent`). `create_thread` e `fork_thread` criam chats independentes e exigem pedido explícito do usuário; nunca são Sub-Run, fallback, retry ou prova de delegação. Se delegação nativa estiver indisponível, relate a limitação em vez de criar chat independente. Nome de catálogo, `task_name`, título ou prompt não prova ancestralidade nativa. Antes de repetir a mesma delegação limitada, aguarde ou reutilize seu filho pendente e capture somente ancestralidade/metadados observados em resultados nativos de spawn/terminal do host ou eventos SubagentStart/SubagentStop.
8
8
  - Cada `client_turn_id` observável tem por padrão uma Execution idempotente/claim atômico; sem ele use identidade local sem prometer idempotência. A exceção versionada de `spec execute` permite uma Execution delivery sucessiva à interaction de definição no mesmo turno físico somente após definição terminal+Gui, SPEC pronta e autorização explícita observada para o alvo exato. A exceção tipada de `task resume-post-publication` permite a sucessora da SPEC histórica após a raiz delivery de manutenção terminar com Gui, com recibo canônico emitido antes do encerramento e publicação/ciclo revalidados; em novo turno observado, o claim vincula o mesmo recibo ao sucessor sem duplicar a raiz anterior. O claim vincula as Executions e Runs, preserva a anterior e impede dois proprietários ativos; não fabrica novo turno ou child. `interaction` read-only sem descendentes é conversa sem Task artificial e termina após a resposta entregue, sem executor ou finalizador; interaction com trabalho delegado e `delivery` exigem executor/finalizador. `delivery` é trabalho materializado e reuso exige kind/origem compatíveis. A raiz é `zaip-agent-orchestrator`; quando a barreira é exigida escolha executor por capacidade, permita reviewer/auditor/integrator e termine com `zaip-agent-finalizer` em `finalization`, após descendentes, bloqueando novas chamadas.
9
+ - A exceção pós-publicação também admite Task-first histórica com `spec_id: null`, origem Task e DAG unitário exato. Recibo v2 e claims v5/v6 preservam Task, Change, Execution, autorizações humanas observadas, produtor da Evidence e Gui independente; não criam SPEC nem concedem writer de produto antigo. A publicação histórica pode preceder avanços posteriores, desde que ciclo contínuo, tag/SHA, assets, npm e ancestralidade remota permaneçam verificáveis. Continuação não abre nova raiz enquanto seu responsável no mesmo alvo estiver ativo. Veja o [contrato v5.3 e procedimento](../../zaip-skill-lifecycle-closure/references/post-publication-task-first.md); aceite histórico não comprovado permanece bloqueado, mesmo com release posterior aprovada.
9
10
  - Hooks são best-effort: após cada spawn/terminal, o host autorizado a serviço do orquestrador executa `zaip subagent capture` idempotente com metadados reais. Na captura rica, preserve session/turn observados, `agent-id` com a identidade nativa retornada e `parent-agent-id`/`parent-run-id` do pai imediato exato; cada invocação preserva seu turn. Quando um evento terminal observado expõe somente agent_path, status, identidade catalogada e pai exato, `capture-terminal` aceita apenas `zaip-agent-finalizer` ou executor elegível para delivery com capacidade `task-delivery`; exige também `parent-run-id` igual ao `run_id` da raiz ativa exata, pois um client thread pode conter raízes concorrentes. O último segmento do agent_path deve ser seu `codex_task_name` canônico. O propósito deriva da identidade validada e session/turn/model/provider/usage permanecem indisponíveis; o fallback nunca substitui captura rica nem inventa modelo, effort, tokens ou custo.
10
11
  - Antes da primeira edição do executor nativo, capture seu início observado. Na captura manual de executor cujo pai é orquestrador de Task delegado por uma SPEC, `--session` continua sendo o UUID físico da raiz macro; informe também `--native-session CHILD_UUID` com o UUID do filho observado no retorno do spawn. O PreToolUse pode receber a sessão do pai junto com o turno do filho: a CLI grava correlações locais exatas para esse formato e para a sessão nativa do filho, somente após verificar ancestralidade, modelo/effort, Task e Execution ativos. A autorização de patch fica limitada aos write scopes da Task; reviewers, identidades desconhecidas, outro turno e Runs terminais não recebem essa capacidade. Não copie nem fabrique recibos. Ao reutilizar um subagente, capture seu novo turno ativo; o recibo anterior não autoriza a retomada.
11
12
  - Em `autonomy-v1`, carregue `RULE-AUTONOMY-DECISION`. Conversation sem entrega responde diretamente; Task avulsa no padrão `codex_native` usa executor e Gui nativos. O principal preserva a seleção manual do host; cada filho segue a seleção ZAIP por papel/risco/fase, registrada conforme o modelo/esforço efetivamente observados. Capacidade ausente bloqueia a tentativa, nunca é substituída por prompt. Sem `autonomy`, preserve o contrato legado de `automatic_sources` (`spec`,`prd`).
@@ -77,6 +77,29 @@ export function requestedDeployment(request) {
77
77
  "A bounded current human request is required",
78
78
  );
79
79
  const text = normalize(request);
80
+ // A separate, literal imperative paragraph can authorize implementation and
81
+ // publication together. Do not rewrite the user's request or accept reported,
82
+ // quoted, conditional or merely mentioned publication language.
83
+ const implementAndPublish =
84
+ !/[`"'“”]/.test(request) &&
85
+ !/\b(?:disse|citou|exemplo|quoted|said)\b/.test(text) &&
86
+ !/\b(?:nao|nunca|jamais|sem|proibido|proibo|evite|aguarde)\b[^.!?]*\b(?:public\w*|publiqu\w*|release|deploy|versao)\b/.test(
87
+ text,
88
+ ) &&
89
+ !/\b(?:ate|quando|se|apos|depois)\b[^.!?]*\b(?:revis\w*|autor\w*|aprov\w*|confirm\w*)\b/.test(
90
+ text,
91
+ ) &&
92
+ !/\b(?:aguard\w*|esper\w*|so|somente|apenas|depend\w*|condicion\w*)\b[^.!?]*\b(?:revis\w*|autor\w*|aprov\w*|confirm\w*)\b/.test(
93
+ text,
94
+ ) &&
95
+ request
96
+ .split(/\r?\n/)
97
+ .map(normalize)
98
+ .some((line) =>
99
+ /^(?:faca|realize|execute)\s+(?:as mudancas necessarias|os ajustes necessarios|as melhorias|todos os testes)(?:\s+e\s+(?:todos os testes|as validacoes|os testes))?\s+e\s+publique\s+(?:em\s+)?(?:uma\s+|a\s+)?(?:nova|proxima)\s+versao[.!]?$/.test(
100
+ line,
101
+ ),
102
+ );
80
103
  const resumedSpecPublication =
81
104
  /^pode retomar a execucao da spec ate finalizar todas as tasks e fazer publicacao deploy da v((?:0|[1-9]\d*)\.(?:0|[1-9]\d*))(?: com release(?: e npm publicado)?)?$/.exec(
82
105
  text,
@@ -138,6 +161,7 @@ export function requestedDeployment(request) {
138
161
  releaseDirective ||
139
162
  proceedToVersion ||
140
163
  finalAdjustmentsToPublish ||
164
+ implementAndPublish ||
141
165
  shortPublicationVersion !== null;
142
166
  if (!direct || /\?/.test(text) || waitsForAuthorization)
143
167
  return { authorized: false, reason: "not-a-direct-deployment-request" };
@@ -156,6 +180,7 @@ export function requestedDeployment(request) {
156
180
  /^release\b/.test(withoutCourtesy) ||
157
181
  releaseDirective ||
158
182
  proceedToVersion ||
183
+ implementAndPublish ||
159
184
  shortPublicationVersion !== null;
160
185
  const nonPublication = text.replace(
161
186
  /\bnao\s+(?:publique|publicar)\s+(?:(?:um|uma|o|a|novo|nova)\s+)*release\b/g,
@@ -0,0 +1,42 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import { resolveDeployment } from "./deploy-contract.mjs";
4
+
5
+ const builder = {
6
+ origin: "git@github.com:zaip-ai/zaip-aios.git",
7
+ rootName: "@zaip-ai/aios",
8
+ cliName: "@zaip-ai/cli",
9
+ rootVersion: "4.5.0",
10
+ cliVersion: "4.5.0",
11
+ workspaceVersion: "4.5.0",
12
+ };
13
+ const input = (request, identity) => ({ request, identity });
14
+ test("implementation plus publication accepts a literal paragraph but not quotation or conditions", () => {
15
+ const directive = "Faça as mudanças necessárias e todos os testes e publique em uma nova versao";
16
+ const request = `Pode executar as melhorias para chegar na nota 9.\n\n${directive}`;
17
+ const plan = resolveDeployment(input(request, builder));
18
+ assert.equal(plan.mode, "release");
19
+ assert.equal(plan.phase, "publish");
20
+ assert.equal(plan.scope, "current-work");
21
+ assert.equal(plan.version, null);
22
+ assert.equal(plan.npm_publication, true);
23
+ for (const rejected of [
24
+ `O usuário disse:\n${directive}`,
25
+ `Exemplo:\n${directive}`,
26
+ `"\n${directive}\n"`,
27
+ `${directive}?`,
28
+ `${directive} se eu confirmar`,
29
+ `Quando eu autorizar:\n${directive}`,
30
+ `Não faça nenhuma publicação até eu revisar.\n${directive}`,
31
+ `${directive}\nNão faça nenhuma publicação até eu revisar.`,
32
+ `Aguarde minha revisão antes de publicar.\n${directive}`,
33
+ `Até eu revisar, só faça os testes.\n${directive}`,
34
+ `Aguarde minha confirmação.\n${directive}`,
35
+ `${directive}\nAguarde minha confirmação.`,
36
+ `Só publique com minha aprovação.\n${directive}`,
37
+ `${directive}\nSó publique com minha aprovação.`,
38
+ `A publicação depende da minha aprovação.\n${directive}`,
39
+ directive.replace("e publique", "e não publique"),
40
+ ])
41
+ assert.equal(resolveDeployment(input(rejected, builder)).mode, "none", rejected);
42
+ });
@@ -18,6 +18,7 @@ const managedDeployFiles = [
18
18
  "skills/zaip-skill-github-deploy/scripts/preflight.test.mjs",
19
19
  "skills/zaip-skill-github-deploy/scripts/deploy-contract.mjs",
20
20
  "skills/zaip-skill-github-deploy/scripts/deploy-contract.test.mjs",
21
+ "skills/zaip-skill-github-deploy/scripts/deploy-publication-intent.test.mjs",
21
22
  "skills/zaip-skill-github-deploy/scripts/guarded-commits.mjs",
22
23
  ];
23
24
 
@@ -50,5 +50,13 @@ the supplied ID and canonical record; never scan ordinary history to guess a tar
50
50
  to a verified backup. An inconclusive check refuses recovery. Preserve that backup
51
51
  and report its path; use the existing Task workspace flow afterwards.
52
52
 
53
+ 11. For published historical delivery, follow the [Task-first and SPEC recovery contract](references/post-publication-task-first.md).
54
+ Preview `task recover-post-publication`, bind the exact observed human authorization,
55
+ and issue its receipt before maintenance Gui. Consume it only after maintenance
56
+ completes with Gui through `task resume-post-publication`. Preserve original Evidence
57
+ and its producer, immutable publication identity, and the historical finalizer.
58
+ Missing historical acceptance remains blocked; a newer release does not prove an older
59
+ candidate. Never manufacture a SPEC, cancellation authorization, receipt, or product claim.
60
+
53
61
  Use `$zaip-skill-reconcile-telemetry` only for missing observed usage after lifecycle
54
62
  identity is correct; it is not a substitute for closure.
@@ -0,0 +1,119 @@
1
+ # v5.3 — recuperação Task-first após publicação
2
+
3
+ Este contrato descreve a recuperação de metadados de uma entrega publicada que
4
+ continua bloqueada no lifecycle. Implementar ou testar o mecanismo não comprova o
5
+ fechamento de uma Task real, nem concede uma nota de prontidão.
6
+
7
+ ## Elegibilidade e autoridade
8
+
9
+ - A Task histórica continua vinculada ao Change, à Execution, à release e ao
10
+ candidato originais. Para Task-first, `spec_id` permanece `null`, a origem da
11
+ Execution é a própria Task e o DAG contém exatamente seu par Task/Change.
12
+ - O fluxo legado com SPEC permanece compatível. Não crie uma SPEC sintética para
13
+ contornar a ausência de uma origem macro.
14
+ - A raiz de manutenção deve ser uma entrega autorizada e observada. Aceita-se
15
+ intake `new_work` explícito ou `direct_execution_authorization` persistida na
16
+ raiz, vinculada ao mesmo thread, turno, modelo e esforço observados.
17
+ - A autorização direta é vinculada por hash junto ao hash da mensagem humana
18
+ observada. Ela não autoriza sozinha o recibo: uma Decision humana confirmada no
19
+ Change da manutenção deve conter exatamente o payload retornado pelo preview.
20
+ Não reescreva cabeçalhos nem invente confirmação humana.
21
+ - Preview retorna `authorization_status: pending-human-decision`, `applied: false`
22
+ e nenhum recibo. Uma string de autorização direta não confirma que o humano
23
+ aprovou aquele reparo; somente a Decision humana exata permite aplicar o payload.
24
+ - O recibo deve ser emitido enquanto a manutenção está ativa. Seu consumo exige
25
+ Task de manutenção concluída, Run concluída e decisão real `completed` do Gui.
26
+ A entrega histórica retomada exige sua própria barreira de finalização.
27
+
28
+ ## Prova de publicação preservada
29
+
30
+ O comando verifica tag remota, SHA publicado, Release, workflows de CI/publicação,
31
+ inventário e integridade dos assets, versão npm e integridade do tarball. A versão
32
+ histórica não precisa continuar no dist-tag `latest`. A branch remota principal
33
+ deve ser descendente verificável do SHA publicado; objetos Git ausentes impedem a
34
+ verificação em vez de conceder sucesso.
35
+
36
+ O avanço histórico da versão precisa ser único e pertencer a uma sequência
37
+ contínua até o ciclo aberto. A manutenção pode pertencer ao ciclo atual ou ao
38
+ avanço imediatamente anterior. Exemplo: depois de publicar 5.3 e avançar para
39
+ 5.4, a manutenção 5.3 pode emitir recibo para uma Task 5.2 publicada, preservando a
40
+ prova original de 5.2. O recibo vincula os bytes do ciclo observado; emita-o após o
41
+ último avanço necessário, antes do Gui da manutenção.
42
+
43
+ Evidências permanecem atribuídas ao produtor original. O claim consumido e o
44
+ recibo canônico permitem seu uso histórico pelo sucessor exato, sem copiar uma
45
+ prova de 5.3 para 5.2, trocar SHA ou alterar a Evidence. A fronteira entre candidato
46
+ original e publicação continua limitada às alterações de registros admitidas.
47
+ Alterações posteriores do produto não são atribuídas ao candidato antigo.
48
+
49
+ ## Procedimento canônico
50
+
51
+ 1. Inspecione somente os IDs envolvidos, a revisão atual e as evidências originais.
52
+ Confirme que os critérios de aceite históricos realmente foram satisfeitos.
53
+ Publicação, teste técnico aprovado e `run.finished` não substituem esse aceite.
54
+ 2. Na manutenção autorizada, após o avanço de ciclo necessário e antes de seu Gui,
55
+ execute o preview abaixo. Substitua os marcadores pelos IDs e revisão observados.
56
+
57
+ ```text
58
+ node .agents/runtime/bin/zaip.mjs task recover-post-publication TASK-HISTORICA --actor-task TASK-MANUTENCAO --actor-execution EXEC-MANUTENCAO --run RUN-MANUTENCAO --expected-revision REVISAO --evidence EVD-ORIGINAL --json
59
+ ```
60
+
61
+ 3. Registre/ confirme a Decision humana correspondente à autorização real com o
62
+ `authorization_payload` exato do preview. Repita o comando com
63
+ `--decision DEC-HUMAN-OBSERVADA --apply`. Preserve o `receipt_path` retornado e
64
+ a Decision de emissão. Não monte nem edite o JSON do recibo manualmente.
65
+ 4. Conclua a manutenção com seu Gui real. Depois consuma o recibo:
66
+
67
+ ```text
68
+ node .agents/runtime/bin/zaip.mjs task resume-post-publication TASK-HISTORICA --receipt .local/recovery/post-publication/HASH-RETORNADO.json --json
69
+ ```
70
+
71
+ 5. Use a raiz sucessora retornada para o fechamento histórico autorizado. Preserve
72
+ executor elegível, revisão aplicável e Gui independente. Verifique os estados
73
+ canônicos de Task, Change e Execution antes de anunciar conclusão.
74
+
75
+ No mesmo turno, o claim preserva o predecessor terminal e vincula o sucessor ao
76
+ recibo exato. Um novo turno exige identidade, modelo e esforço observados e mantém
77
+ a causalidade. Não simule turno, executor ou identidade para obter o claim.
78
+
79
+ Os artefatos originais de tests, evals, checks, evidence e observations são
80
+ congelados em inventário de caminhos e hashes. Alterar ou remover um original
81
+ depois da emissão invalida a ponte de prova. Novas validações/Evidences tipadas
82
+ podem ser anexadas após a retomada, vinculadas à raiz recovery exata, à mesma
83
+ Task/Change/Execution e ao candidato histórico. Artefato de outro Run, candidato
84
+ novo ou observação adicional não amplia esse snapshot. Recibos legados sem
85
+ inventário conservam sua verificação integral anterior.
86
+ Metadados de fechamento continuam sujeitos aos gates existentes. A recuperação
87
+ não concede writer de produto para uma release já publicada, não move tags e não
88
+ afrouxa o claim geral do checkout.
89
+
90
+ ## Quando o resultado histórico não pode ser concluído
91
+
92
+ Se uma meta histórica permanece sem prova, mantenha o bloqueio e registre a
93
+ pendência e sua relação com a entrega que a absorveu. Uma release posterior pode
94
+ demonstrar seu próprio resultado, mas não cumprir retroativamente o aceite de
95
+ outro candidato. `task cancel TASK-ID --json` é uma operação existente para
96
+ cancelamento explicitamente autorizado pelo humano; não significa sucesso nem
97
+ deve ser inferida de uma publicação. O runtime não introduz um estado automático
98
+ `superseded` para disfarçar uma pendência.
99
+
100
+ ## Continuidade e compatibilidade
101
+
102
+ A continuação procura o responsável pelo mesmo alvo no contexto do thread. Uma
103
+ Run responsável ainda ativa impede criar outra raiz concorrente; reconcilie o
104
+ evento terminal observado e preserve a decisão do Gui. Uma Run terminal pode ser
105
+ usada como predecessor causal. Essa verificação não fecha Runs automaticamente.
106
+
107
+ Recibos v1 e claims de SPEC v3/v4 continuam legíveis. Recibos v2 suportam Task-first
108
+ e a vinculação da autorização direta; claims v5/v6 representam respectivamente
109
+ sucessão no mesmo turno e em novo turno para Task-first. O relay delegado da SPEC
110
+ continua reservado ao fluxo macro; Task-first usa `task resume-post-publication`.
111
+
112
+ Os testes focais cobrem rejeição por identidade/autorização/prova incompatível,
113
+ reexecução após falha parcial sem duplicar proprietário, preservação do produtor
114
+ da Evidence, histórico de publicação avançado e continuidade sem raízes paralelas.
115
+ Essas provas locais não substituem a revisão independente nem os gates do candidato
116
+ final. Reteste apenas após invalidação documentada relevante.
117
+
118
+ Consulte também [governança de execução](../../zaip-skill-execution/references/runtime-governance.md)
119
+ e [fechamento de lifecycle](../SKILL.md).
@@ -1 +1 @@
1
- 5.1
1
+ 5.3