@zaip-ai/cli 5.9.0 → 6.0.1

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 (64) hide show
  1. package/dist/services/adapters.d.ts +1 -1
  2. package/dist/services/adapters.js +1 -1
  3. package/package.json +1 -1
  4. package/templates/.agents/README-ENG.md +4 -0
  5. package/templates/.agents/README.md +4 -0
  6. package/templates/.agents/config/agents/discovery.json +1 -1
  7. package/templates/.agents/dashboard/.zaip-managed.json +33 -33
  8. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-Fe0d2Tz3.js → DashboardHelpDialog-Bni7muep.js} +5 -1
  9. package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-DK1lnaqS.js → PricingSettingsDialog-Cctm7uaW.js} +1 -1
  10. package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-Bz6dDc40.js → ProjectSettingsPage-D61ZJG4L.js} +1 -1
  11. package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-Bc4WXDXf.js → TraceabilityWorkspace-B4VQDPo5.js} +1 -1
  12. package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-r8ywAYW-.js → dashboard-localization-ykDJSpnb.js} +4 -0
  13. package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-DJnCLtCS.js → index-mZ3OmU_0.js} +2 -2
  14. package/templates/.agents/dashboard/apps/frontend/dist/index.html +1 -1
  15. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  16. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  17. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  18. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  19. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  20. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  21. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  22. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +169 -167
  23. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +102 -102
  24. package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
  25. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +169 -167
  26. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  27. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  28. package/templates/.agents/design/.zaip-managed.json +3 -3
  29. package/templates/.agents/design/apps/catalog/package.json +1 -1
  30. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  31. package/templates/.agents/requirements/autonomous-assurance.md +1 -1
  32. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  33. package/templates/.agents/requirements/comparative-audit.md +1 -1
  34. package/templates/.agents/requirements/context-engine.md +1 -1
  35. package/templates/.agents/requirements/cost-observability.md +1 -1
  36. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  37. package/templates/.agents/requirements/data-export.md +1 -1
  38. package/templates/.agents/requirements/design-system.md +1 -1
  39. package/templates/.agents/requirements/execution-engine.md +1 -1
  40. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  41. package/templates/.agents/requirements/model-orchestration.md +1 -1
  42. package/templates/.agents/requirements/public-distribution.md +1 -1
  43. package/templates/.agents/requirements/software-architecture.md +1 -1
  44. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  45. package/templates/.agents/requirements/work-lifecycle.md +1 -1
  46. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  47. package/templates/.agents/rules/core.md +7 -6
  48. package/templates/.agents/runtime/VERSION +1 -1
  49. package/templates/.agents/runtime/bin/zaip.mjs +35 -31
  50. package/templates/.agents/runtime/checksums.sha256 +5 -5
  51. package/templates/.agents/runtime/manifest.json +1 -1
  52. package/templates/.agents/runtime/provenance.json +4 -4
  53. package/templates/.agents/runtime/sbom.cdx.json +1 -1
  54. package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +3 -2
  55. package/templates/.agents/skills/zaip-skill-github-deploy/references/release-identity.md +3 -1
  56. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract-patch.test-support.mjs +25 -0
  57. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.mjs +2 -2
  58. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.test.mjs +2 -0
  59. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-publication-intent.test.mjs +27 -0
  60. package/templates/.agents/skills/zaip-skill-lifecycle-closure/references/post-publication-task-first.md +12 -0
  61. package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +11 -0
  62. package/templates/.agents/skills/zaip-skill-release-qualification/references/local-preparation.md +14 -0
  63. package/templates/.agents/zaip-aios/VERSION +1 -1
  64. package/templates/template-manifest.json +79 -75
@@ -1,11 +1,11 @@
1
1
  b146bd0c7c60b1ab43c4f71e0b1d2262c6df6da6f7053a0425f834ccb77a6b48 LICENSE
2
2
  bc02cba77e8d51e5c580f43668863dc868eda66f1ff663bfaa49fcf3ca16320e THIRD_PARTY_NOTICES.md
3
- a3cd6b827c4a4e7e7601c9aace0a77a7915cfa18b8b039139b1dcbb1c4b22c0d VERSION
4
- f6fd9810de5e51675406cdf3bead03f615107d18194ee3a90778d5b40cdfc98b bin/zaip.mjs
5
- 92226ac363c4a076769fc7bfcb7dbf372bcbb6195085c8beaf2c9eb3faeb1215 manifest.json
3
+ cf3701cb2416e87a99c0e77dbd0518fc4fc27e390f025c024e6ed1c389c928e0 VERSION
4
+ ea96e255489fc59126568fbf2e36f88d46a56442514a43aba211f33ef37a1c5e bin/zaip.mjs
5
+ 3b5cf6b8aeebc457cde6a5a3d889d042983272ad8695b4acb95c8be581ccdaac 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
- 74b9885a878a98e0eb27e570156e85ccb3ed9c417dd2faf26e72cb5dda992ae9 provenance.json
10
- d77347313b33644005a3f31d1324d8f1f1527c24b1686ec33325e4570bd1f31d sbom.cdx.json
9
+ 9a3baaaa1db06fe6caa56dc3b3e9391625e08969f887fb3afcc38f7a69d8c6c9 provenance.json
10
+ 56beff20a7c2bd8e3e457f32cc50559528e1b4db38db44b7ef7f87e9ab07aba0 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.9.0",
4
+ "version": "6.0.1",
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.9.0",
5
+ "version": "6.0.1",
6
6
  "source_origin": "zaip-aios:local-build",
7
7
  "lockfile_sha256": "b5e11351951654d41aa78dc858d43990a12964ba4051a070613ac8b11bc73a27",
8
- "sbom_sha256": "d77347313b33644005a3f31d1324d8f1f1527c24b1686ec33325e4570bd1f31d",
9
- "runtime_sha256": "75b82243c2590814de27485f7fe35cce33c36c7a57091863ecdb1f1571b27bb3",
10
- "statement_sha256": "7f8943175b8194a9be1f6c230940523811dd8b09e636701f49d68f64049aad13"
8
+ "sbom_sha256": "56beff20a7c2bd8e3e457f32cc50559528e1b4db38db44b7ef7f87e9ab07aba0",
9
+ "runtime_sha256": "8781c0725c48b5a6d20f156fd23d03842ba161ada04e8080422442f1ec2f29e2",
10
+ "statement_sha256": "e8a81f1ce0a1d0140772a85671588ceab818c86d19422da4bf23fe4976df3918"
11
11
  }
@@ -6,7 +6,7 @@
6
6
  "component": {
7
7
  "type": "application",
8
8
  "name": "zaip-aios",
9
- "version": "5.9.0"
9
+ "version": "6.0.1"
10
10
  }
11
11
  },
12
12
  "components": [
@@ -41,6 +41,7 @@ Commit subjects retain `[CODEX|CLAUDE] [P:XXXX] [S:XXXX] [T:XXXX] <Task title>`
41
41
  - **Commits:** use `scripts/guarded-commits.mjs` with its reviewed CLI and valid scoped checks to push the exact SHA to the configured branch. Do not enter release qualification, change a version or create a Release merely for this mode. Installer/security work still runs checks directly required by its impact.
42
42
  - **Release:** read [release identity](references/release-identity.md), then compose `$zaip-skill-release-qualification` and [local preparation](../zaip-skill-release-qualification/references/local-preparation.md) for the actual distribution surface. Verified builder uses `scripts/local-release-deploy.mjs`; consumers create only their GitHub Release under their own checks, without builder npm, signing-key or protected-policy requirements.
43
43
  - Before release versioning, verify whether the candidate SHA is already published. The same published SHA is a no-op, never an empty new Release. Resume a verified draft or retry only observed incomplete delivery with the exact same SHA and identity. A changed candidate requires new identity/evidence.
44
+ - An explicitly authorized corrective patch uses product `N.N`, package `N.N.P` with `P > 0`, and a new immutable tag `vN.N.P`. Preserve the original tag/package and the next open cycle. Require the signed patch policy, exact base publication, observed maintenance actor, reviewed paths and all candidate/artifact/remote checks. Record verified delivery in the separate patch ledger; never use ordinary cycle advance for a patch or infer patch authority from a retry.
44
45
  - Review detailed UTF-8 notes only for the Release, following [release notes](references/release-notes.md). Observe the complete previous-Release-to-candidate Git range as source/evidence, including changes beyond the current chat. Validate the inventory and compare the published body byte-for-byte; never use generated notes alone.
45
46
 
46
47
  Dense source/template/package/TGZ gates belong to builder release qualification. Generic commits use targeted validation, without an automatic full suite, test-count cap or Task wallclock limit. Apply the frozen autonomy profile: balanced permits 10 executions total and 3 replans; tests/tool calls are not executions and resumption does not reset the budget. Do not add an independent five-cycle limit.
@@ -51,13 +52,13 @@ For post-receipt rapid reuse in the verified builder, follow `docs/quality/v49-d
51
52
 
52
53
  Compare the exact pushed SHA with the configured remote ref. If a push result is uncertain, read remote state before retrying. Observe required checks for that SHA, inspect failed steps and repair their evidenced cause within the frozen profile; do not repeat unchanged failures or bypass a gate.
53
54
 
54
- Commits success requires the scoped exact-SHA push and its required checks. Consumer release success additionally requires the verified tag, SHA and reviewed body. Builder release success additionally requires its verified signed assets, terminal `publish-cli.yml` success and registry version, dist-tag and integrity for `@zaip-ai/cli@N.N.0`. A Release with failed or unobserved npm is partial. An unavailable check stays unconfirmed.
55
+ Commits success requires the scoped exact-SHA push and its required checks. Consumer release success additionally requires the verified tag, SHA and reviewed body. Builder release success additionally requires its verified signed assets, terminal `publish-cli.yml` success and registry version, dist-tag and integrity for the signed target package (`@zaip-ai/cli@N.N.0` in standard mode, `@zaip-ai/cli@N.N.P` in patch mode). A Release with failed or unobserved npm is partial. An unavailable check stays unconfirmed.
55
56
 
56
57
  Give a brief chat result with the delivered mode, branch/SHA, Release link when applicable and any actual pending gate. Keep detailed change notes in the Release and sanitized evidence in the owned lifecycle. Formal closure belongs to the responsible orchestrator/finalizer. This GitHub workflow grants no provider deploy, database production, SQL application or host power action.
57
58
 
58
59
  ## Pre-main candidate and release-cycle audit
59
60
 
60
- For the verified framework builder, release delivery requires `.agents/config/release-cycle.json` frozen at the version being released, a clean candidate SHA, remote `main` as its ancestor, and no stale branch/worktree. Every owner SPEC DAG predecessor must be completed. The sole open exception is the critical release-only Task coordinator delegated from the owner SPEC/Execution/macro Run; its exact lineage, predecessor states and candidate records are authenticated at freeze, audit and advance. Other current-release Task/PRD/SPEC work blocks. `scripts/local-release-deploy.mjs` runs fixed local checks at the exact SHA without creating a remote candidate branch. It then pushes only `main` and waits for the exact successful `main` push run of `pre-main-candidate.yml` before publishing a Release. A critical framework commit follows the same branch-free sequence through `guarded-commits.mjs`. Failed local checks block the push; failed or unavailable remote CI blocks Release publication and requires repair on `main`.
61
+ In standard mode, verified framework builder release delivery requires `.agents/config/release-cycle.json` frozen at the version being released, a clean candidate SHA, remote `main` as its ancestor, and no stale branch/worktree. Every owner SPEC DAG predecessor must be completed. The sole open exception is the critical release-only Task coordinator delegated from the owner SPEC/Execution/macro Run; its exact lineage, predecessor states and candidate records are authenticated at freeze, audit and advance. Other current-release Task/PRD/SPEC work blocks. `scripts/local-release-deploy.mjs` runs fixed local checks at the exact SHA without creating a remote candidate branch. It then pushes only `main` and waits for the exact successful `main` push run of `pre-main-candidate.yml` before publishing a Release. A critical framework commit follows the same branch-free sequence through `guarded-commits.mjs`. Failed local checks block the push; failed or unavailable remote CI blocks Release publication and requires repair on `main`.
61
62
 
62
63
  When the same authorized direct Task root implements the product repair and release, the explicit integrated coordinator mode in `$zaip-skill-release-qualification` can freeze while that Task and Run are active. It keeps the clean exact-SHA, only-main, no-other-work, independent validation and publication gates. Record this selection in the frozen cycle; it does not create a second Task or client turn.
63
64
 
@@ -37,7 +37,9 @@ Generic consumer deploy under auto selects commits. Only release mode enters thi
37
37
 
38
38
  Recognize framework source only through approved origin `zaip-ai/zaip-aios`, root package `@zaip-ai/aios` and public CLI package `@zaip-ai/cli`. Names or installed framework files do not prove builder identity; contradictory signals block classification.
39
39
 
40
- Select the next allowed `N.N` from observed release history, then update canonical root `package.json#version` to `N.N.0` and align the declared public/CLI manifests through the version tooling before committing and qualifying. The root manifest is the candidate's version source. Do not allocate an independent GitHub tag or replace version strings broadly. Retries retain the already-assigned version.
40
+ For an ordinary release, select the next allowed `N.N` from observed release history, then update canonical root `package.json#version` to `N.N.0` and align the declared public/CLI manifests through the version tooling before committing and qualifying. The root manifest is the candidate's version source. Do not allocate an independent GitHub tag or replace version strings broadly. Retries retain the already-assigned version.
41
+
42
+ For an explicitly authorized corrective patch, use product `N.N`, package `N.N.P` (`P > 0`) and tag `vN.N.P`. Apply this identity with the version updater's explicit patch option. The signed patch policy binds the mapping, immutable base tag/SHA, source base and reviewed file inventory. A changed package never reuses the original tag or npm version. The next ordinary open cycle stays unchanged; patch delivery has a separate verified ledger. Local manifests describe the candidate, not publication.
41
43
 
42
44
  Protected delivery uses `scripts/local-release-deploy.mjs`. First resolve mode in the Task's local area; only release mode may run signed `local-release-preparation.mjs prepare`. After that preparation successfully creates the receipt directory, save the actual UTF-8 human request at `<output-dir>/deploy-request.txt` and resolve its final-candidate contract to `<output-dir>/deploy-contract.json`. Do not pre-create the output directory just to write these files: preparation treats an existing directory as an immutable receipt cache. The resolver retains `--repository ROOT --request-file FILE --plan-file FILE`; the release helper reads only those fixed paths before reusing preparation or using publication credentials. Do not add request/plan CLI arguments or expand the installed hook allowlist. Resolve against the final committed candidate identity; stale contracts block delivery.
43
45
 
@@ -0,0 +1,25 @@
1
+ import assert from "node:assert/strict";
2
+ import { repositoryKind } from "./deploy-contract.mjs";
3
+ export function assertPatchManifestVersions(builder) {
4
+ assert.equal(
5
+ repositoryKind({
6
+ ...builder,
7
+ rootVersion: "6.0.1",
8
+ cliVersion: "6.0.1",
9
+ workspaceVersion: "6.0.1",
10
+ }),
11
+ "builder",
12
+ );
13
+ for (const version of ["06.0.1", "6.0.01", "6.0.1-beta", "6.0"]) {
14
+ assert.throws(
15
+ () =>
16
+ repositoryKind({
17
+ ...builder,
18
+ rootVersion: version,
19
+ cliVersion: version,
20
+ workspaceVersion: version,
21
+ }),
22
+ /versions/,
23
+ );
24
+ }
25
+ }
@@ -57,7 +57,7 @@ export function repositoryKind({
57
57
  "Conflicting builder identity; repository and package manifests must agree",
58
58
  );
59
59
  assert(
60
- /^\d+\.\d+\.0$/.test(rootVersion ?? "") &&
60
+ /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/.test(rootVersion ?? "") &&
61
61
  rootVersion === cliVersion &&
62
62
  rootVersion === workspaceVersion,
63
63
  "Builder manifest versions must agree",
@@ -105,7 +105,7 @@ export function requestedDeployment(request) {
105
105
  .split(/\r?\n|(?<=[.!])\s+/)
106
106
  .map(normalize)
107
107
  .some((line) =>
108
- /^(?:(?:(?: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|executar))\s+e\s+|depois\s+|apos\s+os\s+ajustes\s+e\s+(?:os\s+)?testes\s+)(?:publique|publica|publicar)\s+(?:(?:em|como)\s+)?(?:uma\s+|a\s+)?(?:nova|proxima)\s+versao[.!]?$/.test(
108
+ /^(?:(?:(?:faca|realize|execute)\s+(?:as mudancas necessarias|(?:todos os |os )(?:ajustes|ajuates)(?: necessarios)?|as melhorias|todos os testes)(?:\s+e\s+(?:todos os testes|as validacoes|os testes))?|pode (?:implementar|executar))\s+e\s+|depois\s+|apos\s+os\s+ajustes\s+e\s+(?:os\s+)?testes\s+)(?:publique|publica|publicar)\s+(?:(?:em|como)\s+)?(?:uma\s+|a\s+)?(?:(?:nova|proxima)\s+versao|v(?:0|[1-9]\d*)\.(?:0|[1-9]\d*))(?:\s+com\s+uma\s+versao\s+final\s+pronta\s+(?:para|pra)\s+producao)?[.!]?$/.test(
109
109
  line,
110
110
  ),
111
111
  );
@@ -11,6 +11,7 @@ import {
11
11
  resolveDeployment,
12
12
  verifyContract,
13
13
  } from "./deploy-contract.mjs";
14
+ import { assertPatchManifestVersions } from "./deploy-contract-patch.test-support.mjs";
14
15
  import { criticalTaskInRange, guardedCommits } from "./guarded-commits.mjs";
15
16
 
16
17
  const builder = {
@@ -193,6 +194,7 @@ test("preferences are project-owned; one-shot overrides, scope and invalid confi
193
194
  });
194
195
  test("builder identity requires origin plus all three agreeing manifests", () => {
195
196
  assert.equal(repositoryKind(builder), "builder");
197
+ assertPatchManifestVersions(builder);
196
198
  assert.equal(repositoryKind(consumer), "consumer");
197
199
  for (const identity of [
198
200
  { ...builder, origin: consumer.origin },
@@ -12,6 +12,33 @@ const builder = {
12
12
  };
13
13
  const input = (request, identity) => ({ request, identity });
14
14
 
15
+ test("explicit major after adjustments preserves literal authority and refuses human holds", () => {
16
+ const directive =
17
+ "Faça todos os ajuates e publique a v6.0 com uma versao final pronta pra produção";
18
+ const request = `Ainda tem nota baixa nos itens. Governança e fechamento, eficiência e recuperação\n\nPreciso melhorar para pelo.menos uma nota 8\n\n${directive}`;
19
+ const plan = resolveDeployment(input(request, builder));
20
+ assert.equal(plan.mode, "release");
21
+ assert.equal(plan.phase, "publish");
22
+ assert.equal(plan.scope, "current-work");
23
+ assert.equal(plan.version, "6.0");
24
+ assert.equal(plan.npm_publication, true);
25
+ assert.equal(
26
+ resolveDeployment(input(directive.replace("ajuates", "ajustes"), builder)).version,
27
+ "6.0",
28
+ );
29
+ for (const rejected of [
30
+ `${directive}?`,
31
+ `Ele disse: ${directive}`,
32
+ `"${directive}"`,
33
+ `${directive} se eu aprovar`,
34
+ `${directive}\nAguarde minha confirmação.`,
35
+ `Não publique a v6.0.\n${directive}`,
36
+ directive.replace("e publique", "e não publique"),
37
+ directive.replace("v6.0", "v6.0.1"),
38
+ ])
39
+ assert.equal(resolveDeployment(input(rejected, builder)).mode, "none", rejected);
40
+ });
41
+
15
42
  test("execution and next-version publication remain bounded to a direct human request", () => {
16
43
  const directive = "Pode executar e publicar próxima versão";
17
44
  const plan = resolveDeployment(input(directive, builder));
@@ -50,6 +50,18 @@ Quando existe um reparo de publicador posterior à tag, a fronteira exige invent
50
50
 
51
51
  ## Procedimento canônico
52
52
 
53
+ Recibos v3 também congelam o status de Execution e SPEC. Uma Execution já
54
+ `running` após interrupção pode ser a baseline exata; o consumo não incrementa
55
+ novamente sua revisão. SPEC histórica `ready` é recusada ainda no preview:
56
+ o fluxo de recuperação publicada exige `blocked` ou `active`, sem emitir um
57
+ recibo impossível de consumir. Recibos antigos permanecem conservadores.
58
+
59
+ Vários recibos da mesma manutenção podem ser consumidos no mesmo turno observado.
60
+ O claim versionado conserva cada etapa e exige o predecessor e seu Gui concluídos
61
+ antes da seguinte. Cada recibo/Decision continua autenticado separadamente. O
62
+ predecessor imediato passa a ser a etapa anterior; a autoridade original continua
63
+ sendo a manutenção. Não crie turnos artificiais para contornar exclusividade.
64
+
53
65
  1. Inspecione somente os IDs envolvidos, a revisão atual e as evidências originais.
54
66
  Confirme que os critérios de aceite históricos realmente foram satisfeitos.
55
67
  Publicação, teste técnico aprovado e `run.finished` não substituem esse aceite.
@@ -11,6 +11,8 @@ Use after `$zaip-skill-github-deploy` resolves release mode, or when local prepa
11
11
 
12
12
  Preparation, verification and dry-run do not publish. The request's resolved route supplies publication authority separately.
13
13
 
14
+ An explicitly authorized patch uses `--mode patch --package-version N.N.P` with product `--version N.N`. Its signed policy and receipt bind both identities, the base publication, observed actor, cycle snapshot and reviewed paths. The patch audit preserves the next open cycle; it does not freeze or advance that ordinary cycle. All exact-candidate, artifact, signature, remote CI and npm checks still apply. Follow the [release identity contract](../zaip-skill-github-deploy/references/release-identity.md) and record verified patch delivery separately.
15
+
14
16
  For readiness grades, load `RULE-PRODUCTION-READINESS` and apply
15
17
  `technical-essential-v1` from `docs/quality/production-readiness.md`. Grade 9
16
18
  requires the six essential criteria; grade 10 adds reviewed concurrency,
@@ -29,6 +31,15 @@ Read [local preparation](references/local-preparation.md) for the selected surfa
29
31
 
30
32
  ## Builder release qualification
31
33
 
34
+ An explicitly requested next major may replace an unpublished open minor using
35
+ `task retarget-open-release TASK --run RUN --from N.N --to NEXT.0 --expected-revision REV`.
36
+ Preview returns the exact payload for a confirmed human contract Decision scoped
37
+ to the Change; apply with `--decision DEC-HUMAN-... --apply`. Finish active children
38
+ first. This Task-first operation journals both preimages, preserves publication
39
+ history and resumes interrupted writes without overwriting unrelated changes.
40
+ The `planned-major-retarget` row is planning only; it never proves publication of
41
+ the skipped minor. Freeze and all distribution gates still apply.
42
+
32
43
  Local builder preparation defaults to signed `essential-v3`: deterministic source/lock/parity, build/type integrity, dependency audit, prioritized installer/rollback/release regressions, package/SBOM/TGZ binding and one clean installed-consumer doctor/SQLite/API smoke.
33
44
 
34
45
  These dense distribution checks are release gates. Change validation outside release remains targeted, with installer/security checks selected when directly impacted. Do not automatically run the full suite for generic commits, impose a test-count ceiling or classify a Task by wallclock duration.
@@ -94,6 +94,20 @@ These commands exist only in the source repository `zaip-ai/zaip-aios`. Values i
94
94
  must be replaced with the authorized candidate and external paths. GitHub version `N.N` maps
95
95
  to tag `vN.N` and package version `N.N.0`.
96
96
 
97
+ For an explicitly authorized corrective patch, use `--mode patch --version N.N
98
+ --package-version N.N.P` on the patch-aware preparation, staging and deploy
99
+ commands. The signed schema-2 policy and schema-3 receipt bind the immutable base
100
+ publication, observed delivery actor, exact paths and unchanged open product
101
+ cycle. The patch ledger replaces ordinary cycle advance for this route. See
102
+ [the patch contract](../../zaip-skill-github-deploy/references/release-identity.md).
103
+
104
+ If an unpublished patch candidate needs a corrected path inventory, `stage-policy`
105
+ accepts `--recover-unpublished-from-sha256 <old-policy-sha256>`. Only
106
+ `allowed_paths` may change. Recovery requires the unchanged remote base, absent
107
+ tag and Release, authenticated GitHub access and a successful npm inventory
108
+ without that version. It preserves a verified private backup and requires a new
109
+ signed receipt; unavailable publication checks never count as absence.
110
+
97
111
  ```text
98
112
  node scripts/local-release-preparation.mjs keygen --output-dir <new-stable-private-key-directory>
99
113
  node scripts/local-release-preparation.mjs bootstrap --trust-store <new-stable-private-key-directory>/trust --public-key <new-stable-private-key-directory>/release-public.pem --key-id <new-key-id> --channels latest
@@ -1 +1 @@
1
- 5.9
1
+ 6.0