@zaip-ai/cli 5.2.0 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/adapters.d.ts +1 -1
- package/dist/services/adapters.js +1 -1
- package/dist/services/codex-literal-read-sequence-template.d.ts +2 -0
- package/dist/services/codex-literal-read-sequence-template.d.ts.map +1 -0
- package/dist/services/codex-literal-read-sequence-template.js +91 -0
- package/dist/services/codex-literal-read-sequence-template.js.map +1 -0
- package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
- package/dist/services/codex-pre-tool-hook-template.js +49 -10
- package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
- package/dist/services/codex-pre-tool-host-context-template.d.ts.map +1 -1
- package/dist/services/codex-pre-tool-host-context-template.js +2 -0
- package/dist/services/codex-pre-tool-host-context-template.js.map +1 -1
- package/dist/services/codex-pre-tool-support-template.d.ts.map +1 -1
- package/dist/services/codex-pre-tool-support-template.js +2 -65
- package/dist/services/codex-pre-tool-support-template.js.map +1 -1
- package/package.json +1 -1
- package/templates/.agents/README-ENG.md +19 -0
- package/templates/.agents/README.md +19 -0
- package/templates/.agents/config/agents/discovery.json +1 -1
- package/templates/.agents/dashboard/.zaip-managed.json +29 -29
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-CDUKVlrH.js → DashboardHelpDialog-Bw42VT15.js} +20 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-Czs55K79.js → PricingSettingsDialog-C3Y-jqQe.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-DhpaKwjC.js → ProjectSettingsPage-Bx54lj7x.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-DPxfH469.js → TraceabilityWorkspace-BNxFpGCt.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-BE_Zqtym.js → dashboard-localization-BQDxpGq0.js} +19 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-D5HmMZ27.js → index-CsSv72iu.js} +2 -2
- package/templates/.agents/dashboard/apps/frontend/dist/index.html +1 -1
- package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
- package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
- package/templates/.agents/dashboard/modules/operations/package.json +1 -1
- package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
- package/templates/.agents/dashboard/packages/branding/package.json +1 -1
- package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
- package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +127 -127
- package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +72 -72
- package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +128 -128
- package/templates/.agents/dashboard/packages/ui/package.json +1 -1
- package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
- package/templates/.agents/design/.zaip-managed.json +3 -3
- package/templates/.agents/design/apps/catalog/package.json +1 -1
- package/templates/.agents/design/packages/local-runtime/package.json +1 -1
- package/templates/.agents/requirements/autonomous-assurance.md +1 -1
- package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
- package/templates/.agents/requirements/comparative-audit.md +1 -1
- package/templates/.agents/requirements/context-engine.md +1 -1
- package/templates/.agents/requirements/cost-observability.md +1 -1
- package/templates/.agents/requirements/dashboard-launch.md +1 -1
- package/templates/.agents/requirements/data-export.md +1 -1
- package/templates/.agents/requirements/design-system.md +1 -1
- package/templates/.agents/requirements/execution-engine.md +1 -1
- package/templates/.agents/requirements/kanban-dashboard.md +1 -1
- package/templates/.agents/requirements/model-orchestration.md +1 -1
- package/templates/.agents/requirements/public-distribution.md +1 -1
- package/templates/.agents/requirements/software-architecture.md +1 -1
- package/templates/.agents/requirements/strategic-improvements.md +1 -1
- package/templates/.agents/requirements/work-lifecycle.md +1 -1
- package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
- package/templates/.agents/runtime/VERSION +1 -1
- package/templates/.agents/runtime/bin/zaip.mjs +162 -96
- package/templates/.agents/runtime/checksums.sha256 +5 -5
- package/templates/.agents/runtime/manifest.json +1 -1
- package/templates/.agents/runtime/provenance.json +4 -4
- package/templates/.agents/runtime/sbom.cdx.json +1 -1
- package/templates/.agents/skills/zaip-skill-execution/references/runtime-governance.md +1 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.mjs +25 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-publication-intent.test.mjs +56 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs +1 -0
- package/templates/.agents/skills/zaip-skill-lifecycle-closure/SKILL.md +8 -0
- package/templates/.agents/skills/zaip-skill-lifecycle-closure/references/post-publication-task-first.md +119 -0
- package/templates/.agents/skills/zaip-skill-task/references/commit-policy.md +9 -0
- package/templates/.agents/zaip-aios/VERSION +1 -1
- package/templates/template-manifest.json +75 -67
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
b146bd0c7c60b1ab43c4f71e0b1d2262c6df6da6f7053a0425f834ccb77a6b48 LICENSE
|
|
2
2
|
bc02cba77e8d51e5c580f43668863dc868eda66f1ff663bfaa49fcf3ca16320e THIRD_PARTY_NOTICES.md
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
299be6bed159ae2783b200cd9d3cd8111b8133367dbee8d6b2c1a227a053f860 VERSION
|
|
4
|
+
73d2c06e9a5e206832929431eb7a0e42ec16f57f735200b3626e8c08c40b1f23 bin/zaip.mjs
|
|
5
|
+
b51ad43d888d905e4173438ec21f05af3138b1ffb995221be0538bc34a929791 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
|
-
|
|
10
|
-
|
|
9
|
+
520407ef87fe382a779f292dbddb8a72b6de0918830827f3d456a0e88ab7e52f provenance.json
|
|
10
|
+
58dadbf311a2051155001fde4178e84c088d2c8085d020a15e53069f2cf32381 sbom.cdx.json
|
|
11
11
|
b3ffedf9e146be802a15b4009f33e031dec3071ca1525e12c67606fd964a3067 schemas/contracts.schema.json
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"schema_version": 1,
|
|
3
3
|
"statement_type": "self_reported_build_integrity",
|
|
4
4
|
"authenticity": "unverified",
|
|
5
|
-
"version": "5.
|
|
5
|
+
"version": "5.4.0",
|
|
6
6
|
"source_origin": "zaip-aios:local-build",
|
|
7
7
|
"lockfile_sha256": "b5e11351951654d41aa78dc858d43990a12964ba4051a070613ac8b11bc73a27",
|
|
8
|
-
"sbom_sha256": "
|
|
9
|
-
"runtime_sha256": "
|
|
10
|
-
"statement_sha256": "
|
|
8
|
+
"sbom_sha256": "58dadbf311a2051155001fde4178e84c088d2c8085d020a15e53069f2cf32381",
|
|
9
|
+
"runtime_sha256": "de06295b45fec47a667e0182c7211812f6b3bb3af5d7efa6c8fad38c0ebbb0d6",
|
|
10
|
+
"statement_sha256": "24e93611c1d0f762f32000ffa5b8fb752df004002db55f521d6839d5d29debf2"
|
|
11
11
|
}
|
|
@@ -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))?|pode implementar)\s+e\s+(?:publique|publica|publicar)\s+(?:(?:em|como)\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,
|
package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-publication-intent.test.mjs
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
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("recognizes the current implementation and publication request without inventing authority", () => {
|
|
15
|
+
const directive = "pode implementar e publica como nova versão";
|
|
16
|
+
assert.equal(resolveDeployment(input(directive, builder)).mode, "release");
|
|
17
|
+
for (const request of [
|
|
18
|
+
`Ele disse: ${directive}`,
|
|
19
|
+
`"${directive}"`,
|
|
20
|
+
`${directive}?`,
|
|
21
|
+
`${directive} se eu aprovar`,
|
|
22
|
+
`${directive}\nAguarde minha confirmação.`,
|
|
23
|
+
directive.replace("publica", "não publica"),
|
|
24
|
+
]) {
|
|
25
|
+
assert.equal(resolveDeployment(input(request, builder)).mode, "none", request);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
test("implementation plus publication accepts a literal paragraph but not quotation or conditions", () => {
|
|
29
|
+
const directive = "Faça as mudanças necessárias e todos os testes e publique em uma nova versao";
|
|
30
|
+
const request = `Pode executar as melhorias para chegar na nota 9.\n\n${directive}`;
|
|
31
|
+
const plan = resolveDeployment(input(request, builder));
|
|
32
|
+
assert.equal(plan.mode, "release");
|
|
33
|
+
assert.equal(plan.phase, "publish");
|
|
34
|
+
assert.equal(plan.scope, "current-work");
|
|
35
|
+
assert.equal(plan.version, null);
|
|
36
|
+
assert.equal(plan.npm_publication, true);
|
|
37
|
+
for (const rejected of [
|
|
38
|
+
`O usuário disse:\n${directive}`,
|
|
39
|
+
`Exemplo:\n${directive}`,
|
|
40
|
+
`"\n${directive}\n"`,
|
|
41
|
+
`${directive}?`,
|
|
42
|
+
`${directive} se eu confirmar`,
|
|
43
|
+
`Quando eu autorizar:\n${directive}`,
|
|
44
|
+
`Não faça nenhuma publicação até eu revisar.\n${directive}`,
|
|
45
|
+
`${directive}\nNão faça nenhuma publicação até eu revisar.`,
|
|
46
|
+
`Aguarde minha revisão antes de publicar.\n${directive}`,
|
|
47
|
+
`Até eu revisar, só faça os testes.\n${directive}`,
|
|
48
|
+
`Aguarde minha confirmação.\n${directive}`,
|
|
49
|
+
`${directive}\nAguarde minha confirmação.`,
|
|
50
|
+
`Só publique com minha aprovação.\n${directive}`,
|
|
51
|
+
`${directive}\nSó publique com minha aprovação.`,
|
|
52
|
+
`A publicação depende da minha aprovação.\n${directive}`,
|
|
53
|
+
directive.replace("e publique", "e não publique"),
|
|
54
|
+
])
|
|
55
|
+
assert.equal(resolveDeployment(input(rejected, builder)).mode, "none", rejected);
|
|
56
|
+
});
|
package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs
CHANGED
|
@@ -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).
|
|
@@ -30,3 +30,12 @@ Timeout ou falta de prova mantém `pending`; somente confirmação canônica per
|
|
|
30
30
|
SubagentStart/Stop persiste recibo antes do processo em segundo plano, permite três tentativas limitadas e só confirma JSON de captura canônica. `node .codex/hooks/zaip-subagent-lifecycle.mjs --replay-pending` recupera até três recibos completos por execução (inspeção limitada a 256 entradas). Recibos sem status ou identidade observada exigem o fallback manual idempotente. Não remova a captura manual enquanto não houver confirmação verificável. O contexto de governança do SubagentStart é preservado.
|
|
31
31
|
|
|
32
32
|
Falha do processo, disco indisponível ou hook desabilitado não permite garantia absoluta de fechamento. O resultado verificável é estado terminal canônico ou pendência explícita e recuperável; o Dashboard continua projetando records e telemetria indisponível continua `null`.
|
|
33
|
+
# Administrative closure after publication
|
|
34
|
+
|
|
35
|
+
A terminal blocked, failed or cancelled Task may commit only the exact
|
|
36
|
+
release-cycle advance of its tagged product, plus records. The validator checks
|
|
37
|
+
the product SHA ancestry, tag, causal Task/Change/Execution identity, matching
|
|
38
|
+
terminal states and frozen cycle owner. Previous history and unrelated fields
|
|
39
|
+
must remain unchanged. This does not approve or complete the Task and does not
|
|
40
|
+
authorize new product changes. Remote GitHub/npm proof remains the responsibility
|
|
41
|
+
of the protected publication workflow.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
5.
|
|
1
|
+
5.4
|