@zaip-ai/cli 2.0.0 → 2.6.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 +33 -14
- package/dist/services/adapters.d.ts +1 -1
- package/dist/services/adapters.d.ts.map +1 -1
- package/dist/services/adapters.js +30 -25
- package/dist/services/adapters.js.map +1 -1
- package/dist/services/agent-adapters.js +45 -15
- package/dist/services/agent-adapters.js.map +1 -1
- package/dist/services/agent-adapters.test.js +13 -7
- package/dist/services/agent-adapters.test.js.map +1 -1
- package/dist/services/agent-discovery.d.ts +27 -0
- package/dist/services/agent-discovery.d.ts.map +1 -0
- package/dist/services/agent-discovery.js +73 -0
- package/dist/services/agent-discovery.js.map +1 -0
- package/dist/services/codex-conversation-lifecycle-hook.d.ts.map +1 -1
- package/dist/services/codex-conversation-lifecycle-hook.js +153 -24
- package/dist/services/codex-conversation-lifecycle-hook.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 +146 -72
- package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
- package/dist/services/codex-rules.d.ts +1 -1
- package/dist/services/codex-rules.d.ts.map +1 -1
- package/dist/services/codex-rules.js +3 -3
- package/dist/services/codex-subagent-hook-template.d.ts +1 -1
- package/dist/services/codex-subagent-hook-template.d.ts.map +1 -1
- package/dist/services/codex-subagent-hook-template.js +117 -66
- package/dist/services/codex-subagent-hook-template.js.map +1 -1
- package/dist/services/install-agents-template.d.ts.map +1 -1
- package/dist/services/install-agents-template.js +56 -6
- package/dist/services/install-agents-template.js.map +1 -1
- package/dist/services/logger.js +1 -1
- package/dist/services/logger.js.map +1 -1
- package/dist/services/logger.test.js +24 -3
- package/dist/services/logger.test.js.map +1 -1
- package/dist/services/runtime-template.test.js +138 -1
- package/dist/services/runtime-template.test.js.map +1 -1
- package/package.json +1 -1
- package/templates/.agents/.env.example +9 -3
- package/templates/.agents/README-ENG.md +47 -5
- package/templates/.agents/README.md +38 -9
- package/templates/.agents/architecture/software-architecture.md +1 -59
- package/templates/.agents/branding/brandbook.md +3 -0
- package/templates/.agents/config/agents/catalog.yaml +40 -28
- package/templates/.agents/config/agents/discovery.json +319 -0
- package/templates/.agents/config/clients/codex/agents/zaip-agent-analyst.toml +3 -6
- package/templates/.agents/config/clients/codex/agents/zaip-agent-auditor.toml +3 -6
- package/templates/.agents/config/clients/codex/agents/zaip-agent-backend.toml +4 -7
- package/templates/.agents/config/clients/codex/agents/zaip-agent-brand-strategist.toml +6 -8
- package/templates/.agents/config/clients/codex/agents/zaip-agent-builder.toml +4 -7
- package/templates/.agents/config/clients/codex/agents/zaip-agent-cloud-engineer.toml +13 -13
- package/templates/.agents/config/clients/codex/agents/zaip-agent-data-analyst.toml +5 -7
- package/templates/.agents/config/clients/codex/agents/zaip-agent-designer.toml +4 -7
- package/templates/.agents/config/clients/codex/agents/zaip-agent-finalizer.toml +3 -6
- package/templates/.agents/config/clients/codex/agents/zaip-agent-frontend.toml +4 -7
- package/templates/.agents/config/clients/codex/agents/zaip-agent-general-operations.toml +6 -8
- package/templates/.agents/config/clients/codex/agents/zaip-agent-governance-compliance.toml +3 -6
- package/templates/.agents/config/clients/codex/agents/zaip-agent-growth-strategist.toml +6 -8
- package/templates/.agents/config/clients/codex/agents/zaip-agent-integrator.toml +3 -6
- package/templates/.agents/config/clients/codex/agents/zaip-agent-marketing-analyst.toml +6 -8
- package/templates/.agents/config/clients/codex/agents/zaip-agent-orchestrator.toml +4 -5
- package/templates/.agents/config/clients/codex/agents/zaip-agent-refactoring-specialist.toml +3 -6
- package/templates/.agents/config/clients/codex/agents/zaip-agent-reviewer.toml +3 -6
- package/templates/.agents/config/clients/codex/agents/zaip-agent-sales-specialist.toml +6 -8
- package/templates/.agents/config/clients/codex/agents/zaip-agent-security-auditor.toml +3 -6
- package/templates/.agents/config/clients/codex/agents/zaip-agent-task-executor.toml +4 -7
- package/templates/.agents/config/clients/codex/agents/zaip-agent-website-developer.toml +4 -7
- package/templates/.agents/config/clients/codex/agents/zaip-agent-writer.toml +3 -6
- package/templates/.agents/config/pricing/models.json +57 -33
- package/templates/.agents/config/project.yaml +12 -1
- package/templates/.agents/dashboard/.zaip-managed.json +378 -98
- package/templates/.agents/dashboard/apps/frontend/dist/assets/CostCalculationGuidePage-CGxeQak4.js +1 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-CYfpYsTr.js → DashboardHelpDialog-tzS7YxYB.js} +173 -47
- package/templates/.agents/dashboard/apps/frontend/dist/assets/PricingSettingsDialog-DEbCi1gP.js +1 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-1L7Qw-Gq.js +3 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-EInWr641.css +1 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-t1Om0Abw.js +1 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-B6aZfo5f.js +68 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-TPUT2IUt.js → icons-vendor-DiGC-dsJ.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/index-DgTmNHN5.js +2 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-Ct48XHGL.js → react-vendor-kPO6yNed.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/rolldown-runtime-Bh1tDfsg.js +1 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/traceability-DQpKX9c1.js +1 -0
- 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/App.tsx +3 -1264
- package/templates/.agents/dashboard/apps/frontend/src/AppDashboardContent.tsx +363 -0
- package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.dom.test.ts +99 -0
- package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.tsx +62 -6
- package/templates/.agents/dashboard/apps/frontend/src/ProjectStackEditor.tsx +3 -1
- package/templates/.agents/dashboard/apps/frontend/src/__tests__/app-composition-support.ts +7 -0
- package/templates/.agents/dashboard/apps/frontend/src/cost-period-refresh.test.ts +9 -7
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-api-settings.ts +151 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.ts +28 -153
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-app-shell.tsx +33 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-cost-facts.ts +30 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-project-overview.ts +7 -1
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-retry.ts +17 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-setup-route.ts +29 -0
- package/templates/.agents/dashboard/apps/frontend/src/dashboard-view-actions.ts +66 -0
- package/templates/.agents/dashboard/apps/frontend/src/operations-period-render.test.ts +3 -2
- package/templates/.agents/dashboard/apps/frontend/src/overview-status-page.test.ts +2 -2
- package/templates/.agents/dashboard/apps/frontend/src/project-installation-status.test.ts +48 -0
- package/templates/.agents/dashboard/apps/frontend/src/project-installation-status.ts +29 -0
- package/templates/.agents/dashboard/apps/frontend/src/project-settings-page.css +68 -0
- package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +2 -2
- package/templates/.agents/dashboard/apps/frontend/src/sao-paulo-day-rollover.test.ts +36 -0
- package/templates/.agents/dashboard/apps/frontend/src/sao-paulo-day-rollover.ts +30 -0
- package/templates/.agents/dashboard/apps/frontend/src/snapshot-banner-semantics.test.ts +2 -5
- package/templates/.agents/dashboard/apps/frontend/src/snapshot-coherence.test.ts +30 -19
- package/templates/.agents/dashboard/apps/frontend/src/use-app-effects.ts +9 -1
- package/templates/.agents/dashboard/apps/frontend/src/use-app-trace-task-pagination.ts +77 -0
- package/templates/.agents/dashboard/apps/frontend/src/use-app-work-board.ts +397 -0
- package/templates/.agents/dashboard/apps/frontend/src/use-dashboard-app-model.tsx +782 -0
- package/templates/.agents/dashboard/apps/frontend/src/use-snapshot-notice.tsx +49 -0
- package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostDeveloperPanelSlot.tsx +16 -0
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostGroupsTable.tsx +459 -0
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.test.ts +27 -17
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.tsx +62 -186
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorRunDialog.tsx +20 -0
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables-hides-calls-that-have-no-collected.test.ts +80 -0
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables-keeps-legacy-codex-identity-fields-blank.test.ts +455 -0
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.test.ts +18 -525
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.tsx +32 -508
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-export-sources.ts +74 -0
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-page-actions.ts +19 -0
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-page-selectors.ts +49 -0
- package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-table-formatters.ts +115 -0
- package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-monitor-projection.test-fixtures.ts +2 -0
- package/templates/.agents/dashboard/modules/operations/package.json +1 -1
- package/templates/.agents/dashboard/modules/operations/src/contracts.ts +4 -0
- package/templates/.agents/dashboard/modules/operations/src/react/EntityTableBadges.tsx +34 -0
- package/templates/.agents/dashboard/modules/operations/src/react/EntityTables.tsx +8 -38
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview-keeps-structure-classes-mutually-exclusive.test.ts +243 -0
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.test.ts +27 -275
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.tsx +70 -247
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverviewCharts.tsx +171 -0
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverviewPanels.tsx +64 -0
- package/templates/.agents/dashboard/modules/operations/src/react/OperationsPage.tsx +4 -3
- package/templates/.agents/dashboard/modules/operations/src/react/PrdDocumentDialog.test.tsx +2 -1
- package/templates/.agents/dashboard/modules/operations/src/react/manual-work-priority.test.ts +2 -1
- package/templates/.agents/dashboard/modules/operations/src/react/operations-coverage-toast.test.ts +6 -2
- package/templates/.agents/dashboard/modules/operations/src/react/operations-overview-period-filter.test.ts +6 -14
- package/templates/.agents/dashboard/modules/operations/src/react/operations-overview.status-cards.test.ts +3 -1
- package/templates/.agents/dashboard/modules/operations/src/react/operations-page-contract.ts +2 -0
- package/templates/.agents/dashboard/modules/operations/src/react/overview-metric-format.ts +32 -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/branding/src/index.ts +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 +1458 -1458
- package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +1425 -1425
- package/templates/.agents/dashboard/packages/local-runtime/package.json +2 -1
- package/templates/.agents/dashboard/packages/local-runtime/scripts/build-sqlite-runtime.mjs +7 -3
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +1458 -1459
- package/templates/.agents/dashboard/packages/local-runtime/src/active-codex-telemetry.ts +25 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/agent-catalog-settings.test.ts +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.test.ts +53 -8
- package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.ts +79 -24
- package/templates/.agents/dashboard/packages/local-runtime/src/projection-refresh-diagnostics.ts +35 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-costs-routes.ts +168 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-dual-reads-manifest-summaries-without-losing.test.ts +344 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-http-contracts.ts +31 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-operations-routes.ts +345 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-read-projections.ts +461 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-reconciliation-refresh.test.ts +78 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-route-context.ts +13 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.test.ts +18 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.ts +19 -3
- package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot.test.ts +22 -21
- package/templates/.agents/dashboard/packages/local-runtime/src/server-sqlite-task-trace.ts +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/server-sqlite-view-allowlist.test.ts +25 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-trace-routes.ts +64 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/server-work-reconciliation.test.ts +2 -30
- package/templates/.agents/dashboard/packages/local-runtime/src/server-work-reconciliation.ts +6 -23
- package/templates/.agents/dashboard/packages/local-runtime/src/server.test-fixtures.ts +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +2 -330
- package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +73 -1060
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-first-fold.ts +78 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-projections.ts +561 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-runs.ts +600 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-metric-contract.test.ts +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-agent-dimension.ts +269 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-context.ts +32 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-entity-group.ts +244 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-filtered-dimension.ts +292 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-financial.ts +547 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-model-dimension.ts +360 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-provider-dimension.ts +169 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-summary.ts +475 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-temporal-dimension.ts +132 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-timing.ts +299 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-view-page.ts +692 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-counts-every-root-execution-day-returns.test.ts +739 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-does-not-convert-delayed-historical-finalizer.test.ts +706 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-filesystem.ts +748 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-first-fold-types.ts +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-keeps-orphan-telemetry-out-kanban-without.test.ts +710 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-marks-token-cost-telemetry-unavailable-when.test.ts +618 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-rebuild.ts +755 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-rebuilds-disposable-snapshot-serves-zaip-records.test.ts +276 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-schema.ts +193 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-types.ts +123 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +1 -2805
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.ts +17 -6930
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-base-views.ts +385 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-dashboard-views.ts +412 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/work-priority-contract.test.ts +4 -3
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-build.mjs +195 -0
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-lifecycle.test.mjs +2 -7
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-logging.mjs +35 -0
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-navigation.mjs +114 -0
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-paths.mjs +90 -0
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.mjs +89 -418
- package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.test.mjs +22 -12
- package/templates/.agents/dashboard/packages/ui/package.json +1 -1
- package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
- package/templates/.agents/dashboard/tests/e2e/playwright.config.ts +4 -1
- package/templates/.agents/design/.zaip-managed.json +5 -5
- package/templates/.agents/design/DESIGN.md +2 -186
- package/templates/.agents/design/README.md +12 -2
- package/templates/.agents/design/apps/catalog/package.json +1 -1
- package/templates/.agents/design/packages/local-runtime/package.json +1 -1
- package/templates/.agents/growth/strategy.md +3 -0
- package/templates/.agents/marketing/strategy.md +3 -0
- package/templates/.agents/requirements/autonomous-assurance.md +2 -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 +13 -4
- 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 +15 -5
- package/templates/.agents/requirements/public-distribution.md +5 -3
- 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 +3 -3
- package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
- package/templates/.agents/rules/architecture.md +2 -0
- package/templates/.agents/rules/astra-diagnostic.md +20 -0
- package/templates/.agents/rules/autonomy-decision.md +3 -1
- package/templates/.agents/rules/cloud-hostinger-autonomy.md +2 -0
- package/templates/.agents/rules/context.md +2 -1
- package/templates/.agents/rules/core.md +9 -14
- package/templates/.agents/rules/design-system-central-contract.md +17 -0
- package/templates/.agents/rules/evolution.md +3 -1
- package/templates/.agents/rules/frontend-lite.md +3 -1
- package/templates/.agents/rules/local-sqlite-storage.md +2 -2
- package/templates/.agents/rules/meta-mcp.md +4 -1
- package/templates/.agents/rules/model-orchestration.md +1 -1
- package/templates/.agents/rules/run-lifecycle-closure.md +7 -5
- package/templates/.agents/rules/security.md +3 -1
- package/templates/.agents/rules/specialist-routing.md +6 -2
- package/templates/.agents/rules/text-writing-utf8.md +1 -1
- package/templates/.agents/rules/workflow.md +7 -5
- package/templates/.agents/runtime/VERSION +1 -1
- package/templates/.agents/runtime/bin/zaip.mjs +534 -266
- package/templates/.agents/runtime/checksums.sha256 +6 -6
- package/templates/.agents/runtime/manifest.json +1 -1
- package/templates/.agents/runtime/pnpm-lock.sha256 +1 -1
- package/templates/.agents/runtime/provenance.json +5 -5
- package/templates/.agents/runtime/sbom.cdx.json +1 -1
- package/templates/.agents/sales/playbook.md +3 -0
- package/templates/.agents/skills/zaip-aios/SKILL.md +5 -3
- package/templates/.agents/skills/zaip-skill-adapt-stack/SKILL.md +1 -0
- package/templates/.agents/skills/zaip-skill-api-contracts/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-api-contracts/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-application-observability/SKILL.md +15 -0
- package/templates/.agents/skills/zaip-skill-application-observability/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-application-observability/references/signal-design.md +3 -0
- package/templates/.agents/skills/zaip-skill-application-readiness/SKILL.md +15 -0
- package/templates/.agents/skills/zaip-skill-application-readiness/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-application-readiness/references/evidence-matrix.md +3 -0
- package/templates/.agents/skills/zaip-skill-architecture-design/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-architecture-design/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-async-jobs/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-async-jobs/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-auth-tenancy/SKILL.md +15 -0
- package/templates/.agents/skills/zaip-skill-auth-tenancy/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-auth-tenancy/references/data-access-paths.md +9 -0
- package/templates/.agents/skills/zaip-skill-auth-tenancy/references/worker-scenario.md +5 -0
- package/templates/.agents/skills/zaip-skill-auth-tenancy/scripts/worker-contract.test.mjs +27 -0
- package/templates/.agents/skills/zaip-skill-author-skills/SKILL.md +2 -0
- package/templates/.agents/skills/zaip-skill-author-skills/references/engineering-skill-index.md +9 -0
- package/templates/.agents/skills/zaip-skill-author-skills/scripts/audit-skill-catalog.mjs +5 -3
- package/templates/.agents/skills/zaip-skill-author-skills/scripts/author-skill-scripts.test.mjs +27 -0
- package/templates/.agents/skills/zaip-skill-backend/SKILL.md +4 -0
- package/templates/.agents/skills/zaip-skill-backend/references/deployment-environments.md +75 -0
- package/templates/.agents/skills/zaip-skill-backend/references/supabase-migration-contract.md +23 -0
- package/templates/.agents/skills/zaip-skill-brand-governance/SKILL.md +2 -0
- package/templates/.agents/skills/zaip-skill-cache-strategy/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-cache-strategy/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-change/SKILL.md +1 -1
- package/templates/.agents/skills/zaip-skill-cloud-engineering/SKILL.md +7 -0
- package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/SKILL.md +37 -0
- package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/agents/openai.yaml +6 -0
- package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/references/workers-static-assets.md +26 -0
- package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/references/workflow-templates.md +71 -0
- package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/scripts/cloudflare-github-deploy-contract.test.mjs +77 -0
- package/templates/.agents/skills/zaip-skill-config/SKILL.md +21 -11
- package/templates/.agents/skills/zaip-skill-config/agents/openai.yaml +2 -2
- package/templates/.agents/skills/zaip-skill-container-runtime/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-container-runtime/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-context/SKILL.md +6 -1
- package/templates/.agents/skills/zaip-skill-context/references/prd-spec-task-handoff.md +10 -0
- package/templates/.agents/skills/zaip-skill-context/references/rule-selection.md +20 -0
- package/templates/.agents/skills/zaip-skill-cqrs/SKILL.md +1 -0
- package/templates/.agents/skills/zaip-skill-cybersecurity/SKILL.md +18 -0
- package/templates/.agents/skills/zaip-skill-cybersecurity/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-cybersecurity/references/audit-contract.md +94 -0
- package/templates/.agents/skills/zaip-skill-cybersecurity/scripts/score-audit.mjs +185 -0
- package/templates/.agents/skills/zaip-skill-cybersecurity/scripts/score-audit.test.mjs +101 -0
- package/templates/.agents/skills/zaip-skill-data-modeling/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-data-modeling/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-database-migrations/SKILL.md +20 -0
- package/templates/.agents/skills/zaip-skill-database-migrations/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-database-migrations/references/manual-mode.md +15 -0
- package/templates/.agents/skills/zaip-skill-database-migrations/references/promotion-example.md +5 -0
- package/templates/.agents/skills/zaip-skill-database-migrations/scripts/export-manual-sql.mjs +145 -0
- package/templates/.agents/skills/zaip-skill-database-migrations/scripts/export-manual-sql.test.mjs +178 -0
- package/templates/.agents/skills/zaip-skill-dependency-upgrade/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-dependency-upgrade/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-deployment-pipeline/SKILL.md +15 -0
- package/templates/.agents/skills/zaip-skill-deployment-pipeline/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-deployment-pipeline/references/runtime-shapes.md +3 -0
- package/templates/.agents/skills/zaip-skill-design-system/SKILL.md +20 -9
- package/templates/.agents/skills/zaip-skill-dev-environment/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-dev-environment/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-dev-environment/references/inventory-contract.md +7 -0
- package/templates/.agents/skills/zaip-skill-dev-environment/scripts/inventory.mjs +77 -0
- package/templates/.agents/skills/zaip-skill-disaster-recovery/SKILL.md +15 -0
- package/templates/.agents/skills/zaip-skill-disaster-recovery/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-disaster-recovery/references/recovery-scope.md +3 -0
- package/templates/.agents/skills/zaip-skill-execution/SKILL.md +5 -3
- package/templates/.agents/skills/zaip-skill-execution/references/correction-cycle.md +7 -0
- package/templates/.agents/skills/zaip-skill-execution/references/runtime-governance.md +13 -0
- package/templates/.agents/skills/zaip-skill-external-integrations/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-external-integrations/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-frontend/SKILL.md +4 -0
- package/templates/.agents/skills/zaip-skill-frontend-componentization/SKILL.md +44 -0
- package/templates/.agents/skills/zaip-skill-frontend-componentization/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-frontend-data-flows/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-frontend-data-flows/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-general-operations/SKILL.md +8 -7
- package/templates/.agents/skills/zaip-skill-general-operations/references/extended-workflow.md +7 -0
- package/templates/.agents/skills/zaip-skill-github-actions-setup/SKILL.md +36 -0
- package/templates/.agents/skills/zaip-skill-github-actions-setup/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-github-actions-setup/references/cloudflare-pages.md +33 -0
- package/templates/.agents/skills/zaip-skill-github-actions-setup/references/github.md +63 -0
- package/templates/.agents/skills/zaip-skill-github-actions-setup/references/hostinger-vps.md +55 -0
- package/templates/.agents/skills/zaip-skill-github-actions-setup/references/npm.md +30 -0
- package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/check-skill.mjs +55 -0
- package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/verify-cloudflare.mjs +61 -0
- package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/verify-cloudflare.test.mjs +128 -0
- package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/verify-ssh.integration.test.mjs +106 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +43 -76
- package/templates/.agents/skills/zaip-skill-github-deploy/references/deployment-workflow.md +131 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/references/github-release-workflow-template.md +31 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/references/release-gate-matrix.md +24 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/references/release-identity.md +44 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/references/release-notes.md +134 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.mjs +389 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.test.mjs +134 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs +25 -2
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-readiness-api.test.mjs +134 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-readiness.mjs +98 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-readiness.test.mjs +25 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/install-github-readiness-workflow.mjs +159 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/install-github-readiness-workflow.test.mjs +160 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.mjs +149 -12
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.test.mjs +64 -5
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/release-notes-coverage.test.mjs +126 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/resolve-release-identity.mjs +78 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/resolve-release-identity.test.mjs +51 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/validate-release-notes.mjs +184 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/scripts/validate-release-notes.test.mjs +109 -0
- package/templates/.agents/skills/zaip-skill-github-setup/SKILL.md +5 -0
- package/templates/.agents/skills/zaip-skill-github-setup-ssh-folder/SKILL.md +54 -0
- package/templates/.agents/skills/zaip-skill-github-setup-ssh-folder/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-github-setup-ssh-folder/assets/.env.example +9 -0
- package/templates/.agents/skills/zaip-skill-github-setup-ssh-folder/references/operational-procedure.md +137 -0
- package/templates/.agents/skills/zaip-skill-growth-strategy-revops/SKILL.md +8 -18
- package/templates/.agents/skills/zaip-skill-growth-strategy-revops/references/extended-workflow.md +21 -0
- package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/SKILL.md +18 -10
- package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/agents/openai.yaml +3 -4
- package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/references/aws-cli-terraform.md +62 -0
- package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/references/guia-iniciante-hostinger-vps.md +183 -0
- package/templates/.agents/skills/zaip-skill-marketing/SKILL.md +8 -13
- package/templates/.agents/skills/zaip-skill-marketing/references/extended-workflow.md +16 -0
- package/templates/.agents/skills/zaip-skill-meta-ads-setup/SKILL.md +2 -0
- package/templates/.agents/skills/zaip-skill-meta-token-onboarding/SKILL.md +17 -0
- package/templates/.agents/skills/zaip-skill-meta-token-onboarding/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-meta-token-onboarding/references/onboarding-manual.md +96 -0
- package/templates/.agents/skills/zaip-skill-module-scaffold/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-module-scaffold/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-module-scaffold/references/scaffold-contract.md +9 -0
- package/templates/.agents/skills/zaip-skill-module-scaffold/scripts/helpers.test.mjs +121 -0
- package/templates/.agents/skills/zaip-skill-module-scaffold/scripts/scaffold.mjs +169 -0
- package/templates/.agents/skills/zaip-skill-move-prd/SKILL.md +1 -1
- package/templates/.agents/skills/zaip-skill-move-spec/SKILL.md +1 -1
- package/templates/.agents/skills/zaip-skill-performance-engineering/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-performance-engineering/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-prd/SKILL.md +1 -1
- package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-local-telemetry.mjs +1 -0
- package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-lib.mjs +26 -9
- package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-lib.test.mjs +39 -13
- package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-remeasurement.mjs +1 -0
- package/templates/.agents/skills/zaip-skill-refactor-landing-page/SKILL.md +66 -0
- package/templates/.agents/skills/zaip-skill-refactor-landing-page/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-refactor-landing-page/references/behavioral-dry-run.md +23 -0
- package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +44 -1
- package/templates/.agents/skills/zaip-skill-release-qualification/references/local-preparation.md +98 -0
- package/templates/.agents/skills/zaip-skill-review/SKILL.md +1 -0
- package/templates/.agents/skills/zaip-skill-rules/SKILL.md +3 -3
- package/templates/.agents/skills/zaip-skill-sales-methodology/SKILL.md +9 -17
- package/templates/.agents/skills/zaip-skill-sales-methodology/references/extended-workflow.md +20 -0
- package/templates/.agents/skills/zaip-skill-setup/SKILL.md +22 -21
- package/templates/.agents/skills/zaip-skill-setup/agents/openai.yaml +2 -2
- package/templates/.agents/skills/zaip-skill-spec/SKILL.md +3 -2
- package/templates/.agents/skills/zaip-skill-storage-uploads/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-storage-uploads/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-systematic-debugging/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-systematic-debugging/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-task/SKILL.md +16 -7
- package/templates/.agents/skills/zaip-skill-task/references/commit-policy.md +25 -0
- package/templates/.agents/skills/zaip-skill-test-data/SKILL.md +14 -0
- package/templates/.agents/skills/zaip-skill-test-data/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-test-data/scripts/generate.mjs +72 -0
- package/templates/.agents/skills/zaip-skill-testing-strategy/SKILL.md +15 -0
- package/templates/.agents/skills/zaip-skill-testing-strategy/agents/openai.yaml +4 -0
- package/templates/.agents/skills/zaip-skill-testing-strategy/references/example-map.md +3 -0
- package/templates/.agents/skills/zaip-skill-text-encoding/SKILL.md +1 -1
- package/templates/.agents/skills/zaip-skill-website-readiness/SKILL.md +8 -0
- package/templates/.agents/zaip-aios/INDEX.md +1 -1
- package/templates/.agents/zaip-aios/README.md +6 -0
- package/templates/.agents/zaip-aios/VERSION +1 -1
- package/templates/.agents/zaip-aios/guides/08-contexto-e-tokens.md +19 -3
- package/templates/.agents/zaip-aios/guides/10-seguranca.md +2 -1
- package/templates/.agents/zaip-aios/guides/12-instalacao-e-upgrade.md +37 -7
- package/templates/.agents/zaip-aios/guides/20-instalacao-detalhada.md +19 -4
- package/templates/.agents/zaip-aios/guides/23-orquestracao-de-modelos.md +32 -3
- package/templates/.agents/zaip-aios/guides/26-qualidade-e-release.md +21 -0
- package/templates/scripts/validate-cloud-hostinger-contract.mjs +34 -0
- package/templates/template-manifest.json +1031 -235
- package/templates/.agents/branding/.gitkeep +0 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/CostCalculationGuidePage-snUCQYTC.js +0 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/PricingSettingsDialog-BPtVUGgs.js +0 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-3Awyaovx.js +0 -3
- package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-GgzpZ_PY.css +0 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-DHDrd5rE.js +0 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-DbaLbU2q.js +0 -68
- package/templates/.agents/dashboard/apps/frontend/dist/assets/index-BYbpmqmM.js +0 -2
- package/templates/.agents/dashboard/apps/frontend/dist/assets/rolldown-runtime-D9-fqq9M.js +0 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/traceability-BDe4_Ubl.js +0 -1
- package/templates/.agents/growth/.gitkeep +0 -0
- package/templates/.agents/marketing/.gitkeep +0 -0
- package/templates/.agents/sales/.gitkeep +0 -0
package/templates/.agents/skills/zaip-skill-database-migrations/scripts/export-manual-sql.test.mjs
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import { spawnSync } from "node:child_process";
|
|
3
|
+
import { createHash } from "node:crypto";
|
|
4
|
+
import {
|
|
5
|
+
copyFileSync,
|
|
6
|
+
existsSync,
|
|
7
|
+
mkdirSync,
|
|
8
|
+
mkdtempSync,
|
|
9
|
+
readdirSync,
|
|
10
|
+
readFileSync,
|
|
11
|
+
rmSync,
|
|
12
|
+
symlinkSync,
|
|
13
|
+
writeFileSync,
|
|
14
|
+
} from "node:fs";
|
|
15
|
+
import { tmpdir } from "node:os";
|
|
16
|
+
import { dirname, join, resolve } from "node:path";
|
|
17
|
+
import test from "node:test";
|
|
18
|
+
import { exportManualSql } from "./export-manual-sql.mjs";
|
|
19
|
+
|
|
20
|
+
function fixture(t) {
|
|
21
|
+
const root = mkdtempSync(join(tmpdir(), "zaip-manual-sql-"));
|
|
22
|
+
t.after(() => {
|
|
23
|
+
assert.equal(dirname(root), resolve(tmpdir()));
|
|
24
|
+
assert.match(root, /zaip-manual-sql-[^\\/]+$/);
|
|
25
|
+
rmSync(root, { recursive: true, force: true });
|
|
26
|
+
});
|
|
27
|
+
assert.equal(spawnSync("git", ["init", "-q", root], { windowsHide: true }).status, 0);
|
|
28
|
+
spawnSync(
|
|
29
|
+
"git",
|
|
30
|
+
["-C", root, "remote", "add", "origin", "git@github.com:example/source-service.git"],
|
|
31
|
+
{ windowsHide: true },
|
|
32
|
+
);
|
|
33
|
+
mkdirSync(join(root, ".agents/config"), { recursive: true });
|
|
34
|
+
writeFileSync(
|
|
35
|
+
join(root, ".agents/config/project.yaml"),
|
|
36
|
+
"project: {timezone: America/Sao_Paulo}\n",
|
|
37
|
+
);
|
|
38
|
+
writeFileSync(join(root, "proposal.sql"), "create table sample(id bigint primary key);\n");
|
|
39
|
+
return {
|
|
40
|
+
repository: root,
|
|
41
|
+
betaDeclined: true,
|
|
42
|
+
name: "criar-tabela-funcionalidade-meta-diagnosis",
|
|
43
|
+
sqlFile: "proposal.sql",
|
|
44
|
+
now: new Date("2026-09-07T15:33:00Z"),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
test("missing beta alone never creates a folder without explicit refusal", (t) => {
|
|
49
|
+
const options = fixture(t);
|
|
50
|
+
for (const betaDeclined of [undefined, false, "true"]) {
|
|
51
|
+
assert.throws(
|
|
52
|
+
() => exportManualSql({ ...options, betaDeclined }),
|
|
53
|
+
/Explicit human beta refusal/,
|
|
54
|
+
);
|
|
55
|
+
assert.equal(existsSync(join(options.repository, "db-migrations")), false);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test("export uses Git root, project timezone and pending human status with traceability", (t) => {
|
|
60
|
+
const options = fixture(t);
|
|
61
|
+
const child = join(options.repository, "nested");
|
|
62
|
+
mkdirSync(child);
|
|
63
|
+
const result = exportManualSql({ ...options, repository: child });
|
|
64
|
+
assert.equal(
|
|
65
|
+
result.file,
|
|
66
|
+
join(
|
|
67
|
+
options.repository,
|
|
68
|
+
"db-migrations/2026-09-07-12-33-criar-tabela-funcionalidade-meta-diagnosis.sql",
|
|
69
|
+
),
|
|
70
|
+
);
|
|
71
|
+
assert.equal(result.status, "pending_human_execution");
|
|
72
|
+
assert.equal(result.source_repository, "example/source-service");
|
|
73
|
+
assert.equal(result.source_sha, null);
|
|
74
|
+
const sql = readFileSync(result.file, "utf8");
|
|
75
|
+
assert.match(sql, /No agent or pipeline may execute/);
|
|
76
|
+
assert.match(sql, /create table sample/);
|
|
77
|
+
assert.equal(result.sha256, createHash("sha256").update(sql).digest("hex"));
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
test("same minute collisions produce distinct files and preserve earlier SQL", (t) => {
|
|
81
|
+
const options = fixture(t);
|
|
82
|
+
const first = exportManualSql(options);
|
|
83
|
+
const original = readFileSync(first.file, "utf8");
|
|
84
|
+
writeFileSync(
|
|
85
|
+
join(options.repository, options.sqlFile),
|
|
86
|
+
"alter table sample add column title text;",
|
|
87
|
+
);
|
|
88
|
+
const second = exportManualSql(options);
|
|
89
|
+
assert.match(second.file, /-2\.sql$/);
|
|
90
|
+
assert.equal(readFileSync(first.file, "utf8"), original);
|
|
91
|
+
assert.equal(readdirSync(dirname(first.file)).length, 2);
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
test("invalid input and invalid timezone fail before optional folder creation", (t) => {
|
|
95
|
+
const options = fixture(t);
|
|
96
|
+
for (const change of [{ name: "../unsafe" }, { name: "..." }, { sqlFile: "missing.sql" }]) {
|
|
97
|
+
assert.throws(() => exportManualSql({ ...options, ...change }));
|
|
98
|
+
assert.equal(existsSync(join(options.repository, "db-migrations")), false);
|
|
99
|
+
}
|
|
100
|
+
writeFileSync(
|
|
101
|
+
join(options.repository, ".agents/config/project.yaml"),
|
|
102
|
+
"project: {timezone: invalid/timezone}\n",
|
|
103
|
+
);
|
|
104
|
+
assert.throws(() => exportManualSql(options), /time zone/i);
|
|
105
|
+
assert.equal(existsSync(join(options.repository, "db-migrations")), false);
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
test("absent timezone explicitly uses UTC and normalizes Portuguese names", (t) => {
|
|
109
|
+
const options = fixture(t);
|
|
110
|
+
writeFileSync(join(options.repository, ".agents/config/project.yaml"), "project: {}\n");
|
|
111
|
+
const result = exportManualSql({ ...options, name: "Edição da tabela" });
|
|
112
|
+
assert.equal(result.timezone, "UTC");
|
|
113
|
+
assert.match(result.file, /2026-09-07-15-33-edicao-da-tabela\.sql$/);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
test("existing junction cannot redirect SQL writes", (t) => {
|
|
117
|
+
const options = fixture(t);
|
|
118
|
+
const outside = join(options.repository, "other-directory");
|
|
119
|
+
mkdirSync(outside);
|
|
120
|
+
symlinkSync(
|
|
121
|
+
outside,
|
|
122
|
+
join(options.repository, "db-migrations"),
|
|
123
|
+
process.platform === "win32" ? "junction" : "dir",
|
|
124
|
+
);
|
|
125
|
+
assert.throws(() => exportManualSql(options), /real directory/);
|
|
126
|
+
assert.deepEqual(readdirSync(outside), []);
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
test("portable installed helper needs no node_modules and no deploy target change", (t) => {
|
|
130
|
+
const options = fixture(t);
|
|
131
|
+
const skills = join(options.repository, ".agents/skills");
|
|
132
|
+
const localScript = join(skills, "zaip-skill-database-migrations/scripts/export-manual-sql.mjs");
|
|
133
|
+
const parser = join(skills, "zaip-skill-github-deploy/scripts/yaml-parser.mjs");
|
|
134
|
+
mkdirSync(dirname(localScript), { recursive: true });
|
|
135
|
+
mkdirSync(dirname(parser), { recursive: true });
|
|
136
|
+
copyFileSync(join(import.meta.dirname, "export-manual-sql.mjs"), localScript);
|
|
137
|
+
copyFileSync(
|
|
138
|
+
resolve(import.meta.dirname, "../../zaip-skill-github-deploy/scripts/yaml-parser.mjs"),
|
|
139
|
+
parser,
|
|
140
|
+
);
|
|
141
|
+
const before = readFileSync(join(options.repository, ".agents/config/project.yaml"), "utf8");
|
|
142
|
+
const result = spawnSync(
|
|
143
|
+
process.execPath,
|
|
144
|
+
[
|
|
145
|
+
localScript,
|
|
146
|
+
"--repository",
|
|
147
|
+
options.repository,
|
|
148
|
+
"--beta-declined",
|
|
149
|
+
"--name",
|
|
150
|
+
options.name,
|
|
151
|
+
"--sql-file",
|
|
152
|
+
options.sqlFile,
|
|
153
|
+
],
|
|
154
|
+
{ encoding: "utf8", windowsHide: true, env: { ...process.env, NODE_PATH: "" } },
|
|
155
|
+
);
|
|
156
|
+
assert.equal(result.status, 0, result.stderr);
|
|
157
|
+
assert.equal(JSON.parse(result.stdout).status, "pending_human_execution");
|
|
158
|
+
assert.equal(
|
|
159
|
+
readFileSync(join(options.repository, ".agents/config/project.yaml"), "utf8"),
|
|
160
|
+
before,
|
|
161
|
+
);
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
test("manual SQL remains blocked from automatic application publication", (t) => {
|
|
165
|
+
const options = fixture(t);
|
|
166
|
+
exportManualSql(options);
|
|
167
|
+
const preflight = resolve(
|
|
168
|
+
import.meta.dirname,
|
|
169
|
+
"../../zaip-skill-github-deploy/scripts/preflight.mjs",
|
|
170
|
+
);
|
|
171
|
+
const result = spawnSync(
|
|
172
|
+
process.execPath,
|
|
173
|
+
[preflight, "--repository", options.repository, "--scope", "frontend", "--resolve-branch"],
|
|
174
|
+
{ encoding: "utf8", windowsHide: true },
|
|
175
|
+
);
|
|
176
|
+
assert.equal(result.status, 1);
|
|
177
|
+
assert.match(result.stderr, /cannot include database migrations/);
|
|
178
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zaip-skill-dependency-upgrade
|
|
3
|
+
description: Plan and verify safe runtime, library, tooling, manifest, lockfile, and compatibility upgrades.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Upgrade dependencies
|
|
7
|
+
|
|
8
|
+
Use when changing a runtime, library, package manager, framework, or tool version.
|
|
9
|
+
|
|
10
|
+
1. Inventory direct and transitive consumers, supported engine range, release notes, lockfile effects, and generated artifacts.
|
|
11
|
+
2. Define compatibility and rollback before modifying manifests. Do not mix unrelated upgrades with a focused repair.
|
|
12
|
+
3. Update source, configuration, docs, tests, and generated outputs affected by the actual version contract.
|
|
13
|
+
4. Validate a clean install and the focused build or test paths; distinguish an installation failure from an application regression.
|
|
14
|
+
5. Record unresolved upstream incompatibilities and the exact pre-upgrade recovery point.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zaip-skill-deployment-pipeline
|
|
3
|
+
description: Build and verify application delivery pipelines with identifiable artifacts, migrations, smoke checks, and rollback.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Deliver application changes
|
|
7
|
+
|
|
8
|
+
Use when configuring an application build-to-environment delivery process. It does not authorize a deployment.
|
|
9
|
+
Read `references/runtime-shapes.md` when selecting API, worker, or static-site delivery.
|
|
10
|
+
|
|
11
|
+
1. Define source revision, immutable artifact identity, environment configuration names, promotion rule, migration order, smoke check, and rollback trigger.
|
|
12
|
+
2. Separate artifact build, migration, deploy, and verification so each result is observable and recoverable.
|
|
13
|
+
3. Ensure the deployed runtime can expose the tested artifact revision without leaking build or credential details.
|
|
14
|
+
4. Test pipeline failure handling and a recoverable rollout in a non-production target when available.
|
|
15
|
+
5. For an explicit external deployment request, compose with `$zaip-skill-github-deploy` or the approved cloud workflow.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
# Runtime shapes
|
|
2
|
+
|
|
3
|
+
Build and deploy Hono API and BullMQ worker containers separately so scaling and failure are observable per role. Build React/Vite and Astro outputs as static assets for Cloudflare Pages; they are not worker containers. Migration promotion follows expand before compatible application rollout and contract only after the compatibility window. This skill defines a pipeline; use the guarded GitHub skill only for an explicit Git publication request.
|
|
@@ -5,7 +5,9 @@ description: Govern canonical design-system tokens, catalog specimens and anchor
|
|
|
5
5
|
|
|
6
6
|
# Design System
|
|
7
7
|
|
|
8
|
-
Use this skill when creating or editing the central design language.
|
|
8
|
+
Use this skill when creating or editing the central design language. First load and
|
|
9
|
+
apply [`RULE-DESIGN-SYSTEM-CENTRAL`](../../rules/design-system-central-contract.md); it is the mandatory, exception-free
|
|
10
|
+
contract for user-requested creation or customization. Manu owns
|
|
9
11
|
`.agents/design/DESIGN.md`, `.agents/design/tokens.json`,
|
|
10
12
|
`.agents/design/apps/catalog/**`, canonical component specimens, and the frontend of
|
|
11
13
|
the framework pages `design-system` and `componentes`.
|
|
@@ -15,21 +17,26 @@ the framework pages `design-system` and `componentes`.
|
|
|
15
17
|
Call Manu whenever a change creates or edits a central design rule, design token,
|
|
16
18
|
canonical component contract, or either design catalog page. A feature component that
|
|
17
19
|
merely lives in a directory named `components` is not central design work and remains
|
|
18
|
-
with the delivery specialist unless it changes the shared contract.
|
|
20
|
+
with the delivery specialist unless it changes the shared contract. Manu coordinates
|
|
21
|
+
its renderable representation in `#/components` with that specialist; this does not
|
|
22
|
+
move business logic or delivery ownership to the central catalog.
|
|
19
23
|
|
|
20
24
|
## Workflow
|
|
21
25
|
|
|
22
|
-
1. Read the current `DESIGN.md`, tokens,
|
|
26
|
+
1. Read `RULE-DESIGN-SYSTEM-CENTRAL`, the current `DESIGN.md`, tokens,
|
|
27
|
+
catalog specimens, and consuming pages.
|
|
23
28
|
2. State the design problem, affected products, accessibility constraints, and
|
|
24
29
|
compatibility impact.
|
|
25
30
|
3. Update `DESIGN.md` as the human-readable source of principles, voice, layout,
|
|
26
31
|
typography, color, motion, interaction, accessibility, and component rules.
|
|
27
32
|
4. Update machine-readable tokens without duplicating contradictory values.
|
|
28
|
-
5.
|
|
29
|
-
|
|
30
|
-
6.
|
|
33
|
+
5. For every new UI component, ensure a renderable `#/components` representation with
|
|
34
|
+
applicable states or variants; keep local business logic in its delivery module.
|
|
35
|
+
6. For every user-requested design-system creation or edit, update the canonical
|
|
36
|
+
specimen and both catalog presentations as required by the Rule.
|
|
37
|
+
7. Check representative consumers for regressions; coordinate with Doug or Jonny when
|
|
31
38
|
their product surfaces must adopt the new contract.
|
|
32
|
-
|
|
39
|
+
8. Verify design artifacts and rendered catalog pages before recording evidence.
|
|
33
40
|
|
|
34
41
|
## Required outcomes
|
|
35
42
|
|
|
@@ -37,8 +44,12 @@ with the delivery specialist unless it changes the shared contract.
|
|
|
37
44
|
- Tokens have stable semantic names and do not encode a single page's implementation.
|
|
38
45
|
- Canonical components document anatomy, states, variants, content rules, keyboard
|
|
39
46
|
behavior, focus, contrast, responsiveness, and do/don't guidance.
|
|
40
|
-
-
|
|
41
|
-
-
|
|
47
|
+
- `#/design-system` exposes foundations and tokens.
|
|
48
|
+
- `#/components` is the componentes page and exposes reusable component specimens and states.
|
|
49
|
+
- Every new UI component has a renderable `#/components` example with applicable states or variants;
|
|
50
|
+
a Storybook entry or name alone is insufficient.
|
|
51
|
+
- Component specimens retain the active `DESIGN.md` identity and pertinent tokens without turning
|
|
52
|
+
local components into global contracts.
|
|
42
53
|
- Both pages consume the same central source instead of maintaining independent copies.
|
|
43
54
|
- Breaking changes include migration guidance and affected consumers.
|
|
44
55
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zaip-skill-dev-environment
|
|
3
|
+
description: Inspect and prepare a reproducible local development environment without exposing local configuration values.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Prepare development environment
|
|
7
|
+
|
|
8
|
+
Use for a new checkout, onboarding, or a local runtime failure. This concerns the consumer application; framework installation remains `$zaip-skill-setup`.
|
|
9
|
+
|
|
10
|
+
1. Read project configuration and manifests before proposing prerequisites. Never install packages, start services, or execute package scripts during discovery.
|
|
11
|
+
2. Run `node .agents/skills/zaip-skill-dev-environment/scripts/inventory.mjs [root]` for a names-and-presence-only inventory. Read its grammar before extending it.
|
|
12
|
+
3. Compare observed runtimes, package manager, declared services, ports, and environment-variable names with documented requirements.
|
|
13
|
+
4. Report exact missing prerequisites and safe start commands; retain unavailable state rather than inventing a successful service.
|
|
14
|
+
5. Verify an authorized setup through the smallest relevant health or build command and record the environment limits.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Inventory grammar and output
|
|
2
|
+
|
|
3
|
+
Run `node .agents/skills/zaip-skill-dev-environment/scripts/inventory.mjs [root]`.
|
|
4
|
+
|
|
5
|
+
`root` is an optional filesystem directory and defaults to the current directory. No other argument is accepted. The helper reads only `package.json`, lockfile names, project configuration presence, and dotenv file names. It never runs package scripts, installs dependencies, or writes files.
|
|
6
|
+
|
|
7
|
+
It emits one UTF-8 JSON object with `schema_version: 1`, relative `root: "."`, Node version, file-presence booleans, package-manager name, sorted package-script names, and sorted dotenv variable names per present dotenv file. It never emits dotenv values or package-script values.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
import { basename, resolve } from "node:path";
|
|
4
|
+
|
|
5
|
+
const argumentsList = process.argv.slice(2);
|
|
6
|
+
if (argumentsList.length > 1) throw new Error("Usage: inventory.mjs [root]");
|
|
7
|
+
const [rootArgument = "."] = argumentsList;
|
|
8
|
+
const root = resolve(rootArgument);
|
|
9
|
+
const packagePath = resolve(root, "package.json");
|
|
10
|
+
const dotenvNames = [".env", ".env.local", ".env.development", ".env.test", ".env.example"];
|
|
11
|
+
const result = {
|
|
12
|
+
schema_version: 1,
|
|
13
|
+
root: ".",
|
|
14
|
+
node: process.version,
|
|
15
|
+
files: {},
|
|
16
|
+
package_manager: null,
|
|
17
|
+
package_scripts: [],
|
|
18
|
+
environment_names: {},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
for (const name of [
|
|
22
|
+
"package.json",
|
|
23
|
+
"pnpm-lock.yaml",
|
|
24
|
+
"package-lock.json",
|
|
25
|
+
"yarn.lock",
|
|
26
|
+
"bun.lockb",
|
|
27
|
+
".agents/config/project.yaml",
|
|
28
|
+
]) {
|
|
29
|
+
result.files[name] = existsSync(resolve(root, name));
|
|
30
|
+
}
|
|
31
|
+
for (const name of dotenvNames) {
|
|
32
|
+
const path = resolve(root, name);
|
|
33
|
+
if (!existsSync(path)) continue;
|
|
34
|
+
result.environment_names[name] = namesFromDotenv(await readFile(path, "utf8"));
|
|
35
|
+
}
|
|
36
|
+
if (result.environment_names[".env.example"]) {
|
|
37
|
+
const present = new Set(
|
|
38
|
+
Object.entries(result.environment_names)
|
|
39
|
+
.filter(([name]) => name !== ".env.example")
|
|
40
|
+
.flatMap(([, names]) => names),
|
|
41
|
+
);
|
|
42
|
+
result.required_environment_names = result.environment_names[".env.example"];
|
|
43
|
+
result.missing_required_environment_names = result.required_environment_names.filter(
|
|
44
|
+
(name) => !present.has(name),
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
if (result.files["package.json"]) {
|
|
48
|
+
const manifest = JSON.parse(await readFile(packagePath, "utf8"));
|
|
49
|
+
result.package_manager =
|
|
50
|
+
typeof manifest.packageManager === "string"
|
|
51
|
+
? manifest.packageManager.split("@")[0]
|
|
52
|
+
: lockManager(result.files);
|
|
53
|
+
result.package_scripts = Object.keys(manifest.scripts ?? {}).sort();
|
|
54
|
+
} else result.package_manager = lockManager(result.files);
|
|
55
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
56
|
+
|
|
57
|
+
function namesFromDotenv(source) {
|
|
58
|
+
return [
|
|
59
|
+
...new Set(
|
|
60
|
+
source.split(/\r?\n/).flatMap((line) => {
|
|
61
|
+
const match = line.match(/^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=/);
|
|
62
|
+
return match?.[1] ? [match[1]] : [];
|
|
63
|
+
}),
|
|
64
|
+
),
|
|
65
|
+
].sort();
|
|
66
|
+
}
|
|
67
|
+
function lockManager(files) {
|
|
68
|
+
return files["pnpm-lock.yaml"]
|
|
69
|
+
? "pnpm"
|
|
70
|
+
: files["package-lock.json"]
|
|
71
|
+
? "npm"
|
|
72
|
+
: files["yarn.lock"]
|
|
73
|
+
? "yarn"
|
|
74
|
+
: files["bun.lockb"]
|
|
75
|
+
? "bun"
|
|
76
|
+
: null;
|
|
77
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zaip-skill-disaster-recovery
|
|
3
|
+
description: Plan and verify recoverable application data and service restoration with scoped backups, RPO, RTO, and evidence.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Prepare recovery
|
|
7
|
+
|
|
8
|
+
Use for backup, restore, continuity, or data-loss recovery planning.
|
|
9
|
+
Read `references/recovery-scope.md` to separate service recovery evidence.
|
|
10
|
+
|
|
11
|
+
1. Identify services, data classes, dependencies, owners, recovery point objective, recovery time objective, and acceptable loss.
|
|
12
|
+
2. Define backup scope, retention, encryption, access, restore ordering, and verification criteria; do not call a backup useful without restore evidence.
|
|
13
|
+
3. Test restoration in an isolated target with representative data and verify application behavior, permissions, and job safety afterward.
|
|
14
|
+
4. Record gaps, manual actions, external dependencies, and evidence freshness.
|
|
15
|
+
5. Do not perform destructive recovery drills or alter production backups without explicit authorization.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
# Recovery scope
|
|
2
|
+
|
|
3
|
+
PostgreSQL restore, Supabase Storage restore, Redis recovery, and runtime configuration recovery are separate procedures with separate evidence. After restoration, prove the application starts, tenant permissions remain effective, and queued work does not duplicate a durable effect. Redis cache loss can be acceptable; queue loss may not be.
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: zaip-skill-execution
|
|
3
|
-
description: Execute prepared ZAIP work
|
|
3
|
+
description: Execute prepared ZAIP work only on explicit intent; materialize its DAG and close Runs with evidence.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Executar trabalho preparado
|
|
7
7
|
|
|
8
|
+
Carregue [a governança de execução e delegação](references/runtime-governance.md) antes da entrega ou dispatch. Perguntas read-only sem descendentes usam somente o kernel de RULE-CORE e a skill de domínio pertinente.
|
|
9
|
+
|
|
8
10
|
Use esta skill somente quando o usuário pedir execução. `prepare` não autoriza mutação nem promoção para `ready`; quando a execução foi pedida explicitamente, prepare o PRD/SPEC ainda em `draft`, se necessário, e então execute sem exigir outra confirmação intermediária.
|
|
9
11
|
|
|
10
12
|
1. Carregue o PreparedPlan e valide hash, origem, Requirements/AC, DAG, write scopes e estado atual. Antes de selecionar executor, carregue as Rules aplicáveis; para decisão comercial, use `$RULE-SPECIALIST-ROUTING` como fonte única da matriz de roteamento. Ao construir ou diagnosticar o plano externo, leia [o contrato compacto](references/prepared-plan.md).
|
|
@@ -13,10 +15,10 @@ Use esta skill somente quando o usuário pedir execução. `prepare` não autori
|
|
|
13
15
|
4. Execute a ordem topológica. Paralelize apenas Tasks independentes cujos arquivos, módulos, migrations, ambientes e recursos não conflitem.
|
|
14
16
|
5. Antes de integrar agentes paralelos, compare diffs, testes e efeitos; reconcilie o resultado no workspace canônico.
|
|
15
17
|
6. Registre decisões humanas/IA, uso por fase, evidências por AC, testes, evals e arquivos alterados. Antes de implementar, consulte `zaip task assurance TASK --json`, aplique [o contrato de prova observável](../zaip-skill-change/references/observable-evidence.md) e [o fluxo de candidato e preparo](references/candidate-workflow.md). Falta de prova obrigatória impede aceite, não trabalho independente.
|
|
16
|
-
7. Para toda Task com mutação, produza um commit canônico isolado antes de `completed`, com provider efetivo exclusivamente `CODEX` ou `CLAUDE` e sem `AUTO`. Linhagem evidenciada usa `[CODEX|CLAUDE] [P:XXXX] [S:XXXX] [T:XXXX] <título da Task>` com blocos disponíveis; Task sem PRD/SPEC usa `[CODEX|CLAUDE] [Task-first:XXXX] <título da Task>`. Limite o assunto a 96 caracteres sem cortar palavras, preserve IDs completos disponíveis nos trailers `ZAIP-PRD`, `ZAIP-SPEC`, `ZAIP-Task`, `ZAIP-Change`, `ZAIP-Execution` e `ZAIP-Agent`, e não combine Tasks no mesmo commit.
|
|
18
|
+
7. Para toda Task com mutação, produza um commit canônico isolado antes de `completed`, com provider efetivo exclusivamente `CODEX` ou `CLAUDE` e sem `AUTO`. Linhagem evidenciada usa `[CODEX|CLAUDE] [P:XXXX] [S:XXXX] [T:XXXX] <título da Task>` com blocos disponíveis; Task sem PRD/SPEC usa `[CODEX|CLAUDE] [Task-first:XXXX] <título da Task>`. Limite o assunto a 96 caracteres sem cortar palavras, preserve IDs completos disponíveis nos trailers `ZAIP-PRD`, `ZAIP-SPEC`, `ZAIP-Task`, `ZAIP-Change`, `ZAIP-Execution` e `ZAIP-Agent`, e não combine Tasks no mesmo commit. Commits de produto, inclusive deploy particionado, exigem essa identidade; somente alterações em `.agents/records/` e `.local/` dispensam Task. Valide o índice e siga [o contrato portátil](../zaip-skill-task/references/commit-policy.md).
|
|
17
19
|
8. Respeite a política do plano: use `zaip verify --changed --risk <risk>` no modo `scoped`; reserve `pnpm verify` para `full`, risco critical ou gate final exigido.
|
|
18
20
|
9. Em cada `run usage`, leia `budget.context_refresh_required` e `budget.checkpoint_required`. O runtime grava o checkpoint sanitizado em `.local/checkpoints/`; quando sinalizado, reconstrua contexto somente de IDs ativos, diff e findings, descarte outputs brutos antigos e continue apenas com autoridade.
|
|
19
|
-
10.
|
|
21
|
+
10. Falha operacional transitória recebe retry limitado; impedimento essencial deixa a Task `blocked`; falha lógica exige correção localizada ou repair/rework explícito. Antes de uma próxima correção, carregue o [ciclo de correção e bloqueio](references/correction-cycle.md). Nunca esconda uma tentativa.
|
|
20
22
|
11. Cada tentativa usa uma Run raiz do `zaip-agent-orchestrator`; subagentes e fases materialmente distintas usam Sub-Runs relacionadas por `parent_run_id`. Cada Run/Sub-Run fixa agente, modelo e effort; retry técnico preserva a configuração e qualquer mudança deliberada abre outra chamada de agente.
|
|
21
23
|
12. Para delegação Codex, Sub-Run é somente subagente nativo de colaboração (`spawn_agent`). `create_thread` e `fork_thread` criam chats independentes e só podem ocorrer por pedido explícito do usuário; nunca os use como Sub-Run, fallback, retry ou prova de delegação. Se delegação nativa estiver indisponível, relate a limitação em vez de criar chat independente. Nome de catálogo, `task_name`, título ou prompt não provam ancestralidade nativa. Antes de repetir a mesma delegação limitada, aguarde ou reutilize seu filho pendente; capture somente ancestralidade/metadados observados em resultados nativos de spawn/terminal do host ou eventos SubagentStart/SubagentStop.
|
|
22
24
|
13. Interaction read-only sem descendentes termina após a resposta, sem executor/finalizador. Para interaction com descendente delegado e para delivery, depois que todos os Sub-Runs de trabalho terminarem invoque `zaip-agent-finalizer` como último filho com propósito `finalization`. Não inicie novos filhos depois dele; auto-settlement nunca fecha interaction com descendente ativo. Isso também vale para `cancelled`: o orquestrador aplica a decisão Gui pela CLI; comandos diretos Task/SPEC/PRD nunca terminalizam. Ausência, interrupção ou falha do Gui deixa a Execution inconclusiva como `blocked`.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Ciclo de correção e bloqueio
|
|
2
|
+
|
|
3
|
+
Carregue esta referência somente antes de uma nova correção. Falha operacional transitória, cuja recuperação é esperada, recebe retry limitado; impedimento essencial deixa a Task `blocked`; falha lógica exige correção localizada ou repair/rework explícito.
|
|
4
|
+
|
|
5
|
+
Registre nos findings, Change ou Run existentes somente resultados observáveis: falha, tentativa e resultado, aprendizado ou hipótese nova, e próxima ação e teste discriminante; não registre raciocínio privado. Se a mesma falha reaparecer após uma correção, revise a hipótese antes de editar novamente. Evidência pode refutá-la mesmo quando o teste não passa. Diff, ID cosmético ou mera ausência de erro não demonstram avanço.
|
|
6
|
+
|
|
7
|
+
Preserve escopo e critérios de aceite; evite melhorias opcionais e valide primeiro a hipótese específica, repetindo validação ampla somente por mudança relevante ou gate exigido. Respeite os limites e contadores existentes, sem criar paralelos; um replanejamento não os reinicia nem cria identidades novas para ganhar tentativas. Sem rota fundada, ou quando o limite aplicável se esgota, marque `blocked` com a condição objetiva de retomada no lifecycle. Astra só é usado onde a política atual permite; Task avulsa preserva modelo e effort selecionados pelo host.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Governança de execução e delegação
|
|
2
|
+
|
|
3
|
+
Carregue antes de executar uma entrega ou delegar. Este contrato detalha o kernel de RULE-CORE; perguntas diretas read-only não precisam desta expansão.
|
|
4
|
+
|
|
5
|
+
- `RULE-CORE` e `RULE-WORKFLOW`, já carregadas antes desta referência, são a fonte para configuração, autoridade externa, captura, PRD/SPEC/Task lifecycle, Git-only/deploy, perguntas, verbos, credenciais e plano visível. Aplique-as integralmente; esta referência só acrescenta a governança de execução e delegação abaixo.
|
|
6
|
+
- Em modo manual carregue `RULE-MODEL-ORCHESTRATION` antes da primeira resposta visível; aviso não bloqueia nem altera seleção. Com Codex/delegação use apenas `codex_name` do catálogo, formato `zaip-agent-NOME`, recursivamente; proíba `default`, `worker`, `explorer` e tipos ad-hoc.
|
|
7
|
+
- Para delegação Codex, Sub-Run ZAIP é somente subagente nativo de colaboração (`spawn_agent`). `create_thread` e `fork_thread` criam chats independentes e exigem pedido explícito do usuário; nunca são Sub-Run, fallback, retry ou prova de delegação. Se delegação nativa estiver indisponível, relate a limitação em vez de criar chat independente. Nome de catálogo, `task_name`, título ou prompt não prova ancestralidade nativa. Antes de repetir a mesma delegação limitada, aguarde ou reutilize seu filho pendente e capture somente ancestralidade/metadados observados em resultados nativos de spawn/terminal do host ou eventos SubagentStart/SubagentStop.
|
|
8
|
+
- Cada `client_turn_id` observável tem uma Execution idempotente/claim atômico; sem ele use identidade local sem prometer idempotência. `interaction` read-only sem descendentes é conversa sem Task artificial e termina após a resposta entregue, sem executor ou finalizador; interaction com trabalho delegado e `delivery` exigem executor/finalizador. `delivery` é trabalho materializado e reuso exige kind/origem compatíveis. A raiz é `zaip-agent-orchestrator`; quando a barreira é exigida escolha executor por capacidade, permita reviewer/auditor/integrator e termine com `zaip-agent-finalizer` em `finalization`, após descendentes, bloqueando novas chamadas.
|
|
9
|
+
- Hooks são best-effort: após cada spawn/terminal o orquestrador também executa `zaip subagent capture` idempotente com metadados reais. Use session/turn filhos, `agent-id=agent_path`, `parent-agent-id=client_thread_id` da raiz e turn distinto por chamada. Quando um evento terminal observado expõe somente agent_path, status, identidade catalogada e pai exato, `capture-terminal` aceita apenas `zaip-agent-finalizer` ou executor elegível para delivery com capacidade `task-delivery`; exige também `parent-run-id` igual ao `run_id` da raiz ativa exata, pois um client thread pode conter raízes concorrentes. O último segmento do agent_path deve ser seu `codex_task_name` canônico. O propósito deriva da identidade validada e session/turn/model/provider/usage permanecem indisponíveis; o fallback nunca substitui captura rica nem inventa modelo, effort, tokens ou custo.
|
|
10
|
+
- Em `model_orchestration.mode:auto`, selecione automaticamente apenas origens em `automatic_sources` (`spec`,`prd`); fixe modelo/effort no início de cada Run/Sub-Run distinta, herde nas calls internas e exija nova chamada para mudar. Task avulsa preserva seleção manual, sem inferir `default_model`.
|
|
11
|
+
- Somente ao avaliar escalada diagnóstica difícil para Astra, carregue `RULE-ASTRA-DIAGNOSTIC`: evidência obrigatória, `high`, quota persistente de três diagnósticos por Task e devolução para executor Luna/Terra/Sol. Não carregue essa expansão em consultas comuns.
|
|
12
|
+
- Todo PreparedPlan PRD/SPEC traz `model_signals` por Task; o framework persiste `model_profile`, `task-risk-v1` e motivos, usando `runtime_defaults`, `runtime`, política/defaults sem `standard` silencioso. Não infira fase/complexidade/transversalidade/ambiguidade/rework/custo/capacidade por contagem de arquivos; use sinais, fase/agente e capacidades. Cabeçalho e `model.selection.recorded` repetem a seleção enviada.
|
|
13
|
+
- Plano visível: `DEFINE:`, `PLAN:`, `EXECUTE:` ou `VERIFY:`, 3–4 passos (máximo 5); omita fase sem ação e combine trivialidades.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zaip-skill-external-integrations
|
|
3
|
+
description: Implement bounded third-party API and webhook adapters with safe credentials, retries, verification, and replay handling.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Integrate external systems
|
|
7
|
+
|
|
8
|
+
Use for outbound providers, inbound webhooks, or vendor protocol changes.
|
|
9
|
+
|
|
10
|
+
1. Establish the provider contract, data classification, auth method, timeout, rate limit, expected failures, and ownership boundary.
|
|
11
|
+
2. Resolve credentials only for an already authorized action through `$zaip-skill-local-credentials`; never expose their values in evidence.
|
|
12
|
+
3. Verify signatures before processing webhooks, use stable event identities for deduplication, and retain a bounded replay path.
|
|
13
|
+
4. Place provider behavior behind an adapter and use sanitized fixtures for success, timeout, invalid response, and duplicate event cases.
|
|
14
|
+
5. Do not enable production callbacks or mutate a provider account without explicit external authorization.
|
|
@@ -5,7 +5,11 @@ description: Implement accessible frontend experiences in apps/frontend and dash
|
|
|
5
5
|
|
|
6
6
|
# Entregar frontend
|
|
7
7
|
|
|
8
|
+
Para componentes de UI novos ou alterados, carregue também
|
|
9
|
+
`$zaip-skill-frontend-componentization`.
|
|
10
|
+
|
|
8
11
|
1. Confirmar `apps/frontend/**` ou dashboard React (`.agents/dashboard/apps/frontend/**`, `.agents/dashboard/modules/**/src/react/**`); nunca autoriza runtime, SQLite ou server.
|
|
9
12
|
2. Ler o contrato visual aplicável antes de alterar componentes e preservar acessibilidade, semântica e estados de carregamento/erro.
|
|
10
13
|
3. Aplicar [o contrato de prova observável](../zaip-skill-change/references/observable-evidence.md): definir cenário/expectativa por AC, executar a interação afetada e conferir seu efeito; teste, typecheck e build são proporcionais e não substituem comportamento observado.
|
|
11
14
|
4. Se houver impacto visual, obter e examinar screenshot real da versão carregada no estado pedido. No dashboard, preservar render determinístico e verificação do bundle servido. Indisponibilidade segue o fallback finito: mantém o AC visual pendente, não invalida prova técnica independente nem autoriza aprovação integral.
|
|
15
|
+
5. Para publicação, usar somente a branch de validação configurada e o ambiente próprio de validação do frontend. A promoção para produção segue o [contrato de ambientes e acessos](../zaip-skill-backend/references/deployment-environments.md); consultas Supabase usam exclusivamente READ-ONLY-BETA ou READ-ONLY-PROD configurados.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zaip-skill-frontend-componentization
|
|
3
|
+
description: Padronize UI e catálogo ao criar ou alterar componentes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Componentização frontend
|
|
7
|
+
|
|
8
|
+
Use ao criar, alterar, renomear ou remover componentes de UI em `apps/frontend`,
|
|
9
|
+
`apps/site`, dashboard React ou no catálogo de design. Não inicia migração dos
|
|
10
|
+
componentes antigos: aplique somente ao componente tocado.
|
|
11
|
+
|
|
12
|
+
1. Roteie a entrega: produto React/dashboard usa `$zaip-skill-frontend`; site
|
|
13
|
+
usa `$zaip-skill-website-readiness`; catálogo ou contrato central usa
|
|
14
|
+
`$zaip-skill-design-system` com Manu. Leia `RULE-DESIGN-SYSTEM-CENTRAL` e,
|
|
15
|
+
para dashboard, `RULE-DASHBOARD-UI-CONSISTENCY`.
|
|
16
|
+
2. Antes de editar, inventarie consumidores, exportações públicas, catálogo,
|
|
17
|
+
stories e componentes próximos. Reutilize ou componha o que existe antes de
|
|
18
|
+
criar primitive, e registre o impacto de renomear/remover.
|
|
19
|
+
3. Prefira variantes, `size`, slots e composição antes de duplicar. Classifique
|
|
20
|
+
o destino: a página só orquestra; componente local fica no domínio; UI
|
|
21
|
+
compartilhada só recebe contrato estável e consumidores reais. Não transforme
|
|
22
|
+
componente local em regra global nem crie primitives duplicadas.
|
|
23
|
+
4. Extraia para hooks apenas lógica compartilhada ou efeitos; acesso a dados fica
|
|
24
|
+
em services. Estado visual local pode permanecer no componente. Mudança apenas
|
|
25
|
+
em hook ou service não cria entrada visual própria, mas atualiza o exemplo se
|
|
26
|
+
o comportamento observável do componente mudou.
|
|
27
|
+
5. Para componente UI novo, alterado, renomeado ou removido, atualize a página
|
|
28
|
+
`Componentes` real em `.agents/design/apps/catalog/src/pages/ComponentsPage.tsx`
|
|
29
|
+
no mesmo Change. A página e a story devem consumir um espécime reutilizável e
|
|
30
|
+
os mesmos fixtures estáveis, renderizando o componente real pela fronteira
|
|
31
|
+
pública quando isso não acoplar produtos.
|
|
32
|
+
6. Quando Storybook existir, mantenha a story alinhada ao espécime; ela nunca
|
|
33
|
+
substitui `#/components`. Fixtures não usam API, autenticação ou tempo atual.
|
|
34
|
+
Em Astro ou entre produtos sem dependência válida, use um fallback nativo ou
|
|
35
|
+
adaptador renderizável sem forçar island React; revalide o adaptador a cada
|
|
36
|
+
mudança. Cubra variantes e estados aplicáveis: padrão, foco/teclado,
|
|
37
|
+
desabilitado, carregamento, vazio e erro, além de largura estreita relevante.
|
|
38
|
+
7. Em dashboard, inventarie e reutilize `@zaip-ai/dashboard-ui`; tabelas usam
|
|
39
|
+
`DataTable`, salvo Decision explícita. Não crie tabela ou primitive paralela.
|
|
40
|
+
8. Ao renomear ou remover, retire exports, imports, stories, catálogo e referências
|
|
41
|
+
obsoletas. Valide consumidores, acessibilidade e os exemplos renderizados.
|
|
42
|
+
|
|
43
|
+
O catálogo documenta a implementação existente; ele não exige migração global
|
|
44
|
+
nem importa automaticamente componentes de produtos distintos.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zaip-skill-frontend-data-flows
|
|
3
|
+
description: Build reliable React data flows for remote state, forms, errors, pagination, and concurrent user actions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Build frontend data flows
|
|
7
|
+
|
|
8
|
+
Use when React UI reads or mutates remote application state.
|
|
9
|
+
|
|
10
|
+
1. Map the user-visible loading, empty, success, validation, authorization, and failure states before wiring data.
|
|
11
|
+
2. Keep API services and request contracts outside presentation components; carry cancellation and request identity through concurrent transitions.
|
|
12
|
+
3. Prevent stale responses from replacing newer state and disable or serialize destructive duplicate actions where the contract requires it.
|
|
13
|
+
4. Preserve accessible feedback, focus behavior, and meaningful error recovery.
|
|
14
|
+
5. Test relevant state transitions against the actual API contract or a controlled contract fixture.
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: zaip-skill-general-operations
|
|
3
|
-
description:
|
|
3
|
+
description: Answer operational questions and deliver bounded documents, presentations, spreadsheets or processes; exclude specialist governance and external acts.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Operações proporcionais
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
- Responda consultas, explicações e resumos no formato pedido, usando fontes e incertezas explícitas, sem arquivo ou questionário obrigatório.
|
|
9
|
+
- Para entrega persistente, carregue [o fluxo de entrega](references/extended-workflow.md): resultado, público, fontes, formato, escopo e verificação proporcional.
|
|
10
|
+
- Domínios obrigatórios seguem o especialista; referência citada não muda o dono da entrega. Não invente dados ou aprovação.
|
|
11
|
+
- Ato externo exige autoridade vigente; prepare a minuta e indique pendências quando faltar autorização. Interaction read-only não cria Task/Change; entrega segue lifecycle e ACs. Engenharia só se aplica ao trabalho técnico.
|
|
12
|
+
|
|
13
|
+
Para documento, resumo salvo ou organização de contexto simples, delimitada e de baixo impacto, use o [perfil editorial `lite`](../zaip-skill-task/SKILL.md#assurance-proporcional) e selecione `--risk lite`. Não o use para código, configuração, instruções de agentes, dado sensível, migração, decisão crítica ou ato externo.
|