@zaip-ai/cli 6.0.0 → 6.1.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/package.json +1 -1
- package/templates/.agents/README-ENG.md +4 -0
- package/templates/.agents/README.md +4 -0
- package/templates/.agents/config/agents/discovery.json +1 -1
- package/templates/.agents/dashboard/.zaip-managed.json +27 -27
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-CUxpAtio.js → DashboardHelpDialog-BftdZRXn.js} +5 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-niZbV_Wq.js → PricingSettingsDialog-B51rUSEl.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-DuVzb5-X.js → ProjectSettingsPage-oDq_1eay.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-DMZXmueM.js → TraceabilityWorkspace-BuhGb-tT.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-EGxe0WHD.js → dashboard-localization-DEYUk1nq.js} +4 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-CZe1F8Q4.js → index-4qrsHnpS.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 +152 -152
- package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +90 -90
- package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +152 -152
- 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/rules/core.md +7 -6
- package/templates/.agents/runtime/VERSION +1 -1
- package/templates/.agents/runtime/bin/zaip.mjs +16 -16
- 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-github-deploy/SKILL.md +3 -2
- package/templates/.agents/skills/zaip-skill-github-deploy/references/release-identity.md +3 -1
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract-patch.test-support.mjs +25 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.mjs +17 -2
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.test.mjs +2 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-publication-intent.test.mjs +43 -0
- package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +2 -0
- package/templates/.agents/skills/zaip-skill-release-qualification/references/local-preparation.md +14 -0
- package/templates/.agents/zaip-aios/VERSION +1 -1
- package/templates/template-manifest.json +72 -68
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
b146bd0c7c60b1ab43c4f71e0b1d2262c6df6da6f7053a0425f834ccb77a6b48 LICENSE
|
|
2
2
|
bc02cba77e8d51e5c580f43668863dc868eda66f1ff663bfaa49fcf3ca16320e THIRD_PARTY_NOTICES.md
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
0fd114b03452dc32b26bcb9f1094cb19bf4e3a477cd04cfe91f4a87e19fac5c1 VERSION
|
|
4
|
+
6d1cc530a9a64953aecfd04d9da120c9c6e6d4757186ebe65ee1692d36823d0c bin/zaip.mjs
|
|
5
|
+
04a21ebb91c3d7604355c148b97493c87ab6c19d9752a3af70e955fcad1b8f68 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
|
+
9aed95685574b62ef2c971e6215ce06e5d67e27529c6442ba28a2b260090a1af provenance.json
|
|
10
|
+
6484ffb88d509aae8bda716a1cf4fae2a0e930a77c2d661d6836988d260e0dc1 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": "6.
|
|
5
|
+
"version": "6.1.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": "6484ffb88d509aae8bda716a1cf4fae2a0e930a77c2d661d6836988d260e0dc1",
|
|
9
|
+
"runtime_sha256": "4e9d9571080c63e222fe6e88eadf5b453238bb698d90bf276064f143d302f5f7",
|
|
10
|
+
"statement_sha256": "d5beddbd620e2e0f20f0a3d43b4acab4790862b2c7c6f0e5b613a09779cc1461"
|
|
11
11
|
}
|
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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",
|
|
@@ -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,
|
|
@@ -171,6 +185,7 @@ export function requestedDeployment(request) {
|
|
|
171
185
|
releaseDirective ||
|
|
172
186
|
proceedToVersion ||
|
|
173
187
|
finalAdjustmentsToPublish ||
|
|
188
|
+
finalAdjustmentsAndPublish ||
|
|
174
189
|
implementAndPublish ||
|
|
175
190
|
shortPublicationVersion !== null;
|
|
176
191
|
if (!direct || (/\?/.test(text) && !implementAndPublish) || waitsForAuthorization)
|
|
@@ -207,7 +222,7 @@ export function requestedDeployment(request) {
|
|
|
207
222
|
/^(?:(?:pode|podemos)\s+)?(?:(?:faca|fazer|faz|realize|execute|do)\s+)?(?:push|commit)\b/.test(
|
|
208
223
|
withoutCourtesy,
|
|
209
224
|
);
|
|
210
|
-
const versions = [...text.matchAll(/\bv((?:0|[1-9]\d*)\.(?:0|[1-9]\d*))(
|
|
225
|
+
const versions = [...text.matchAll(/\bv((?:0|[1-9]\d*)\.(?:0|[1-9]\d*))(?!\d|\.\d)/g)].map(
|
|
211
226
|
(x) => x[1],
|
|
212
227
|
);
|
|
213
228
|
if (releaseDirective)
|
|
@@ -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 },
|
package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-publication-intent.test.mjs
CHANGED
|
@@ -12,6 +12,49 @@ const builder = {
|
|
|
12
12
|
};
|
|
13
13
|
const input = (request, identity) => ({ request, identity });
|
|
14
14
|
|
|
15
|
+
test("explicit numeric patch retains its separate signed route without minor truncation", () => {
|
|
16
|
+
const plan = resolveDeployment(input("Publique o patch v6.0.1 com Release e npm", builder));
|
|
17
|
+
assert.equal(plan.mode, "release");
|
|
18
|
+
assert.equal(plan.phase, "publish");
|
|
19
|
+
assert.equal(plan.version, null);
|
|
20
|
+
for (const request of [
|
|
21
|
+
"Publique o patch v6.0.1-rc1 com Release e npm",
|
|
22
|
+
"Publique o patch v6.0.1.beta com Release e npm",
|
|
23
|
+
"Publique o patch v6.0.1 se eu aprovar",
|
|
24
|
+
'"Publique o patch v6.0.1 com Release e npm"',
|
|
25
|
+
"Publique a v6.1 e o patch v6.0.1",
|
|
26
|
+
"Publique o patch v6.0.1 e a v6.1",
|
|
27
|
+
"Publique o patch v6.0.1 e o patch v6.0.2",
|
|
28
|
+
"Publique o patch v6.0.1 e a versão 6.1",
|
|
29
|
+
])
|
|
30
|
+
assert.equal(resolveDeployment(input(request, builder)).mode, "none", request);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test("final adjustments and an explicit minor publication preserve bounded authority", () => {
|
|
34
|
+
const directive = "Ok, faca esses ultimos ajuates e publique a versao v6.1";
|
|
35
|
+
for (const request of [directive, "Faça os últimos ajustes e publique a versão v6.1."]) {
|
|
36
|
+
const plan = resolveDeployment(input(request, builder));
|
|
37
|
+
assert.equal(plan.mode, "release");
|
|
38
|
+
assert.equal(plan.phase, "publish");
|
|
39
|
+
assert.equal(plan.version, "6.1");
|
|
40
|
+
assert.equal(plan.scope, "current-work");
|
|
41
|
+
}
|
|
42
|
+
for (const request of [
|
|
43
|
+
`${directive}?`,
|
|
44
|
+
`Ele disse: ${directive}`,
|
|
45
|
+
`"${directive}"`,
|
|
46
|
+
`${directive} se eu aprovar`,
|
|
47
|
+
`${directive}. Aguarde minha confirmação.`,
|
|
48
|
+
directive.replace("e publique", "e não publique"),
|
|
49
|
+
directive.replace("v6.1", "v6.1.1"),
|
|
50
|
+
`${directive} e a v6.2`,
|
|
51
|
+
"publique a versão v6.1.beta",
|
|
52
|
+
"publique a versão v6.1-rc1",
|
|
53
|
+
"publique a versão v6.1.1",
|
|
54
|
+
])
|
|
55
|
+
assert.equal(resolveDeployment(input(request, builder)).mode, "none", request);
|
|
56
|
+
});
|
|
57
|
+
|
|
15
58
|
test("explicit major after adjustments preserves literal authority and refuses human holds", () => {
|
|
16
59
|
const directive =
|
|
17
60
|
"Faça todos os ajuates e publique a v6.0 com uma versao final pronta pra produção";
|
|
@@ -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,
|
package/templates/.agents/skills/zaip-skill-release-qualification/references/local-preparation.md
CHANGED
|
@@ -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
|
-
6.
|
|
1
|
+
6.1
|