@zaip-ai/cli 4.5.0 → 4.7.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/README.md +2 -0
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/services/adapters.d.ts +1 -1
- package/dist/services/adapters.d.ts.map +1 -1
- package/dist/services/adapters.js +6 -6
- package/dist/services/adapters.js.map +1 -1
- package/dist/services/codex-config-overlay.d.ts.map +1 -1
- package/dist/services/codex-config-overlay.js +27 -10
- package/dist/services/codex-config-overlay.js.map +1 -1
- package/dist/services/codex-native-tool-authority-template.d.ts.map +1 -1
- package/dist/services/codex-native-tool-authority-template.js +188 -9
- package/dist/services/codex-native-tool-authority-template.js.map +1 -1
- package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
- package/dist/services/codex-pre-tool-hook-template.js +50 -128
- package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
- package/dist/services/codex-pre-tool-hook-template.test.js +4 -0
- package/dist/services/codex-pre-tool-hook-template.test.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 +1 -4
- package/dist/services/codex-pre-tool-support-template.js.map +1 -1
- package/dist/services/codex-stale-git-lock-template.d.ts +2 -0
- package/dist/services/codex-stale-git-lock-template.d.ts.map +1 -0
- package/dist/services/codex-stale-git-lock-template.js +64 -0
- package/dist/services/codex-stale-git-lock-template.js.map +1 -0
- package/dist/services/global-codex-config-migration.test.js +1 -4
- package/dist/services/global-codex-config-migration.test.js.map +1 -1
- package/dist/services/global-codex-config.d.ts.map +1 -1
- package/dist/services/global-codex-config.js +2 -1
- package/dist/services/global-codex-config.js.map +1 -1
- package/dist/services/global-codex-config.test.js +3 -1
- package/dist/services/global-codex-config.test.js.map +1 -1
- package/dist/services/hook-readiness.d.ts.map +1 -1
- package/dist/services/hook-readiness.js.map +1 -1
- package/dist/services/install-agents-template.js +2 -2
- package/dist/services/install-agents-template.js.map +1 -1
- package/dist/services/install-template-policy.d.ts.map +1 -1
- package/dist/services/install-template-policy.js +2 -0
- package/dist/services/install-template-policy.js.map +1 -1
- package/dist/services/logger.d.ts +1 -1
- package/dist/services/logger.d.ts.map +1 -1
- package/dist/services/logger.js +2 -1
- package/dist/services/logger.js.map +1 -1
- package/dist/services/logger.test.js +77 -0
- package/dist/services/logger.test.js.map +1 -1
- package/dist/services/runtime-template-integrity.test.d.ts +2 -0
- package/dist/services/runtime-template-integrity.test.d.ts.map +1 -0
- package/dist/services/runtime-template-integrity.test.js +26 -0
- package/dist/services/runtime-template-integrity.test.js.map +1 -0
- package/dist/services/runtime-template-test-support.d.ts +3 -0
- package/dist/services/runtime-template-test-support.d.ts.map +1 -0
- package/dist/services/runtime-template-test-support.js +32 -0
- package/dist/services/runtime-template-test-support.js.map +1 -0
- package/dist/services/runtime-template.test.js +37 -48
- package/dist/services/runtime-template.test.js.map +1 -1
- package/package.json +1 -1
- package/templates/.agents/README.md +8 -0
- package/templates/.agents/config/agents/discovery.json +1 -1
- package/templates/.agents/config/deploy-policy.json +5 -0
- package/templates/.agents/dashboard/.zaip-managed.json +235 -83
- package/templates/.agents/dashboard/README.md +2 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{CostCalculationGuidePage-f4ZGJRg3.js → CostCalculationGuidePage-OUjdwEcM.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-CkQ_y8kg.js → DashboardHelpDialog-Cei1ChjE.js} +99 -10
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-v9zGRTlk.js → PricingSettingsDialog-_woNCrTT.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{ProjectSettingsPage-doIMhei7.js → ProjectSettingsPage-B2_7MVOP.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-C_4ftjyB.js → TraceabilityWorkspace-C_jCsSZe.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-C8zQDBT7.js +68 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-Cv3WBFIF.js → icons-vendor-iMPXot7Y.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/index-DZhppOIk.css +1 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/index-DiCwz0sr.js +2 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-mHgsmxb6.js → react-vendor-721Re3Ss.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{traceability-B0CPyEVq.js → traceability-BjdTkWS0.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/index.html +6 -6
- package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
- package/templates/.agents/dashboard/apps/frontend/src/AppOverlays.tsx +6 -34
- package/templates/.agents/dashboard/apps/frontend/src/ReconciliationFeedback.dom.test.ts +130 -0
- package/templates/.agents/dashboard/apps/frontend/src/ReconciliationFeedback.tsx +226 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-api-sqlite-view.ts +45 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.test.ts +15 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.ts +17 -46
- package/templates/.agents/dashboard/apps/frontend/src/reconciliation-feedback-fixtures.ts +23 -0
- package/templates/.agents/dashboard/apps/frontend/src/reconciliation-feedback-model.test.ts +69 -0
- package/templates/.agents/dashboard/apps/frontend/src/reconciliation-feedback-model.ts +59 -0
- package/templates/.agents/dashboard/apps/frontend/src/reconciliation-feedback.css +131 -0
- package/templates/.agents/dashboard/apps/frontend/src/styles.css +0 -32
- package/templates/.agents/dashboard/apps/frontend/src/use-dashboard-app-model.tsx +2 -2
- package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.test.ts +2 -2
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.tsx +1 -1
- package/templates/.agents/dashboard/modules/operations/package.json +1 -1
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.macro-metrics.test.ts +7 -2
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.tsx +6 -6
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsPage.tsx +1 -4
- package/templates/.agents/dashboard/modules/operations/src/react/UnifiedWorkBoard.navigation.test.ts +236 -0
- package/templates/.agents/dashboard/modules/operations/src/react/UnifiedWorkBoard.tsx +1 -24
- package/templates/.agents/dashboard/modules/operations/src/react/operations-overview-period-filter.test.ts +3 -2
- package/templates/.agents/dashboard/modules/operations/src/react/overview-duration-hint.ts +14 -0
- 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/DIAGNOSTICS.md +42 -0
- package/templates/.agents/dashboard/packages/local-runtime/dashboard-diagnostics.d.mts +10 -0
- package/templates/.agents/dashboard/packages/local-runtime/dashboard-diagnostics.mjs +101 -0
- package/templates/.agents/dashboard/packages/local-runtime/dashboard-diagnostics.test.mjs +58 -0
- package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +318 -236
- package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +285 -205
- package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/scripts/test-sqlite-dashboard-startup.mjs +233 -0
- package/templates/.agents/dashboard/packages/local-runtime/scripts/validate-provider-nonzero.mjs +45 -0
- package/templates/.agents/dashboard/packages/local-runtime/scripts/verify-dashboard-executable-startup.mjs +107 -0
- package/templates/.agents/dashboard/packages/local-runtime/scripts/verify-dashboard-reconciliation-executable.mjs +271 -0
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +318 -236
- package/templates/.agents/dashboard/packages/local-runtime/src/active-codex-telemetry.test.ts +78 -12
- package/templates/.agents/dashboard/packages/local-runtime/src/active-codex-telemetry.ts +36 -56
- package/templates/.agents/dashboard/packages/local-runtime/src/canonical-source-revision-cache.test.ts +125 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/canonical-source-revision-cache.ts +168 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/dashboard-diagnostics.test.ts +57 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-agent-catalog-routes.ts +76 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-dual-reads-manifest-summaries-without-losing.test.ts +5 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-reconciliation-diagnostics.test.ts +118 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-reconciliation-result.test.ts +35 -6
- package/templates/.agents/dashboard/packages/local-runtime/src/server-reconciliation-route.ts +105 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.test.ts +64 -9
- package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.ts +19 -27
- package/templates/.agents/dashboard/packages/local-runtime/src/server-telemetry-command.test.ts +111 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-telemetry-refresh.test.ts +59 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-telemetry-refresh.ts +44 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-work-reconciliation.test.ts +20 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-work-reconciliation.ts +12 -7
- package/templates/.agents/dashboard/packages/local-runtime/src/server-workspace.ts +48 -6
- package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +2 -2
- package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +126 -134
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-agent-page.ts +14 -2
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-summary-elapsed.ts +107 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-dashboard-startup.test.ts +163 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-dashboard-startup.ts +78 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-header-timestamp.test.ts +31 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-provider-nonzero.test.ts +271 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-provider-visibility.ts +32 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-operations-duration.ts +58 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-provider-dimension.ts +12 -3
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-summary.ts +41 -54
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-view-page.ts +9 -58
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-canonical.ts +7 -7
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-counts-every-root-execution-day-returns.test.ts +5 -5
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-multi-provider.test.ts +4 -4
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-rebuild.ts +9 -35
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-schema.ts +13 -9
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-source-fingerprint.ts +43 -45
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +5 -9
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.ts +5 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-base-views.ts +9 -7
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-dashboard-views.ts +10 -8
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-spec-root-elapsed-view.ts +61 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-spec-root-elapsed.test.ts +210 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-startup-seed.test.ts +87 -0
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-logging.mjs +6 -2
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-server.mjs +7 -1
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.mjs +4 -5
- package/templates/.agents/dashboard/packages/ui/package.json +1 -1
- package/templates/.agents/dashboard/packages/ui/src/DashboardHeader.test.mjs +33 -4
- package/templates/.agents/dashboard/packages/ui/src/DashboardHeader.tsx +8 -7
- package/templates/.agents/dashboard/packages/windows-launcher/Program.cs +46 -3
- package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
- package/templates/.agents/dashboard/tests/e2e/qualify-kanban-popup.mjs +56 -0
- package/templates/.agents/dashboard/tests/e2e/specs/dashboard-update-label.spec.ts +49 -0
- package/templates/.agents/design/.zaip-managed.json +17 -5
- package/templates/.agents/design/apps/catalog/dist/assets/index-D3uhpycC.js +72 -0
- package/templates/.agents/design/apps/catalog/dist/index.html +1 -1
- package/templates/.agents/design/apps/catalog/package.json +1 -1
- package/templates/.agents/design/apps/catalog/src/pages/ComponentsPage.tsx +13 -1
- package/templates/.agents/design/apps/catalog/src/specimens/ReconciliationSpecimen.stories.tsx +6 -0
- package/templates/.agents/design/apps/catalog/src/specimens/ReconciliationSpecimen.tsx +101 -0
- 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 +21 -6
- package/templates/.agents/requirements/public-distribution.md +4 -4
- 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 +3 -1
- package/templates/.agents/rules/workflow.md +3 -2
- package/templates/.agents/runtime/VERSION +1 -1
- package/templates/.agents/runtime/bin/zaip.mjs +368 -199
- 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-config/SKILL.md +25 -3
- package/templates/.agents/skills/zaip-skill-execution/SKILL.md +4 -0
- package/templates/.agents/skills/zaip-skill-execution/references/autonomous-continuation.md +4 -0
- package/templates/.agents/skills/zaip-skill-execution/references/candidate-workflow.md +1 -1
- package/templates/.agents/skills/zaip-skill-execution/references/runtime-governance.md +2 -2
- package/templates/.agents/skills/zaip-skill-general-operations/SKILL.md +1 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +38 -48
- package/templates/.agents/skills/zaip-skill-github-deploy/agents/openai.yaml +2 -2
- package/templates/.agents/skills/zaip-skill-github-deploy/references/deployment-workflow.md +67 -99
- package/templates/.agents/skills/zaip-skill-github-deploy/references/release-identity.md +33 -30
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.mjs +307 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.test.mjs +337 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs +41 -28
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/guarded-commits.mjs +212 -0
- package/templates/.agents/skills/zaip-skill-lifecycle-closure/SKILL.md +4 -0
- package/templates/.agents/skills/zaip-skill-prd/SKILL.md +4 -0
- package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +46 -68
- package/templates/.agents/skills/zaip-skill-release-qualification/references/local-preparation.md +100 -44
- package/templates/.agents/skills/zaip-skill-send-email/SKILL.md +15 -0
- package/templates/.agents/skills/zaip-skill-send-email/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-setup/SKILL.md +5 -2
- package/templates/.agents/skills/zaip-skill-spec/SKILL.md +4 -0
- package/templates/.agents/skills/zaip-skill-task/SKILL.md +4 -0
- package/templates/.agents/skills/zaip-skill-testing-strategy/SKILL.md +19 -0
- package/templates/.agents/skills/zaip-skill-tool-setup/SKILL.md +2 -0
- package/templates/.agents/skills/zaip-skill-use-connectors/SKILL.md +15 -0
- package/templates/.agents/skills/zaip-skill-use-connectors/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-use-connectors/scripts/connector-guidance.test.mjs +29 -0
- package/templates/.agents/skills/zaip-skill-use-connectors/scripts/verify-connector-lock.mjs +30 -0
- package/templates/.agents/tools/cloud-runner.integration.test.mjs +3 -0
- package/templates/.agents/zaip-aios/VERSION +1 -1
- package/templates/.agents/zaip-aios/guides/03-tasks.md +6 -0
- package/templates/.agents/zaip-aios/guides/04-specs.md +6 -0
- package/templates/.agents/zaip-aios/guides/05-prds.md +4 -0
- package/templates/.agents/zaip-aios/guides/06-execucao.md +6 -0
- package/templates/.agents/zaip-aios/guides/16-lifecycle-e-reconciliacao.md +6 -0
- package/templates/.agents/zaip-aios/guides/19-assurance-e-autonomia.md +4 -0
- package/templates/.agents/zaip-aios/guides/22-fluxos-e-roteamento.md +6 -0
- package/templates/.agents/zaip-aios/guides/23-orquestracao-de-modelos.md +36 -4
- package/templates/.agents/zaip-aios/guides/26-qualidade-e-release.md +15 -4
- package/templates/.agents/zaip-aios/guides/28-lifecycle-completo.md +8 -0
- package/templates/template-manifest.json +354 -150
- package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-D7PrDZy9.js +0 -68
- package/templates/.agents/dashboard/apps/frontend/dist/assets/index-OBJXZOwe.css +0 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/index-Rbmpz4UO.js +0 -2
|
@@ -1,139 +1,107 @@
|
|
|
1
|
+
# GitHub deploy contract
|
|
1
2
|
|
|
2
|
-
|
|
3
|
+
Resolve mode and scope before selecting validation or changing Git. An affirmative deployment request authorizes its resolved route; discussion, a quoted command or a negated release is not publication authority. Generic “faça deploy” follows project policy without a routine confirmation or an extra warning about existing pipelines. Actual integrity, authentication, destructive-action and scope blockers remain.
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
## Project policy and reviewed resolver
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
`.agents/config/deploy-policy.json` is a separate project-owned preference seeded silently once at installation. Its fields are `schema_version: 1`, `default_mode: auto|commits|release` (default `auto`) and `default_scope: current-work`. Preserve it on upgrades; never add mode fields to `project.yaml#deploy` or save `all-worktree` as a default.
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
Use the portable, versioned resolver from the selected checkout:
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- Never force push, rewrite history, replace remotes, change credentials or Git/SSH configuration, bypass checks, or deploy to another service.
|
|
14
|
-
- Do not create lifecycle artifacts merely to publish already-existing commits. The deploy authorization permits staging every inventoried versionable path in the selected worktree after secret, size, and ignore checks; it never authorizes changes outside that worktree.
|
|
15
|
-
- Every product commit needs its evidenced Task and canonical Task title, including Task-first. If ownership is missing, materialize the authorized work before editing/committing; never borrow the latest global Task. Only records/local-only snapshots are exempt. Omit nonexistent PRD/SPEC lineage. Explicit deploy authorizes reviewed path staging, never force, destructive reset, history rewrite, or credential changes.
|
|
16
|
-
|
|
17
|
-
## Mandatory authorization record
|
|
18
|
-
|
|
19
|
-
Before the first Git mutation, retain a sanitized authorization record in the task's visible progress and terminal report. It must state:
|
|
20
|
-
|
|
21
|
-
1. the user's current-turn publication intent;
|
|
22
|
-
2. repository, remote, branch and selected worktree;
|
|
23
|
-
3. whether the grant is simple push or partitioned commit plus push;
|
|
24
|
-
4. the bounded history-reconciliation strategy (`rebase` by default, or user-selected `merge`);
|
|
25
|
-
5. allowed repair cycles, excluded worktrees/scopes and prohibited actions;
|
|
26
|
-
6. the preflight result and the recoverable preservation reference used before reconciliation.
|
|
27
|
-
|
|
28
|
-
For publication of existing commits, the conversation and terminal deploy report are the authority record; no artificial Task is needed. New product edits or commits require Task ownership under the workflow and commit policy. Never store credentials, private-key contents, tokens or environment values. Request only authority actually missing from the current request.
|
|
11
|
+
```text
|
|
12
|
+
node .agents/skills/zaip-skill-github-deploy/scripts/deploy-contract.mjs --repository <ROOT> --request-file <FILE> [--plan-file <FILE>]
|
|
13
|
+
```
|
|
29
14
|
|
|
30
|
-
|
|
15
|
+
The request file is UTF-8 plain text containing the real human request. The resolver reads the project's policy and manifest/origin identity and writes a JSON plan binding mode, phase, scope and their digests. Save paths, pending commits, configured branch and work attribution separately as observed evidence; those are not invented request-file fields. The resolver is a planning step, not a publication command. Invalid policy, contradictory repository identity or missing work attribution cannot be replaced with guessed defaults.
|
|
31
16
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
17
|
+
| Affirmative request or saved preference | Result |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Generic deploy with `default_mode: auto`, verified builder | Release plus npm through GitHub Actions |
|
|
20
|
+
| Generic deploy with `default_mode: auto`, consumer | Commits plus exact-SHA push |
|
|
21
|
+
| Generic deploy with saved `commits` or `release` | That saved mode, subject to repository capabilities |
|
|
22
|
+
| “faça deploy apenas commits”, “sem release”, explicit push-only | Commits for this request |
|
|
23
|
+
| “deploy com release”, “próxima versão”, “novo release” | Release for this request |
|
|
24
|
+
| Prepare/qualify only, discuss release or negate publication | No publication authority |
|
|
40
25
|
|
|
41
|
-
|
|
26
|
+
Overrides apply once. “Sempre faça deploy com release” is an explicit preference change; a single “deploy com release” does not save that preference. Consumers stay GitHub-only even when release is selected.
|
|
42
27
|
|
|
43
|
-
|
|
44
|
-
- Inventory the complete pending diff, run the safety gates, then stage the reviewed inventory with `git add -- <explicit-pathspecs>` and commit it. Generate pathspecs from the reviewed tracked and untracked inventory; do not use `git add -A`, broad globs, or paths outside the selected worktree. Do not require functional partitioning for this explicit broad-deploy mode.
|
|
45
|
-
- Run each diagnostic, gate, fetch, stage, commit, push, and hash verification at most once per cycle, except the single documented transient push retry below.
|
|
46
|
-
- Start a new cycle only after a repository change or new remote evidence. Never repeat an unchanged failing command hoping for a different result.
|
|
47
|
-
- Continue until all required checks pass or a terminal blocker occurs. Stop after five repair cycles, or when the same root cause remains after two repairs.
|
|
48
|
-
- Treat authentication, unavailable credentials, unresolved conflicts after bounded repair, secret exposure, destructive changes, GitHub outages, and ambiguous scope expansion as terminal blockers. Ordinary branch divergence, dirty state, untracked versionable files, generated projections, lint/format failures, and other repairable pending work are not blockers: repair them within the selected worktree and continue under the same authorization.
|
|
28
|
+
Recognize builder only through the approved `zaip-ai/zaip-aios` origin, root `@zaip-ai/aios` manifest and public CLI `@zaip-ai/cli` manifest together. A consumer may install these skills but does not acquire builder npm capability. Conflicting builder signals must fail closed rather than silently downgrade.
|
|
49
29
|
|
|
50
|
-
##
|
|
30
|
+
## Scope and authority evidence
|
|
51
31
|
|
|
52
|
-
|
|
32
|
+
Default `current-work` covers the attributable files and commits of the current authorized work, including causally required projections. A generic deploy never absorbs unrelated dirty files or already-formed unrelated commits. A commit containing mixed ownership requires safe reconciliation before publication; a path filter alone cannot scope the contents of a pushed SHA.
|
|
53
33
|
|
|
54
|
-
|
|
34
|
+
Only explicit “deploy de tudo” selects `all-worktree`: inventory all versionable work in exactly the selected checkout, preserve attribution and apply secret, size and ignore checks. Other worktrees remain outside the grant.
|
|
55
35
|
|
|
56
|
-
|
|
57
|
-
node .agents/skills/zaip-skill-github-deploy/scripts/preflight.mjs --repository . --remote origin
|
|
58
|
-
```
|
|
36
|
+
Before mutation record actual intent, policy source, mode, scope, selected worktree, local source branch/detached SHA, remote and configured target, reviewed file/commit inventory, valid checks, reconciliation strategy and preservation refs. Keep these details in evidence, not a long chat report. Never record credential values.
|
|
59
37
|
|
|
60
|
-
|
|
38
|
+
New product commits require their real Task/Change/Execution and write scopes. Existing commits need no synthetic Task. Records/local-only snapshots retain their exemption; conversation capture is not product attribution. Never select the latest global Task as a fallback.
|
|
61
39
|
|
|
62
|
-
|
|
40
|
+
## Branch and access
|
|
63
41
|
|
|
64
|
-
|
|
42
|
+
Read `.agents/config/project.yaml` for the actual application target. Frontend/backend follow `deploy.frontend.branch`/`deploy.backend.branch`, including configured `main`. These explicit targets take precedence over a legacy generic `deploy.branch`. Do not create beta or assume production promotion is needed for a configured application main.
|
|
65
43
|
|
|
66
|
-
|
|
67
|
-
- Database automation publishes only the literal `beta` branch through reviewed migration PRs. Backend follows `deploy.backend.branch`, including `main` when configured. Database production promotion remains a human GitHub merge after review and required checks.
|
|
68
|
-
- Frontend and site can publish their own validation builds from the configured validation branch. Their provider configuration remains project-owned and separate from production; this Git-only skill does not authorize a provider deployment.
|
|
69
|
-
- A central database repository is optional and configured by the consuming project. Do not infer a repository name, remote, service target, or credential from another repository.
|
|
44
|
+
Database alone retains literal `beta`, reviewed request-branch PRs and human production promotion. A migration request may publish its authorized `request/<id>` ref for a PR against beta; it never applies SQL or provisions resources. Read-only beta/production credentials cannot publish Git or mutate services.
|
|
70
45
|
|
|
71
|
-
|
|
46
|
+
Run the reviewed folder-scoped SSH preflight for the selected application scope:
|
|
72
47
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
The default legacy GitHub publisher accepts its separate exact-candidate qualification
|
|
77
|
-
receipt only after the remote full gate and TGZ matrix. Explicit administrator activation after signed local qualification switches the
|
|
78
|
-
publisher to the verified local receipt. One read-only install smoke then gates npm;
|
|
79
|
-
no private-draft pilot is required. Activation is never implicit.
|
|
80
|
-
Follow [local preparation](../../zaip-skill-release-qualification/references/local-preparation.md)
|
|
81
|
-
for exact-candidate evidence, deadlines and rapid-preparation limits. Impact selection has
|
|
82
|
-
no test-count ceiling; rapid results are not release receipts. Preserve consumer policy
|
|
83
|
-
boundaries and reuse only valid matching evidence. On timeout, terminate the command tree,
|
|
84
|
-
retain the failed gate and repair its evidenced cause; never omit gates to obtain success.
|
|
48
|
+
```text
|
|
49
|
+
node .agents/skills/zaip-skill-github-deploy/scripts/preflight.mjs --repository <ROOT> --remote origin --scope frontend
|
|
50
|
+
```
|
|
85
51
|
|
|
86
|
-
|
|
52
|
+
Use backend when that is the actual scope. Require SSH origin, repository-local or matching folder `core.sshCommand`, an existing key, Git identity and successful `ls-remote`. Do not change Git/SSH configuration, keys, remotes, accounts or transport; do not use process overrides. A configured remote target differs legitimately from a recovery branch or detached source.
|
|
87
53
|
|
|
88
|
-
|
|
89
|
-
2. Inspect suspicious environment, key, certificate, state, or credential files without printing secret values. Block secrets and files at or above GitHub's 100 MB limit.
|
|
90
|
-
3. Reuse valid evidence for unchanged work. Run only gates required by repository Rules, the active Change, or the failed GitHub job.
|
|
91
|
-
- Turbo cache hits are valid only when the active work did not originate from a failed remote CI gate.
|
|
92
|
-
- When repairing failed CI, reproduce the exact failed gate once per repair cycle with Turbo cache bypassed when applicable.
|
|
93
|
-
4. If a local gate fails, capture the exact failing command and error, make the smallest authorized repair, update lifecycle evidence, and start the next cycle without asking for another deploy authorization.
|
|
94
|
-
5. After all required local gates pass, stage each reviewed selected-worktree path with `git add -- <explicit-pathspecs>`. If a file is secret, oversized, ignored by policy, or outside the selected worktree, exclude it and report the reason; otherwise include it.
|
|
54
|
+
## Preserve and reconcile
|
|
95
55
|
|
|
96
|
-
|
|
56
|
+
1. Inspect selected status, intended tracked/untracked paths, index and pending commits. Check ignores, secrets and GitHub's 100 MB file limit without printing secrets.
|
|
57
|
+
2. Fetch the target and compute ahead/behind for the authorized source. Before reconciliation, create and verify a recoverable ref and named stash covering tracked/untracked changes. Preserve concurrent index entries.
|
|
58
|
+
3. Rebase by default, or merge when the user chose it, within authorized scope. Do not switch locally to the target, force, reset or rewrite published history. Restore with `stash apply`, retain it until preservation is verified and reconcile generated aggregates from canonical inputs.
|
|
59
|
+
4. Re-inventory after repair. Stage explicit reviewed paths only, never `git add -A`, `git add -u` or broad globs. Functional partitioning is useful when ownership requires it, not a universal extra step.
|
|
60
|
+
5. Use causal Task commit identity, hook and range validation. `CODEX|CLAUDE` and compact P/S/T lineage must be observed; standalone Task uses `[Task-first:XXXX]`. Subject is at most 96 characters with full IDs in trailers. See [commit policy](../../zaip-skill-task/references/commit-policy.md).
|
|
97
61
|
|
|
98
|
-
|
|
62
|
+
Dirty state, recovery branches, missing generated files and repairable divergence do not require a second authorization. Unresolved integrity/authentication failures, secrets, destructive requirements or necessary scope expansion are blockers.
|
|
99
63
|
|
|
100
|
-
|
|
64
|
+
## Select checks and deliver
|
|
101
65
|
|
|
102
|
-
|
|
66
|
+
**Commits mode:** use `scripts/guarded-commits.mjs` with its reviewed CLI. It validates scoped checks and binds delivery to the exact candidate and configured branch refspec. Select checks from changed behavior, acceptance criteria and observed failures. Do not require a release receipt, version bump, signing key, TGZ, dense distribution gate or full suite just to push commits. Direct installer/security impact still requires its relevant integrity or regression checks.
|
|
103
67
|
|
|
104
|
-
|
|
68
|
+
```text
|
|
69
|
+
node .agents/skills/zaip-skill-github-deploy/scripts/guarded-commits.mjs --repository <ROOT> --sha <SHA> --branch <BRANCH> --scope frontend --request-file <FILE> --plan-file <FILE> --checks-file <FILE>
|
|
70
|
+
```
|
|
105
71
|
|
|
106
|
-
|
|
72
|
+
Use the resolver's same plain-text request and JSON plan. The checks file is a JSON array of objects with `command` and `args`, selected for this work; for example, `[{"command":"node","args":["--test","path/to/affected.test.mjs"]}]`. It is not an array of argv arrays. Backend uses its actual scope. Complete Task-owned commits before calling the helper; it sends an already-committed exact SHA and does not create product commits.
|
|
107
73
|
|
|
108
|
-
|
|
74
|
+
**Release mode:** follow [release identity](release-identity.md), then [local preparation](../../zaip-skill-release-qualification/references/local-preparation.md). Synchronize and commit the candidate before exact-SHA qualification. Check published SHA before allocating a new version: unchanged published SHA is a no-op.
|
|
109
75
|
|
|
110
|
-
|
|
76
|
+
- Verified builder uses `scripts/local-release-deploy.mjs` and its protected signed preparation. Resolve mode locally first; perform signed preparation only for release mode. Once preparation has created its receipt directory, save the UTF-8 human request at `<output-dir>/deploy-request.txt` and generate the final-candidate contract at `<output-dir>/deploy-contract.json` using the resolver's `--request-file` and `--plan-file`. Do not pre-create the preparation directory for these inputs. The protected helper reads these fixed paths before reusing preparation or using credentials; no new request/plan CLI arguments expand the installed hook allowlist. Only GitHub Actions publishes `@zaip-ai/cli`.
|
|
77
|
+
- The private Ed25519 release key is distinct from the Git SSH key and a local `.env` npm token. Never substitute credentials or print them; existing builder trust and protected policy remain mandatory for Release, not for commits.
|
|
78
|
+
- Consumer release uses only its project's GitHub checks and reviewed release route. Do not demand builder Ed25519 material, protected GitHub variables, npm channel, package version or TGZ. An existing project-specific signed consumer helper may be used only under that project's adopted policy.
|
|
79
|
+
- `prepare`, `verify` and dry-run never authorize or perform publication.
|
|
80
|
+
- Immediately before sending, recheck policy, scope, target, candidate and checks. Changed identity or stale evidence requires renewed preparation. Use the guarded route; never bypass it with manual push.
|
|
81
|
+
- Use immutable `<sha>:refs/heads/<configured-branch>`. After push, compare that SHA with the remote ref. A local branch name is not the proof.
|
|
111
82
|
|
|
112
|
-
|
|
83
|
+
Detailed reviewed notes belong only in the GitHub Release. Observe the complete previous-Release-to-candidate Git diff and commit range; retain the full range/inventory as source and evidence. It is not limited to the current Task or chat. Group meaningful final outcomes, validate [release notes](release-notes.md), publish the reviewed UTF-8 body and read it back byte-for-byte. A compare link or generated notes alone is insufficient.
|
|
113
84
|
|
|
114
|
-
|
|
115
|
-
- Claude: `[CLAUDE] [P:XXXX] [S:XXXX] [T:XXXX] <Task title>`
|
|
85
|
+
## Recovery and verification
|
|
116
86
|
|
|
117
|
-
|
|
87
|
+
Use the frozen Task autonomy profile, not a deploy-specific repair cap. Balanced permits 1 initial plus 9 repairs (10 executions total) and 3 replans. Tests, tool calls and elapsed time are not executions; continuation preserves the ledger. Persistent and essential retain their own configured limits. There is no independent five-cycle/two-repair stop or Task wallclock rule.
|
|
118
88
|
|
|
119
|
-
|
|
89
|
+
Run diagnostics/checks once per unchanged state and retry only after a concrete repair or new remote evidence. A transport ambiguity requires reading remote state first; a documented transient retry must stay within the existing attempt. Inspect exact failed CI steps, bypass stale cache only for the affected gate and never weaken checks.
|
|
120
90
|
|
|
121
|
-
|
|
122
|
-
- Never switch keys, accounts, remotes, or transport, and never pass SSH/config overrides or force options.
|
|
91
|
+
Observe required checks for the exact SHA with concise progress while pending. Keep waiting through an active remote run; a tool timeout is not Task abandonment. Unavailable authentication/API access is a real blocker, never evidence that a Release, tag or check does not exist. Report push success separately from unconfirmed CI.
|
|
123
92
|
|
|
124
|
-
##
|
|
93
|
+
## Completion and brief chat result
|
|
125
94
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
6. If checks cannot be observed, report the push as successful but CI as unconfirmed; never claim the deployment is fully validated.
|
|
95
|
+
| Resolved mode | Required observed result |
|
|
96
|
+
| --- | --- |
|
|
97
|
+
| Commits | Scoped exact SHA on configured remote branch and valid required checks |
|
|
98
|
+
| Consumer release | Commits result plus exact tag/SHA, Release URL and reviewed-body readback |
|
|
99
|
+
| Builder release | Release result plus protected assets, terminal `publish-cli.yml` success and npm version/dist-tag/artifact integrity |
|
|
132
100
|
|
|
133
|
-
|
|
101
|
+
Verify preservation of unrelated files and index entries; require a clean owned candidate, not deletion or inclusion of unrelated work to make the whole checkout clean. Retry/resume an existing Release only with its original SHA/identity. Never create an empty new Release for an already-published candidate.
|
|
134
102
|
|
|
135
|
-
|
|
103
|
+
Chat reports the mode, branch/SHA, Release link when applicable and actual blocker/pending check briefly. Detailed change notes stay in the Release; evidence retains authority, full Git range and verification. Formal Task closure remains the responsible orchestrator/finalizer's work. GitHub publication does not authorize provider deployment, SQL, paid provisioning or host power actions.
|
|
136
104
|
|
|
137
|
-
##
|
|
105
|
+
## Current release and pre-main candidate
|
|
138
106
|
|
|
139
|
-
For a
|
|
107
|
+
For builder release or a critical Task, reconcile attributed branches/worktrees first. An isolated terminal Task closes only after verified bundle/snapshot backup; a shared checkout with mixed product changes blocks for attribution. The current release's frozen manifest and exact SHA audit precede fixed local candidate checks. The only open-work exception is the authenticated critical release-only coordinator Task and its owner SPEC; its Task Run remains active during audit and advance, with exact SPEC/Execution/macro ancestry and candidate records. All other open current-release work blocks. Push only `main`, then require the successful `pre-main-candidate.yml` push run on that exact SHA before Release publication. Never create a remote CI candidate branch. Failed local checks block the push; failed remote CI or unavailable credentials block Release publication and require repair on `main`. After Release/npm and advance, bind closure Evidence to the published candidate, close Task and SPEC, then push one exact main metadata-only commit through `local-release-deploy.mjs push-closure` and observe CI on the new main SHA. PRD/SPEC drafts for a later release may remain.
|
|
@@ -1,49 +1,52 @@
|
|
|
1
1
|
# Release identity contract
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Read only after the deploy resolver selects release, or for an explicitly requested local release preparation. Commits mode has no release version decision. Preparation alone never authorizes publication.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Observe before allocating
|
|
6
|
+
|
|
7
|
+
Verify the repository's actual published Release and tag SHAs, draft state and candidate SHA through authenticated sources. An API/authentication error does not establish absence.
|
|
8
|
+
|
|
9
|
+
If the current candidate is already the published SHA, verify that delivery as a no-op. Do not bump a version or create an empty Release. Resume a verified draft or retry an observed incomplete pipeline only with the exact same SHA, tag, version and reviewed body. A different candidate cannot reuse that identity or inherit its receipt.
|
|
10
|
+
|
|
11
|
+
For a new candidate, select the numeric maximum canonical `vN.N` among observed tags, including prereleases, and increment the minor numerically by default: `v1.9` becomes `v1.10`. Initial release is `v1.0`; major changes require an explicit human request. Never move, delete, overwrite or recreate an existing tag. A conflicting tag needs the next allowed identity and a newly qualified candidate.
|
|
12
|
+
|
|
13
|
+
Use the reviewed identity helper with a verified SHA and tag inventory or explicit candidate product version:
|
|
14
|
+
|
|
15
|
+
```text
|
|
6
16
|
node .agents/skills/zaip-skill-github-deploy/scripts/resolve-release-identity.mjs --sha <sha> --channel <validation|production> --tags-json <verified-json>
|
|
7
17
|
node .agents/skills/zaip-skill-github-deploy/scripts/resolve-release-identity.mjs --sha <sha> --channel <validation|production> --version <N.N>
|
|
8
18
|
```
|
|
9
19
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
20
|
+
Frontend/backend follow their configured application branch, including main. Do not infer beta creation or a human promotion gate from main alone. Where the project selects a beta release, use prerelease without a version suffix. Database production retains its separate human-promotion requirement.
|
|
21
|
+
|
|
22
|
+
## Reviewed notes and immutable delivery
|
|
23
|
+
|
|
24
|
+
Observe the entire previous-Release-tag-to-candidate Git range, or explicit initial inventory when no prior tag exists. Follow [release notes](release-notes.md); keep detailed change notes in the Release and the full Git range in source/evidence.
|
|
25
|
+
|
|
26
|
+
Create or resume the Release only for the verified candidate, using its reviewed UTF-8 notes file. Do not use generated notes alone. Resolve the tag's commit separately from `targetCommitish`, which may contain a branch name, and read back the body byte-for-byte.
|
|
27
|
+
|
|
28
|
+
Record version, tag, exact SHA, channel, prerelease state, Release URL, range and inventory. Local qualification, GitHub checks, registry proof and lifecycle closure are separate evidence. A missing prior tag is normal for initial mode, not a blocker.
|
|
14
29
|
|
|
15
|
-
##
|
|
30
|
+
## Consumer boundary
|
|
16
31
|
|
|
17
|
-
|
|
32
|
+
A consumer release is GitHub-only. Qualify its own actual checks and adopt its reviewed release route; never require framework package manifests, TGZ, npm channel, builder signing keys or protected builder policy. If that project already requires the signed consumer helper, use its own trust and commands under that policy; do not create a new signing requirement merely because release was selected.
|
|
18
33
|
|
|
19
|
-
|
|
34
|
+
Generic consumer deploy under auto selects commits. Only release mode enters this identity contract. One-shot explicit release does not change the saved preference.
|
|
20
35
|
|
|
21
|
-
|
|
36
|
+
## Verified builder package and protected publisher
|
|
22
37
|
|
|
23
|
-
|
|
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.
|
|
24
39
|
|
|
25
|
-
|
|
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.
|
|
26
41
|
|
|
27
|
-
|
|
42
|
+
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.
|
|
28
43
|
|
|
29
|
-
|
|
44
|
+
Only qualified GitHub Actions may publish `@zaip-ai/cli`. Never run local `npm publish`, `pnpm publish` or equivalents. Bind SHA, tag, package version and artifact digest.
|
|
30
45
|
|
|
31
|
-
`
|
|
32
|
-
requested extended qualification, dispatch it on the configured branch with the exact
|
|
33
|
-
current head `sha` and matching `npm_channel`. This extended path qualifies source
|
|
34
|
-
and the runtime matrix; it does not publish npm or create a Release.
|
|
46
|
+
With explicitly enabled `ZAIP_LOCAL_RELEASE_ENABLED=true`, use the signed local `essential-v3` receipt and enrolled public trust. GitHub verifies the published assets and runs one read-only exact-TGZ installation/doctor smoke before the isolated npm job. No legacy qualification receipt or private-draft pilot is required on that configured path.
|
|
35
47
|
|
|
36
|
-
|
|
37
|
-
the signed local `essential-v3` receipt and enrolled public trust. It does not require a
|
|
38
|
-
legacy `qualify-cli.yml` receipt or a private-draft pilot. GitHub verifies the
|
|
39
|
-
published assets and runs one read-only exact-TGZ installation/doctor smoke before
|
|
40
|
-
the separate npm publication job. Extended full qualification remains an explicit local option.
|
|
48
|
+
When the reduced path is disabled, retain the legacy publisher's exact-candidate qualification receipt and runtime matrix. `qualify-cli.yml` is manual-only; dispatch it only when that configured release path or an explicit extended qualification requires it. `github-readiness.mjs` binds repository, SHA, branch, channel, qualifying run/attempt, receipt lifetime and artifact digests. Maximum receipt lifetime remains seven days. Missing/failed/stale evidence never permits fallback publication.
|
|
41
49
|
|
|
42
|
-
|
|
43
|
-
`github-readiness.mjs` with `--workflow-path .github/workflows/qualify-cli.yml`
|
|
44
|
-
and `--checks-json '["receipt"]'` for the exact repository, SHA, branch and channel.
|
|
45
|
-
It verifies the qualifying run/attempt, receipt lifetime and artifact digests.
|
|
46
|
-
Missing or failed evidence never permits fallback publication. Receipts have a
|
|
47
|
-
maximum seven-day lifetime; a changed candidate requires new qualification.
|
|
50
|
+
Inspect configured signing paths, trust and protected policy before declaring a builder credential missing. Preserve the existing authority for routine version-specific updates of only `ZAIP_LOCAL_RELEASE_POLICY_B64`, with exact bytes and readback, described in [local preparation](../../zaip-skill-release-qualification/references/local-preparation.md). Trust rotation, changed protected settings or weaker gates require their own authority.
|
|
48
51
|
|
|
49
|
-
|
|
52
|
+
A published builder Release with failed/unobserved npm is partial. Continue its observed recovery under the frozen Task profile, balanced 10 executions/3 replans, without a new Release for the same SHA or a separate five-cycle cap.
|