@zaip-ai/cli 6.0.1 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/services/adapters.d.ts +1 -1
  2. package/dist/services/adapters.js +1 -1
  3. package/dist/services/project-model-migration.d.ts.map +1 -1
  4. package/dist/services/project-model-migration.js +7 -6
  5. package/dist/services/project-model-migration.js.map +1 -1
  6. package/dist/services/project-model-migration.test.js +12 -8
  7. package/dist/services/project-model-migration.test.js.map +1 -1
  8. package/package.json +1 -1
  9. package/templates/.agents/README-ENG.md +12 -0
  10. package/templates/.agents/README.md +12 -0
  11. package/templates/.agents/config/agents/catalog.yaml +23 -23
  12. package/templates/.agents/config/agents/discovery.json +2 -2
  13. package/templates/.agents/config/clients/codex/agents/zaip-agent-analyst.toml +2 -2
  14. package/templates/.agents/config/clients/codex/agents/zaip-agent-auditor.toml +2 -2
  15. package/templates/.agents/config/clients/codex/agents/zaip-agent-backend.toml +1 -1
  16. package/templates/.agents/config/clients/codex/agents/zaip-agent-brand-strategist.toml +1 -1
  17. package/templates/.agents/config/clients/codex/agents/zaip-agent-builder.toml +1 -1
  18. package/templates/.agents/config/clients/codex/agents/zaip-agent-cloud-engineer.toml +1 -1
  19. package/templates/.agents/config/clients/codex/agents/zaip-agent-data-analyst.toml +1 -1
  20. package/templates/.agents/config/clients/codex/agents/zaip-agent-designer.toml +1 -1
  21. package/templates/.agents/config/clients/codex/agents/zaip-agent-finalizer.toml +2 -2
  22. package/templates/.agents/config/clients/codex/agents/zaip-agent-frontend.toml +1 -1
  23. package/templates/.agents/config/clients/codex/agents/zaip-agent-general-operations.toml +1 -1
  24. package/templates/.agents/config/clients/codex/agents/zaip-agent-governance-compliance.toml +1 -1
  25. package/templates/.agents/config/clients/codex/agents/zaip-agent-growth-strategist.toml +1 -1
  26. package/templates/.agents/config/clients/codex/agents/zaip-agent-integrator.toml +2 -2
  27. package/templates/.agents/config/clients/codex/agents/zaip-agent-marketing-analyst.toml +1 -1
  28. package/templates/.agents/config/clients/codex/agents/zaip-agent-orchestrator.toml +1 -1
  29. package/templates/.agents/config/clients/codex/agents/zaip-agent-refactoring-specialist.toml +1 -1
  30. package/templates/.agents/config/clients/codex/agents/zaip-agent-reviewer.toml +2 -2
  31. package/templates/.agents/config/clients/codex/agents/zaip-agent-sales-specialist.toml +1 -1
  32. package/templates/.agents/config/clients/codex/agents/zaip-agent-security-auditor.toml +2 -2
  33. package/templates/.agents/config/clients/codex/agents/zaip-agent-task-executor.toml +1 -1
  34. package/templates/.agents/config/clients/codex/agents/zaip-agent-website-developer.toml +1 -1
  35. package/templates/.agents/config/clients/codex/agents/zaip-agent-writer.toml +1 -1
  36. package/templates/.agents/config/pricing/models.json +29 -1
  37. package/templates/.agents/config/project.yaml +2 -2
  38. package/templates/.agents/dashboard/.zaip-managed.json +37 -37
  39. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-Bni7muep.js → DashboardHelpDialog-tg6j_0De.js} +202 -7
  40. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-Cctm7uaW.js → PricingSettingsDialog-DlkxF4w_.js} +1 -1
  41. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-Dr5Cw6py.js +3 -0
  42. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-B4VQDPo5.js → TraceabilityWorkspace-B-5yP5Jx.js} +1 -1
  43. package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-ykDJSpnb.js → dashboard-localization-CqicG5jJ.js} +12 -0
  44. package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-mZ3OmU_0.js → index-CPcBwWeO.js} +2 -2
  45. package/templates/.agents/dashboard/apps/frontend/dist/index.html +1 -1
  46. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  47. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api-settings.ts +2 -2
  48. package/templates/.agents/dashboard/apps/frontend/src/project-settings-model.ts +1 -1
  49. package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +2 -2
  50. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  51. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  52. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  53. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  54. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  55. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  56. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +67 -67
  57. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +42 -42
  58. package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
  59. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +68 -68
  60. package/templates/.agents/dashboard/packages/local-runtime/src/agent-catalog-settings.test.ts +15 -15
  61. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.test.ts +2 -2
  62. package/templates/.agents/dashboard/packages/local-runtime/src/server-projections.ts +15 -4
  63. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  64. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  65. package/templates/.agents/design/.zaip-managed.json +3 -3
  66. package/templates/.agents/design/apps/catalog/package.json +1 -1
  67. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  68. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  69. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  70. package/templates/.agents/requirements/comparative-audit.md +1 -1
  71. package/templates/.agents/requirements/context-engine.md +1 -1
  72. package/templates/.agents/requirements/cost-observability.md +1 -1
  73. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  74. package/templates/.agents/requirements/data-export.md +1 -1
  75. package/templates/.agents/requirements/design-system.md +1 -1
  76. package/templates/.agents/requirements/execution-engine.md +1 -1
  77. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  78. package/templates/.agents/requirements/model-orchestration.md +10 -6
  79. package/templates/.agents/requirements/public-distribution.md +1 -1
  80. package/templates/.agents/requirements/software-architecture.md +1 -1
  81. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  82. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  83. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  84. package/templates/.agents/runtime/VERSION +1 -1
  85. package/templates/.agents/runtime/bin/zaip.mjs +17 -17
  86. package/templates/.agents/runtime/checksums.sha256 +5 -5
  87. package/templates/.agents/runtime/manifest.json +1 -1
  88. package/templates/.agents/runtime/provenance.json +4 -4
  89. package/templates/.agents/runtime/sbom.cdx.json +1 -1
  90. package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +2 -0
  91. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.mjs +26 -1
  92. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-publication-intent.test.mjs +76 -0
  93. package/templates/.agents/zaip-aios/INDEX.md +10 -1
  94. package/templates/.agents/zaip-aios/README.md +21 -0
  95. package/templates/.agents/zaip-aios/VERSION +1 -1
  96. package/templates/.agents/zaip-aios/guides/14-troubleshooting.md +6 -1
  97. package/templates/.agents/zaip-aios/guides/16-lifecycle-e-reconciliacao.md +42 -0
  98. package/templates/.agents/zaip-aios/guides/18-catalogo-de-agentes.md +1 -1
  99. package/templates/.agents/zaip-aios/guides/23-orquestracao-de-modelos.md +24 -3
  100. package/templates/.agents/zaip-aios/guides/26-qualidade-e-release.md +103 -0
  101. package/templates/.agents/zaip-aios/guides/27-telemetria-git-native.md +12 -0
  102. package/templates/.agents/zaip-aios/guides/28-lifecycle-completo.md +8 -0
  103. package/templates/template-manifest.json +108 -108
  104. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-D61ZJG4L.js +0 -3
@@ -1,11 +1,11 @@
1
1
  b146bd0c7c60b1ab43c4f71e0b1d2262c6df6da6f7053a0425f834ccb77a6b48 LICENSE
2
2
  bc02cba77e8d51e5c580f43668863dc868eda66f1ff663bfaa49fcf3ca16320e THIRD_PARTY_NOTICES.md
3
- cf3701cb2416e87a99c0e77dbd0518fc4fc27e390f025c024e6ed1c389c928e0 VERSION
4
- ea96e255489fc59126568fbf2e36f88d46a56442514a43aba211f33ef37a1c5e bin/zaip.mjs
5
- 3b5cf6b8aeebc457cde6a5a3d889d042983272ad8695b4acb95c8be581ccdaac manifest.json
3
+ 143d44a26fb0a34265b64a4b268daa11cd45a7200d8c4b23b844cc3028cff6db VERSION
4
+ 3394d619b29dda46ab5834df34e13a9eb602df376bb72bd46d6f7a9a808542e2 bin/zaip.mjs
5
+ 0e1ac04d216912122c3e559e842ae0558ec962c3a21d291c273408ee51465631 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
- 9a3baaaa1db06fe6caa56dc3b3e9391625e08969f887fb3afcc38f7a69d8c6c9 provenance.json
10
- 56beff20a7c2bd8e3e457f32cc50559528e1b4db38db44b7ef7f87e9ab07aba0 sbom.cdx.json
9
+ 5d608132809d582cc7145d90384482c765f0ae4f6e91e7986a3907c55f5d2ad7 provenance.json
10
+ 168a896e7065c9660680604b8f17eb3bac40d5a42eef8e708e1df3f0ad340996 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": "6.0.1",
4
+ "version": "6.2.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": "6.0.1",
5
+ "version": "6.2.0",
6
6
  "source_origin": "zaip-aios:local-build",
7
7
  "lockfile_sha256": "b5e11351951654d41aa78dc858d43990a12964ba4051a070613ac8b11bc73a27",
8
- "sbom_sha256": "56beff20a7c2bd8e3e457f32cc50559528e1b4db38db44b7ef7f87e9ab07aba0",
9
- "runtime_sha256": "8781c0725c48b5a6d20f156fd23d03842ba161ada04e8080422442f1ec2f29e2",
10
- "statement_sha256": "e8a81f1ce0a1d0140772a85671588ceab818c86d19422da4bf23fe4976df3918"
8
+ "sbom_sha256": "168a896e7065c9660680604b8f17eb3bac40d5a42eef8e708e1df3f0ad340996",
9
+ "runtime_sha256": "6134447215ae3248518545dd522729851079e5871d5800a799f5a5a8d45d7389",
10
+ "statement_sha256": "c979f00632a01aec55e35bfdc7f1e6a5381229f0f0c6f6f9ba28019fa90c1bed"
11
11
  }
@@ -6,7 +6,7 @@
6
6
  "component": {
7
7
  "type": "application",
8
8
  "name": "zaip-aios",
9
- "version": "6.0.1"
9
+ "version": "6.2.0"
10
10
  }
11
11
  },
12
12
  "components": [
@@ -26,6 +26,8 @@ The request file is UTF-8 plain text containing the actual human request. The re
26
26
 
27
27
  The requested deploy is sufficient authorization for the selected mode. Continue without a routine confirmation or an extra warning about an existing pipeline. Integrity, authentication, destructive operations and a required scope expansion remain real blockers.
28
28
 
29
+ The resolver also accepts direct requests to finish pending work, update documentation and publish an explicit minor version, or “Pode fazer os ajustes e publicar”. The latter uses project policy and the current release cycle without inventing a version. Quoted requests, questions, negations and pending human approval remain non-authorizing; all-worktree scope is never inferred from these phrases.
30
+
29
31
  ## Preserve and prepare
30
32
 
31
33
  1. Record sanitized intent, resolved mode/scope, selected checkout, source SHA/branch, configured remote target, reviewed paths, preflight and preservation reference in evidence. Keep the chat result brief.
@@ -77,6 +77,16 @@ export function requestedDeployment(request) {
77
77
  "A bounded current human request is required",
78
78
  );
79
79
  const text = normalize(request);
80
+ // An explicitly named numeric patch keeps its separate signed patch route.
81
+ // Never truncate an ordinary release suffix into a minor version.
82
+ const ordinaryVersions = text.replace(
83
+ /\bpatch\s+v(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?![\w.+-])/g,
84
+ "patch",
85
+ );
86
+ if (ordinaryVersions !== text && [...text.matchAll(/\bv?\d+\.\d+/g)].length !== 1)
87
+ return { authorized: false, reason: "conflicting-explicit-release-versions" };
88
+ if (/\bv\d+\.\d+(?:\.[a-z0-9_]|[-+][a-z0-9_]|[a-z_])/.test(ordinaryVersions))
89
+ return { authorized: false, reason: "unsupported-explicit-release-version" };
80
90
  // Provenance and explicit human holds constrain every authorization route.
81
91
  const quotedOrReported =
82
92
  /[`"'“”]/.test(request) || /\b(?:disse|citou|exemplo|quoted|said)\b/.test(text);
@@ -124,6 +134,10 @@ export function requestedDeployment(request) {
124
134
  // Only a direct publication imperative is executable. References, questions and quoted
125
135
  // historical instructions are not authority; unknown wording never upgrades the mode.
126
136
  const withoutCourtesy = text.replace(/^(?:(?:ok|por favor|agora|please)[, ]+)+/, "");
137
+ const finalAdjustmentsAndPublish =
138
+ /^(?:faca|realize|execute)\s+(?:esses|os)\s+(?:ultimos\s+)?(?:ajustes|ajuates)(?:\s+necessarios)?\s+e\s+publique\s+(?:a\s+)?(?:versao\s+)?v(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)[.!]?$/.test(
139
+ withoutCourtesy,
140
+ );
127
141
  const sequencedDirect =
128
142
  /^primeiro passo entao e corrigir\b[^\n?]*\bfazer merge\b[^\n?]*,\s*fazer deploy\b/.test(
129
143
  withoutCourtesy,
@@ -163,6 +177,14 @@ export function requestedDeployment(request) {
163
177
  /\b(?:quando|se|apos|depois)\b[^?]*\b(?:autorizar|aprovar|confirmar|autorizacao|aprovacao|confirmacao)\b/.test(
164
178
  text,
165
179
  );
180
+ const pendingWorkAndPublish =
181
+ /^(?:execute|conclua|finalize)\s+o\s+que(?:\s+que)?\s+ficou\s+pendente,\s*atualize\s+(?:as\s+)?documentacoes\s+e\s+publique\s+(?:a\s+)?(?:versao\s+)?v(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)[.!]?$/.test(
182
+ withoutCourtesy,
183
+ );
184
+ const approvedAdjustmentsAndPublish =
185
+ /^pode\s+(?:criar\s+sim\s+e\s+finalize\s+os\s+ajustes\s+e\s+publique\s+(?:a\s+)?v(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)|fazer\s+os\s+ajustes\s+e\s+publicar)[.!]?$/.test(
186
+ withoutCourtesy,
187
+ );
166
188
  const direct =
167
189
  /^(?:(?:pode|podemos)\s+)?(?:(?:faca|fazer|faz|realize|execute|do)\s+)?(?:deploy|dpeloy|depoly|push|commit|publique|publicar|publish|envie|release|prepare|preparar)\b/.test(
168
190
  withoutCourtesy,
@@ -171,6 +193,9 @@ export function requestedDeployment(request) {
171
193
  releaseDirective ||
172
194
  proceedToVersion ||
173
195
  finalAdjustmentsToPublish ||
196
+ finalAdjustmentsAndPublish ||
197
+ pendingWorkAndPublish ||
198
+ approvedAdjustmentsAndPublish ||
174
199
  implementAndPublish ||
175
200
  shortPublicationVersion !== null;
176
201
  if (!direct || (/\?/.test(text) && !implementAndPublish) || waitsForAuthorization)
@@ -207,7 +232,7 @@ export function requestedDeployment(request) {
207
232
  /^(?:(?:pode|podemos)\s+)?(?:(?:faca|fazer|faz|realize|execute|do)\s+)?(?:push|commit)\b/.test(
208
233
  withoutCourtesy,
209
234
  );
210
- const versions = [...text.matchAll(/\bv((?:0|[1-9]\d*)\.(?:0|[1-9]\d*))(?![.\d])/g)].map(
235
+ const versions = [...text.matchAll(/\bv((?:0|[1-9]\d*)\.(?:0|[1-9]\d*))(?!\d|\.\d)/g)].map(
211
236
  (x) => x[1],
212
237
  );
213
238
  if (releaseDirective)
@@ -12,6 +12,82 @@ const builder = {
12
12
  };
13
13
  const input = (request, identity) => ({ request, identity });
14
14
 
15
+ test("pending documentation and approved adjustments preserve explicit publication authority", () => {
16
+ const directives = [
17
+ "Execute o que que ficou pendente, atualize as documentacoes e publique a v6.2",
18
+ "Conclua o que ficou pendente, atualize as documentações e publique v6.2.",
19
+ "Pode criar sim e finalize os ajustes e publique v6.2",
20
+ "Pode fazer os ajustes e publicar",
21
+ ];
22
+ for (const directive of directives) {
23
+ const plan = resolveDeployment(input(directive, builder));
24
+ assert.equal(plan.mode, "release", directive);
25
+ assert.equal(plan.phase, "publish");
26
+ assert.equal(plan.scope, "current-work");
27
+ assert.equal(plan.version, directive.includes("v6.2") ? "6.2" : null);
28
+ for (const request of [
29
+ `${directive}?`,
30
+ `Ele disse: ${directive}`,
31
+ `"${directive}"`,
32
+ `${directive} se eu aprovar`,
33
+ `${directive}. Aguarde minha confirmação.`,
34
+ directive.replace(/e (publique|publicar)/, "e não $1"),
35
+ `Não publique. ${directive}`,
36
+ ])
37
+ assert.equal(resolveDeployment(input(request, builder)).mode, "none", request);
38
+ }
39
+ for (const suffix of [".1", "-rc1", " e a v6.3"])
40
+ assert.equal(resolveDeployment(input(`${directives[0]}${suffix}`, builder)).mode, "none");
41
+ const consumer = resolveDeployment(
42
+ input(directives[3], { origin: "git@github.com:example/app.git", rootName: "app" }),
43
+ );
44
+ assert.equal(consumer.mode, "commits");
45
+ assert.equal(consumer.npm_publication, false);
46
+ });
47
+
48
+ test("explicit numeric patch retains its separate signed route without minor truncation", () => {
49
+ const plan = resolveDeployment(input("Publique o patch v6.0.1 com Release e npm", builder));
50
+ assert.equal(plan.mode, "release");
51
+ assert.equal(plan.phase, "publish");
52
+ assert.equal(plan.version, null);
53
+ for (const request of [
54
+ "Publique o patch v6.0.1-rc1 com Release e npm",
55
+ "Publique o patch v6.0.1.beta com Release e npm",
56
+ "Publique o patch v6.0.1 se eu aprovar",
57
+ '"Publique o patch v6.0.1 com Release e npm"',
58
+ "Publique a v6.1 e o patch v6.0.1",
59
+ "Publique o patch v6.0.1 e a v6.1",
60
+ "Publique o patch v6.0.1 e o patch v6.0.2",
61
+ "Publique o patch v6.0.1 e a versão 6.1",
62
+ ])
63
+ assert.equal(resolveDeployment(input(request, builder)).mode, "none", request);
64
+ });
65
+
66
+ test("final adjustments and an explicit minor publication preserve bounded authority", () => {
67
+ const directive = "Ok, faca esses ultimos ajuates e publique a versao v6.1";
68
+ for (const request of [directive, "Faça os últimos ajustes e publique a versão v6.1."]) {
69
+ const plan = resolveDeployment(input(request, builder));
70
+ assert.equal(plan.mode, "release");
71
+ assert.equal(plan.phase, "publish");
72
+ assert.equal(plan.version, "6.1");
73
+ assert.equal(plan.scope, "current-work");
74
+ }
75
+ for (const request of [
76
+ `${directive}?`,
77
+ `Ele disse: ${directive}`,
78
+ `"${directive}"`,
79
+ `${directive} se eu aprovar`,
80
+ `${directive}. Aguarde minha confirmação.`,
81
+ directive.replace("e publique", "e não publique"),
82
+ directive.replace("v6.1", "v6.1.1"),
83
+ `${directive} e a v6.2`,
84
+ "publique a versão v6.1.beta",
85
+ "publique a versão v6.1-rc1",
86
+ "publique a versão v6.1.1",
87
+ ])
88
+ assert.equal(resolveDeployment(input(request, builder)).mode, "none", request);
89
+ });
90
+
15
91
  test("explicit major after adjustments preserves literal authority and refuses human holds", () => {
16
92
  const directive =
17
93
  "Faça todos os ajuates e publique a v6.0 com uma versao final pronta pra produção";
@@ -61,7 +61,16 @@ Guias são documentação, não certificado de release nem autorização para
61
61
  deploy, reabrir trabalho bloqueado, alterar permissões ou executar exemplos
62
62
  destrutivos. Relatórios históricos preservam o candidato e a data observados.
63
63
 
64
- ## Ler as novidades da v3
64
+ ## Mudanças recentes e contexto histórico
65
+
66
+ Para as mudanças recentes, leia [16 — Fechamento](guides/16-lifecycle-e-reconciliacao.md)
67
+ (preflight, respostas compactas e recuperação Task-first/SPEC),
68
+ [14 — Diagnósticos](guides/14-troubleshooting.md) (cache, conflitos e demora),
69
+ [26 — Qualidade e release](guides/26-qualidade-e-release.md) (patch imutável,
70
+ provas de publicação e auditoria datada v6.1) e
71
+ [27 — Telemetria](guides/27-telemetria-git-native.md) (proprietário único no handoff).
72
+
73
+ ### Contexto histórico da linha v3
65
74
 
66
75
  Comece por [19 — Perfis de autonomia](guides/19-assurance-e-autonomia.md):
67
76
  4/1, 10/3 e ilimitado; depois [23 — Modelos](guides/23-orquestracao-de-modelos.md)
@@ -1,5 +1,10 @@
1
1
  # ZAIP-AIOS Handbook
2
2
 
3
+ Na v6.2, os [guias de modelos](guides/23-orquestracao-de-modelos.md) e de
4
+ [qualidade e release](guides/26-qualidade-e-release.md) cobrem Sol 6.1, migração
5
+ dos defaults e publicação com coordenador integrado. Use `zaip version --json`
6
+ para observar a versão instalada; documentação local não comprova publicação.
7
+
3
8
  Este handbook é a camada operacional instalada junto do ZAIP-AIOS. Ele ajuda
4
9
  pessoas e agentes a localizar o procedimento certo sem carregar todo o
5
10
  framework no contexto. O contrato executável continua nos arquivos canônicos
@@ -64,6 +69,22 @@ Consulte [qualidade e release](guides/26-qualidade-e-release.md) para distinguir
64
69
  checks locais, CI e aprovação de produção. Documentação não autoriza publicação
65
70
  nem reabertura de entregas históricas bloqueadas.
66
71
 
72
+ ## Atualização operacional e distribuição
73
+
74
+ Os guias [16](guides/16-lifecycle-e-reconciliacao.md),
75
+ [26](guides/26-qualidade-e-release.md) e [27](guides/27-telemetria-git-native.md)
76
+ incorporam diagnóstico antes do Gui, recuperação pós-publicação, saída compacta,
77
+ patch imutável e atribuição única de telemetria. O guia 26 registra a auditoria
78
+ datada da v6.1 e separa mudanças entregues de otimizações ainda propostas.
79
+ Consulte [troubleshooting](guides/14-troubleshooting.md) para sintomas recentes.
80
+
81
+ No mantenedor, sincronize framework lock e templates com os geradores oficiais
82
+ antes de empacotar. Confira os guias e os dois READMEs no TGZ e numa instalação
83
+ isolada: os manuais da raiz são instalados em `.agents/README.md` e
84
+ `.agents/README-ENG.md`, e o handbook em `.agents/zaip-aios/`. Preserve o README
85
+ autoral do consumidor. Template atualizado no checkout não altera pacote npm
86
+ publicado; a atualização pública depende de nova versão imutável.
87
+
67
88
  ## Funcionamento da linha v3
68
89
 
69
90
  A documentação descreve `autonomy-v1`; publicação e qualificação devem ser
@@ -1 +1 @@
1
- 6.0
1
+ 6.2
@@ -5,7 +5,7 @@
5
5
  3. Rode doctor, validadores focados e `git diff --check`.
6
6
  4. Confira versoes, paths, encoding, variaveis e arquivos gerenciados.
7
7
  5. Compare `manifest.json`, `summary.json`, índices e chunks de `records/lifecycle`, sem varrer records.
8
- 6. Corrija a causa, repita a reproducao e depois os gates completos.
8
+ 6. Corrija a causa e repita a reprodução e as verificações afetadas. Execute gates completos somente quando o impacto ou a qualificação final exigir; preserve provas ainda válidas do mesmo candidato e ambiente.
9
9
 
10
10
  Se uma Task estiver presa em executing/verifying, use o popup Reconciliar para o backlog global. O reparo aceita `task_complete` exato, marca Run orfa apos dez minutos como failed e usa blocked quando faltam gates; nunca infere cancelamento. A v4 deve conciliar a tentativa **atual** no fechamento ou próximo evento Codex da mesma Task, sem varredura global automática na abertura do dashboard. Se o host parou e não houve novo evento, relate a pendência em vez de dizer que ela ainda está executando.
11
11
 
@@ -27,6 +27,11 @@ Se “finalizar o documento” tentou entregar um PRD `draft`, confira adapters/
27
27
  | Responsável já fechado sem decisão | Recuperação autorizada/nova tentativa; reconciliação repetida não cria aprovação |
28
28
  | Perfil Essencial tentou Astra automático | Rejeite a seleção; não trate fallback/herança como autorização |
29
29
  | Snapshot de Runs incompleto | Rebuild explícito dos manifests; não invente campos ou faça varredura JSONL oculta na query |
30
+ | `executor_missing` antes do Gui | Consulte `run closure --id RUN-ID --preflight --json`; executor iniciado/falho não satisfaz conclusão. Preserve `blocked`/`failed` quando cabível; não crie executor cerimonial. |
31
+ | Recuperação acusa outro dono do turno | Confira recibo e identidade exatos. A exceção de observação passiva exige a forma canônica do guia 16; dono operacional continua bloqueando. |
32
+ | Cache sem reaproveitamento | Inspecione `--plan` no rapid check do mantenedor e as razões por grupo. `identity-changed` difere de `no-proof`; não retire SHA, assinatura ou verificação de dependências para forçar um hit. |
33
+ | `run finish --view compact` demora | Compacto descreve a saída, não o custo interno. Examine o processo iniciado, telemetria, locks e projeções; não dispare fechamento concorrente nem atribua a causa sem medição. |
34
+ | Release GitHub existe, npm ainda não | Acompanhe o publicador até resultado terminal e confira versão/integridade no registry. Preserve tag/TGZ; reparo de controle exige a rota autenticada, não reempacotamento da mesma versão. |
30
35
 
31
36
  A tolerância de dez minutos para Run órfã no reparo manual não é prazo de
32
37
  desistência de Task em atividade. Um timeout operacional também não comprova
@@ -122,3 +122,45 @@ uma autorização humana apenas no texto não substitui o contrato capturado.
122
122
  No fluxo nativo atual, editar produto exige posse central de escrita: `zaip task workspace TASK-ID --run RUN-ID`. A posse usa a raiz Git comum entre chats e worktrees e valida o dono e a Run; indisponibilidade bloqueia edição. Registros canônicos de lifecycle têm bootstrap próprio. Mensagens entre chats coordenam, mas não substituem Task, Run e claim. Alterações de produto sem proveniência única no checkout compartilhado bloqueiam transferência e limpeza automática até reconciliação.
123
123
 
124
124
  Para checkout isolado terminal, `zaip task workspace TASK-ID --run RUN-ID --close` inventaria arquivos e ignorados, exige integração se a Task concluiu, cria e testa backup em `.local/backup-branchs` e `.local/backup-worktrees` e só então remove worktree e branch. Ignorados desconhecidos ou backup não recuperável bloqueiam. `.local` fica fora do Git; o usuário limpa seus backups manualmente depois de conferi-los.
125
+
126
+ ## Diagnóstico antecipado e respostas compactas
127
+
128
+ Antes de despachar Gui, consulte `zaip run closure --id RUN-ID --preflight --json`.
129
+ `completion_preflight.completion_allowed` verifica a autoridade para concluir:
130
+ executor elegível **concluído** ou autorização direta válida desde a captura.
131
+ Executor ausente ou falho retorna `executor_missing`. `blocked_or_failed_allowed`
132
+ preserva uma avaliação verdadeira de inconclusão; não autoriza `completed`.
133
+ `active_descendant_ids` e `finalizer_dispatch_ready` informam separadamente
134
+ descendentes ativos e se já houve finalizador. Leia os campos em conjunto:
135
+ prontidão de despacho não significa aprovação. `execution native-next` também
136
+ fornece esse diagnóstico. O preflight é somente leitura; Evidence, revisão
137
+ aplicável e as barreiras de `run finalization`/`run finish` continuam exigidas.
138
+
139
+ `zaip manifest reconcile --id ID --view compact --json` e
140
+ `zaip run finish --id RUN-ID --status completed --view compact --json` retornam
141
+ resumos explícitos. O primeiro reconcilia a entidade indicada; o segundo só pode
142
+ concluir quando os gates permitirem. O JSON padrão e `--view full` preservam
143
+ o contrato anterior. Saída compacta reduz texto, não elimina coleta de telemetria,
144
+ leitura de Runs ou cálculo de reconciliação.
145
+
146
+ ## Recuperação pós-publicação e histórico bloqueado
147
+
148
+ Use `task recover-post-publication` e `task resume-post-publication` conforme
149
+ a [skill de fechamento](../../skills/zaip-skill-lifecycle-closure/SKILL.md).
150
+ O recibo autenticado vincula publicação imutável, manutenção concluída,
151
+ autorização, Task/Execution e responsável único. Um avanço posterior do ciclo
152
+ não apaga a publicação anterior: sua linha deve continuar única e conservar o
153
+ SHA. A Task histórica não recebe autorização para editar produto antigo.
154
+
155
+ Uma raiz observacional passiva pode compartilhar o turno sem ser dona da entrega.
156
+ A exceção exige cliente/thread/turno exatos, forma canônica de observação,
157
+ autor ausente ou compatível, ausência de Task/Change/Execution/Conversation,
158
+ de autorização operacional e de descendentes. Outro responsável real continua
159
+ sendo conflito. Não converta uma Run operacional em observação para liberá-la.
160
+
161
+ `task assurance TASK-ID --inherit-applicability-attempt N --run RUN-ID --json`
162
+ admite herança autenticada na recuperação Task-first, além da rota SPEC;
163
+ preserva plano, critérios, Decisions e hashes e valida o recibo consumido e o
164
+ turno observado. Não fabrica Evidence nova. Tasks bloqueadas por decisão humana
165
+ permanecem bloqueadas até retomada autorizada e comprovada. Testes de interrupção
166
+ e replay não concluem Tasks históricas reais.
@@ -72,7 +72,7 @@ O dispatch autônomo passa os `Task.write_scopes` a essa seleção **por Task**
72
72
 
73
73
  O `budget.soft_cycles` também acompanha o agente selecionado por Task e governa seu checkpoint suave. Tokens continuam observados para telemetria e custo, mas não interrompem nem exigem checkpoint. Para comparar agentes, use `zaip run aggregate --agent agent-ID`; o resultado inclui duração coberta, ciclos de uso observados, tokens, custo, cobertura e Runs de rework.
74
74
 
75
- Nanda (`agent-reviewer`) usa `gpt-6-sol` com esforço `medium` e `soft_cycles: 12`, proporcional à revisão standard. Ana (`agent-auditor`) usa `gpt-6-sol`/`high` para auditoria crítica ou explicitamente auditável; Luiz (`agent-security-auditor`) usa `gpt-6-sol`/`high` para auditoria de segurança explícita.
75
+ Nanda (`agent-reviewer`) usa `gpt-6.1-sol` com esforço `medium` e `soft_cycles: 12`, proporcional à revisão standard. Ana (`agent-auditor`) usa `gpt-6.1-sol`/`high` para auditoria crítica ou explicitamente auditável; Luiz (`agent-security-auditor`) usa `gpt-6.1-sol`/`high` para auditoria de segurança explícita.
76
76
 
77
77
  ## Dashboard e segurança operacional
78
78
 
@@ -66,7 +66,7 @@ partir do terceiro, quando a rota válida o selecionar; não se torna reviewer
66
66
  ou finalizer. A exceção de execução não acrescenta tentativas nem amplia
67
67
  write scopes.
68
68
 
69
- Os dois primeiros replanejamentos usam `gpt-6-sol`; o terceiro e os
69
+ Os dois primeiros replanejamentos usam `gpt-6.1-sol`; o terceiro e os
70
70
  seguintes permitidos usam `gpt-6-astra`. Executor e replanejador são
71
71
  invocações diferentes. Um plano Astra não obriga o executor a usar Astra.
72
72
 
@@ -93,15 +93,36 @@ telemetria de duração e checkpoints têm outras funções. Resultado desconhec
93
93
  não libera despacho duplicado. Para retomada, consulte o diário existente,
94
94
  não crie outra Task ou apague `.local` para renovar a quota.
95
95
 
96
+ ## Sol 6.1 e escolha de Luna/high
97
+
98
+ Novas seleções Sol usam `gpt-6.1-sol`, inclusive baseline, revisão, Gui e os dois primeiros replanejamentos. Luna continua `gpt-6-luna` e Astra continua `gpt-6-astra`; Terra não participa de novas seleções. Defaults legados Sol 6 e Terra/Sol 5.6 são normalizados em memória ao ler a configuração. Histórico, custos antigos e cabeçalhos de Runs permanecem com as identidades originais.
99
+
100
+ Na instalação/atualização autorizada, o instalador também persiste a migração dos IDs conhecidos no `project.yaml`, com backup, preservação de comentários e deduplicação da allowlist. Preferências manuais do Codex e identidades históricas não são reescritas.
101
+
102
+ Um plano congelado com Sol 6 permanece legível, mas não autoriza novo despacho automático: exige replanejamento explícito. Ausência de Sol 6.1 no host bloqueia sem downgrade. Os perfis gerados precisam estar carregados na sessão do Codex; escrever o TOML não comprova recarga. A seleção manual do principal continua pertencendo ao usuário.
103
+
104
+ Recomendação operacional, ainda sem benchmark comparativo neste projeto:
105
+
106
+ | Situação | Recomendação |
107
+ | --- | --- |
108
+ | Mudança mecânica ou extração simples com aceite claro | Luna/low |
109
+ | Problema local delimitado que exige mais raciocínio, com teste decisivo barato | Comparar Luna/high com Sol 6.1/medium |
110
+ | Implementação em vários módulos, ambiguidade ou custo alto de correção | Sol 6.1/medium; high quando a dificuldade justificar |
111
+ | Auditoria ampla, segurança ou arquitetura difícil | Sol 6.1/high; Astra só pela rota autorizada |
112
+
113
+ Luna/high é permitido por override explícito válido, mas não é o default automático, não altera revisores/Gui e não recebe equivalência presumida com Sol/medium. Compare os mesmos ACs, ambiente e conjunto de tarefas: aprovação na primeira revisão, reparos, duração total e custo por tarefa aprovada. Se falhar por compreensão/hipótese, prefira a rota governada Sol 6.1 em vez de insistir com mais esforço no Luna; mantenha os limites de recuperação. Mais esforço pode aumentar tokens e latência.
114
+
115
+ Fontes oficiais consultadas em 2026-10-10: [Sol 6.1](https://developers.openai.com/api/docs/models/gpt-6.1-sol), [Luna](https://developers.openai.com/api/docs/models/gpt-6-luna) e [reasoning effort](https://developers.openai.com/api/docs/guides/reasoning). Os preços API por 1M de tokens sem cache são US$2/US$10 (entrada/saída) para Sol 6.1 e US$0,10/US$0,50 para Luna: diferença de 20 vezes por token, não economia total garantida nem consumo equivalente da assinatura Codex.
116
+
96
117
  ## Família de modelos
97
118
 
98
119
  | Modelo | Papel dentro da política ZAIP |
99
120
  | --- | --- |
100
121
  | `gpt-6-luna` | Implementação/testes simples, locais e delimitados: low; alto volume delimitado conforme sinais |
101
- | `gpt-6-sol` | Execução padrão: medium; complexidade/ambiguidade alta: high; reviewer/Gui: medium; auditor: high |
122
+ | `gpt-6.1-sol` | Execução padrão: medium; complexidade/ambiguidade alta: high; reviewer/Gui: medium; auditor: high |
102
123
  | `gpt-6-astra` | Diagnóstico crítico difícil evidenciado e replanejamento/execução autorizados a partir do terceiro plano: high |
103
124
 
104
- Os antigos `gpt-5.6-terra` e `gpt-5.6-sol` migraram para `gpt-6-sol`;
125
+ Os antigos `gpt-5.6-terra` e `gpt-5.6-sol` migraram para `gpt-6.1-sol`;
105
126
  `gpt-5.6-luna` migrou para `gpt-6-luna`. A preferência Sol do catálogo é um
106
127
  baseline. Ela não substitui a política de um perfil persistido nem altera os
107
128
  nomes dos modelos em registros históricos.
@@ -1,5 +1,25 @@
1
1
  # Qualidade e qualificação de release
2
2
 
3
+ ## Ajustes e publicação na v6.2
4
+
5
+ Pedidos diretos de finalizar pendências, atualizar documentação e publicar uma
6
+ versão explícita são reconhecidos pelo contrato. “Pode fazer os ajustes e
7
+ publicar” segue a política do projeto e seu ciclo corrente; não infere versão
8
+ arbitrária nem amplia o escopo. Perguntas, citações, negações e espera por
9
+ aprovação humana permanecem sem autoridade de publicação.
10
+
11
+ Para ajustes e publicação autorizados juntos, mantenha uma única Task crítica
12
+ direta e use o modo `--integrated-task` do freeze. Uma Task já concluída não deve
13
+ ser reutilizada para novos arquivos: normalmente o intake exige novo turno para
14
+ outra entrega. Planejar o coordenador integrado desde a captura evita essa
15
+ interrupção sem eliminar revisão, finalizador, CI ou qualificação assinada.
16
+
17
+ Confira README, guias, templates e a instalação do TGZ final 6.2.0. Sol 6.1 e
18
+ Luna/high estão detalhados no guia 23. Preserve as notas históricas de auditoria;
19
+ esta mudança não constitui nova medição de qualidade ou redução de custo.
20
+
21
+ ## Critérios de qualificação
22
+
3
23
  O candidato de release precisa passar gates locais, clean-room e distribuição pública sem confundir validação técnica com aprovação de produção.
4
24
 
5
25
  As decisões de [lifecycle v4](28-lifecycle-completo.md#contrato-aprovado-para-a-v4-a-implementar-e-qualificar)
@@ -263,6 +283,89 @@ defina uma medição independente com artefatos identificados e falhas observada
263
283
 
264
284
  ## Evolução de confiabilidade e documentação
265
285
 
286
+ A evolução recente, as provas da v6.1 e os limites da auditoria estão nas seções
287
+ seguintes. Os registros abaixo preservam sua data e seu candidato.
288
+
289
+ ### Patch imutável e fechamento separado
290
+
291
+ A linha corretiva separa produto `N.N`, pacote `N.N.P` e tag `vN.N.P`. Patch exige
292
+ pedido explícito e contrato assinado próprio; não substitui bytes publicados nem
293
+ avança por si só o ciclo de produto. O parser distingue pedido direto de citação,
294
+ negação, pergunta e condição. Misturar patch e minor ou informar versões ambíguas
295
+ não autoriza publicação. Consulte a [skill de deploy](../../skills/zaip-skill-github-deploy/SKILL.md).
296
+
297
+ Se o publicador falhar depois da Release, preserve candidato e TGZ. Reparo de
298
+ controle usa SHA e CI próprios, ancestralidade e inventário restrito; cada commit
299
+ intermediário é inspecionado. O publicador instala dependências do lockfile com
300
+ scripts desabilitados antes do verificador, sem recompilar o produto assinado.
301
+ O CI do reparo não substitui a qualificação do pacote.
302
+
303
+ Distinga qualificação do candidato, publicação GitHub, versão/integridade npm e
304
+ fechamento Task/Change/Execution. O commit posterior de metadata tem CI próprio
305
+ e conserva a tag no SHA publicado. Alterar documentação ou sincronizar templates
306
+ localmente não modifica o pacote no npm; novos bytes exigem nova versão publicada.
307
+
308
+ ### Eficiência medida e prevenção de retrabalho
309
+
310
+ O rapid check do mantenedor resume contagens, seleção e cache no console;
311
+ `--plan` conserva o diagnóstico completo. Grupos limitados a dependências estáticas
312
+ comprovadas podem usar sua identidade; os demais preservam SHA exato e limpeza
313
+ do checkout. Uma mudança de identidade pode invalidar provas legítimas.
314
+ Reuso exige identidade, dependências, ambiente, política e autoridade compatíveis.
315
+
316
+ Antecipe formatação, paridade e contratos baratos antes dos gates longos.
317
+ Após correção, revalide o impacto e a prova invalidada; não repita testes só para
318
+ criar artefatos. Registre preparo, qualificação, pre-main, CI, publicação e
319
+ fechamento separadamente, com hits/misses e causas. Duração de uma etapa,
320
+ quantidade de testes e resposta curta não demonstram economia total.
321
+
322
+ ### Fotografia da auditoria de 10/10/2026 — v6.1
323
+
324
+ Escopo: delta de código, evidências existentes e consultas de Release/npm/CI;
325
+ sem nova suíte completa, teste de intrusão, ensaio visual ou operação prolongada.
326
+ As notas são avaliações técnicas do chat, não certificações nem gates.
327
+
328
+ | Dimensão | Nota / 10 |
329
+ | --- | ---: |
330
+ | Funcionalidade e CLI | 8,7 |
331
+ | Governança e fechamento | 8,5 |
332
+ | Eficiência e prevenção de retrabalho | 7,0 |
333
+ | Recuperação e resiliência | 8,0 |
334
+ | Segurança e controles | 8,7 |
335
+ | Testes e qualidade das evidências | 8,8 |
336
+ | Distribuição e publicação | 9,2 |
337
+ | Arquitetura e manutenção | 8,0 |
338
+ | Observabilidade e rastreabilidade | 8,0 |
339
+ | Documentação e README | 8,7 |
340
+
341
+ Média simples arredondada: **8,4/10**; prontidão para produção avaliada
342
+ separadamente: **8,2/10**, com acompanhamento. A qualificação assinada passou
343
+ 20 gates em 871096 ms (14min31s); pre-main passou 28 grupos com 837 arquivos
344
+ selecionados e zero hits (26 `identity-changed`, dois `no-proof`). O gate de
345
+ tamanho registrou 2332 arquivos, 181 avisos e zero erros. Esses números pertencem
346
+ ao candidato e ambiente observados, não são SLA nem medição dos consumidores.
347
+
348
+ Candidato: `7bf498e2bea42f8739a73e1bd32b8c2105834a85`;
349
+ [Release v6.1](https://github.com/zaip-ai/zaip-aios/releases/tag/v6.1),
350
+ [npm 6.1.0](https://www.npmjs.com/package/@zaip-ai/cli/v/6.1.0),
351
+ [CI do candidato](https://github.com/zaip-ai/zaip-aios/actions/runs/38083472311),
352
+ [publicador](https://github.com/zaip-ai/zaip-aios/actions/runs/38083583146) e
353
+ [CI do fechamento](https://github.com/zaip-ai/zaip-aios/actions/runs/38084917032)
354
+ foram confirmados; `latest` apontava para 6.1.0 na consulta. Task, Change e
355
+ Execution da entrega estavam `completed`; a captura do finalizador usou fallback
356
+ oficial, sem inventar telemetria. O commit de fechamento foi
357
+ `9e0417f4826615d4723d2bb768808581c0c6a8f5`. As Tasks históricas v5.7/v5.8
358
+ permaneceram bloqueadas por decisão humana, sem impedir essa conclusão.
359
+
360
+ Pendências propostas, **não implementadas por esta revisão documental**:
361
+ ampliar cache por dependências comprovadas; medir e reduzir cálculo interno do
362
+ fechamento; antecipar checks baratos; exercitar consumidor limpo com hooks nativos,
363
+ interrupção, retomada e fechamento automático; reduzir avisos por refatorações
364
+ coesas. A recuperação tem provas em fixtures integradas; isso não comprova
365
+ fechamento histórico real nem estabilidade prolongada.
366
+
367
+ ### Referências das linhas anteriores
368
+
266
369
  A [matriz de evolução](https://github.com/zaip-ai/zaip-aios/blob/main/docs/quality/v50-documentacao-editorial.md)
267
370
  vincula as dez frentes aos seus comandos, provas, rollback e limitações.
268
371
  READMEs PT/EN descrevem o mesmo contrato: `essential-v3` por padrão,
@@ -179,6 +179,18 @@ combinação de hashes válidos, cobertura explícita e leitura do período real
179
179
 
180
180
  ## Caminho atual de consulta e limites de performance
181
181
 
182
+ Em recuperação com `same_turn_handoff`, predecessor e sucessor lógico podem
183
+ compartilhar uma invocação física. Correlação e tokens observados permanecem
184
+ no proprietário original: coleta individual, em lote e no fechamento não devem
185
+ contabilizar o mesmo transcript novamente. Sem fronteira observável de consumo,
186
+ o sucessor mantém uso indisponível, não zero nem estimativa apresentada como medida.
187
+ Hooks e tracking continuam independentes da autorização de entrega.
188
+
189
+ Se a identidade rica do filho não puder ser resolvida, somente o fallback oficial
190
+ elegível de captura terminal pode registrar o evento observado. Modelo, effort,
191
+ tokens e custo ausentes continuam indisponíveis. Isso não comprova que a correlação
192
+ nativa rica funcionou e não autoriza duplicar um agente já concluído.
193
+
182
194
  A descrição manifest-first acima inclui o caminho de compatibilidade.
183
195
  No runtime SQLite, a primeira dobra do Monitor usa agregados compactos;
184
196
  detalhes de Runs ficam em endpoints paginados explícitos. Queries preservam
@@ -198,6 +198,14 @@ zaip run closure RUN-ID
198
198
 
199
199
  ## Fechamento e retomada de Tasks
200
200
 
201
+ Antes do último Gui, consulte o [preflight do guia 16](16-lifecycle-e-reconciliacao.md#diagnóstico-antecipado-e-respostas-compactas).
202
+ Ele separa autoridade para `completed`, descendentes ativos e prontidão de
203
+ despacho; não substitui decisão nem gates. Recuperação pós-publicação revalida
204
+ recibo, publicação e proprietário único; observação passiva elegível não é outro
205
+ executor. Em `same_turn_handoff`, a telemetria física é atribuída uma única vez,
206
+ conforme o [guia 27](27-telemetria-git-native.md). Saída compacta preserva o cálculo
207
+ interno e não comprova menor duração.
208
+
201
209
  Antes de uma Run raiz terminar, sua Task deve estar em um destes estados:
202
210
 
203
211
  - `completed`: resultado e gates aprovados;