@zaip-ai/cli 2.2.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.
Files changed (420) hide show
  1. package/dist/services/adapters.d.ts +1 -1
  2. package/dist/services/adapters.d.ts.map +1 -1
  3. package/dist/services/adapters.js +23 -9
  4. package/dist/services/adapters.js.map +1 -1
  5. package/dist/services/agent-adapters.js +25 -9
  6. package/dist/services/agent-adapters.js.map +1 -1
  7. package/dist/services/agent-discovery.d.ts +27 -0
  8. package/dist/services/agent-discovery.d.ts.map +1 -0
  9. package/dist/services/agent-discovery.js +73 -0
  10. package/dist/services/agent-discovery.js.map +1 -0
  11. package/dist/services/codex-conversation-lifecycle-hook.d.ts.map +1 -1
  12. package/dist/services/codex-conversation-lifecycle-hook.js +153 -24
  13. package/dist/services/codex-conversation-lifecycle-hook.js.map +1 -1
  14. package/dist/services/codex-pre-tool-hook-template.d.ts.map +1 -1
  15. package/dist/services/codex-pre-tool-hook-template.js +146 -72
  16. package/dist/services/codex-pre-tool-hook-template.js.map +1 -1
  17. package/dist/services/codex-rules.d.ts +1 -1
  18. package/dist/services/codex-rules.d.ts.map +1 -1
  19. package/dist/services/codex-rules.js +3 -3
  20. package/dist/services/codex-subagent-hook-template.d.ts +1 -1
  21. package/dist/services/codex-subagent-hook-template.d.ts.map +1 -1
  22. package/dist/services/codex-subagent-hook-template.js +117 -66
  23. package/dist/services/codex-subagent-hook-template.js.map +1 -1
  24. package/dist/services/install-agents-template.d.ts.map +1 -1
  25. package/dist/services/install-agents-template.js +56 -6
  26. package/dist/services/install-agents-template.js.map +1 -1
  27. package/dist/services/logger.js +1 -1
  28. package/dist/services/logger.js.map +1 -1
  29. package/dist/services/logger.test.js +22 -1
  30. package/dist/services/logger.test.js.map +1 -1
  31. package/dist/services/runtime-template.test.js +129 -0
  32. package/dist/services/runtime-template.test.js.map +1 -1
  33. package/package.json +1 -1
  34. package/templates/.agents/.env.example +9 -3
  35. package/templates/.agents/README-ENG.md +30 -5
  36. package/templates/.agents/README.md +30 -7
  37. package/templates/.agents/architecture/software-architecture.md +1 -59
  38. package/templates/.agents/branding/brandbook.md +3 -0
  39. package/templates/.agents/config/agents/catalog.yaml +22 -10
  40. package/templates/.agents/config/agents/discovery.json +319 -0
  41. package/templates/.agents/config/clients/codex/agents/zaip-agent-backend.toml +2 -2
  42. package/templates/.agents/config/clients/codex/agents/zaip-agent-builder.toml +2 -2
  43. package/templates/.agents/config/clients/codex/agents/zaip-agent-cloud-engineer.toml +11 -8
  44. package/templates/.agents/config/clients/codex/agents/zaip-agent-designer.toml +2 -2
  45. package/templates/.agents/config/clients/codex/agents/zaip-agent-frontend.toml +2 -2
  46. package/templates/.agents/config/clients/codex/agents/zaip-agent-task-executor.toml +2 -2
  47. package/templates/.agents/config/clients/codex/agents/zaip-agent-website-developer.toml +2 -2
  48. package/templates/.agents/config/pricing/models.json +9 -5
  49. package/templates/.agents/config/project.yaml +12 -1
  50. package/templates/.agents/dashboard/.zaip-managed.json +375 -95
  51. package/templates/.agents/dashboard/apps/frontend/dist/assets/CostCalculationGuidePage-CGxeQak4.js +1 -0
  52. package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-DaSllaJp.js → DashboardHelpDialog-tzS7YxYB.js} +57 -33
  53. package/templates/.agents/dashboard/apps/frontend/dist/assets/PricingSettingsDialog-DEbCi1gP.js +1 -0
  54. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-1L7Qw-Gq.js +3 -0
  55. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-EInWr641.css +1 -0
  56. package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-t1Om0Abw.js +1 -0
  57. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-B6aZfo5f.js +68 -0
  58. package/templates/.agents/dashboard/apps/frontend/dist/assets/{icons-vendor-TPUT2IUt.js → icons-vendor-DiGC-dsJ.js} +1 -1
  59. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-DgTmNHN5.js +2 -0
  60. package/templates/.agents/dashboard/apps/frontend/dist/assets/{react-vendor-Ct48XHGL.js → react-vendor-kPO6yNed.js} +1 -1
  61. package/templates/.agents/dashboard/apps/frontend/dist/assets/rolldown-runtime-Bh1tDfsg.js +1 -0
  62. package/templates/.agents/dashboard/apps/frontend/dist/assets/traceability-DQpKX9c1.js +1 -0
  63. package/templates/.agents/dashboard/apps/frontend/dist/index.html +6 -6
  64. package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
  65. package/templates/.agents/dashboard/apps/frontend/src/App.tsx +3 -1264
  66. package/templates/.agents/dashboard/apps/frontend/src/AppDashboardContent.tsx +363 -0
  67. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.dom.test.ts +99 -0
  68. package/templates/.agents/dashboard/apps/frontend/src/ProjectSettingsPage.tsx +62 -6
  69. package/templates/.agents/dashboard/apps/frontend/src/ProjectStackEditor.tsx +3 -1
  70. package/templates/.agents/dashboard/apps/frontend/src/__tests__/app-composition-support.ts +7 -0
  71. package/templates/.agents/dashboard/apps/frontend/src/cost-period-refresh.test.ts +9 -7
  72. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api-settings.ts +151 -0
  73. package/templates/.agents/dashboard/apps/frontend/src/dashboard-api.ts +28 -153
  74. package/templates/.agents/dashboard/apps/frontend/src/dashboard-app-shell.tsx +33 -0
  75. package/templates/.agents/dashboard/apps/frontend/src/dashboard-cost-facts.ts +30 -0
  76. package/templates/.agents/dashboard/apps/frontend/src/dashboard-project-overview.ts +7 -1
  77. package/templates/.agents/dashboard/apps/frontend/src/dashboard-retry.ts +17 -0
  78. package/templates/.agents/dashboard/apps/frontend/src/dashboard-setup-route.ts +29 -0
  79. package/templates/.agents/dashboard/apps/frontend/src/dashboard-view-actions.ts +66 -0
  80. package/templates/.agents/dashboard/apps/frontend/src/operations-period-render.test.ts +3 -2
  81. package/templates/.agents/dashboard/apps/frontend/src/overview-status-page.test.ts +2 -2
  82. package/templates/.agents/dashboard/apps/frontend/src/project-installation-status.test.ts +48 -0
  83. package/templates/.agents/dashboard/apps/frontend/src/project-installation-status.ts +29 -0
  84. package/templates/.agents/dashboard/apps/frontend/src/project-settings-page.css +68 -0
  85. package/templates/.agents/dashboard/apps/frontend/src/project-settings.test.ts +2 -2
  86. package/templates/.agents/dashboard/apps/frontend/src/sao-paulo-day-rollover.test.ts +36 -0
  87. package/templates/.agents/dashboard/apps/frontend/src/sao-paulo-day-rollover.ts +30 -0
  88. package/templates/.agents/dashboard/apps/frontend/src/snapshot-banner-semantics.test.ts +2 -5
  89. package/templates/.agents/dashboard/apps/frontend/src/snapshot-coherence.test.ts +30 -19
  90. package/templates/.agents/dashboard/apps/frontend/src/use-app-effects.ts +9 -1
  91. package/templates/.agents/dashboard/apps/frontend/src/use-app-trace-task-pagination.ts +77 -0
  92. package/templates/.agents/dashboard/apps/frontend/src/use-app-work-board.ts +397 -0
  93. package/templates/.agents/dashboard/apps/frontend/src/use-dashboard-app-model.tsx +782 -0
  94. package/templates/.agents/dashboard/apps/frontend/src/use-snapshot-notice.tsx +49 -0
  95. package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
  96. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostDeveloperPanelSlot.tsx +16 -0
  97. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostGroupsTable.tsx +459 -0
  98. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.test.ts +27 -17
  99. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorPage.tsx +62 -186
  100. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostMonitorRunDialog.tsx +20 -0
  101. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables-hides-calls-that-have-no-collected.test.ts +80 -0
  102. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables-keeps-legacy-codex-identity-fields-blank.test.ts +455 -0
  103. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.test.ts +18 -525
  104. package/templates/.agents/dashboard/modules/cost-monitor/src/react/CostTables.tsx +32 -508
  105. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-export-sources.ts +74 -0
  106. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-page-actions.ts +19 -0
  107. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-monitor-page-selectors.ts +49 -0
  108. package/templates/.agents/dashboard/modules/cost-monitor/src/react/cost-table-formatters.ts +115 -0
  109. package/templates/.agents/dashboard/modules/cost-monitor/src/server/build-cost-monitor-projection.test-fixtures.ts +2 -0
  110. package/templates/.agents/dashboard/modules/operations/package.json +1 -1
  111. package/templates/.agents/dashboard/modules/operations/src/contracts.ts +4 -0
  112. package/templates/.agents/dashboard/modules/operations/src/react/EntityTableBadges.tsx +34 -0
  113. package/templates/.agents/dashboard/modules/operations/src/react/EntityTables.tsx +8 -38
  114. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview-keeps-structure-classes-mutually-exclusive.test.ts +243 -0
  115. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.test.ts +27 -275
  116. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverview.tsx +70 -247
  117. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverviewCharts.tsx +171 -0
  118. package/templates/.agents/dashboard/modules/operations/src/react/OperationsOverviewPanels.tsx +64 -0
  119. package/templates/.agents/dashboard/modules/operations/src/react/OperationsPage.tsx +4 -3
  120. package/templates/.agents/dashboard/modules/operations/src/react/PrdDocumentDialog.test.tsx +2 -1
  121. package/templates/.agents/dashboard/modules/operations/src/react/manual-work-priority.test.ts +2 -1
  122. package/templates/.agents/dashboard/modules/operations/src/react/operations-coverage-toast.test.ts +6 -2
  123. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview-period-filter.test.ts +6 -14
  124. package/templates/.agents/dashboard/modules/operations/src/react/operations-overview.status-cards.test.ts +3 -1
  125. package/templates/.agents/dashboard/modules/operations/src/react/operations-page-contract.ts +2 -0
  126. package/templates/.agents/dashboard/modules/operations/src/react/overview-metric-format.ts +32 -0
  127. package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
  128. package/templates/.agents/dashboard/packages/branding/package.json +1 -1
  129. package/templates/.agents/dashboard/packages/branding/src/index.ts +1 -1
  130. package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
  131. package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
  132. package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +1458 -1458
  133. package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +1425 -1425
  134. package/templates/.agents/dashboard/packages/local-runtime/package.json +2 -1
  135. package/templates/.agents/dashboard/packages/local-runtime/scripts/build-sqlite-runtime.mjs +7 -3
  136. package/templates/.agents/dashboard/packages/local-runtime/server.mjs +1458 -1459
  137. package/templates/.agents/dashboard/packages/local-runtime/src/active-codex-telemetry.ts +25 -0
  138. package/templates/.agents/dashboard/packages/local-runtime/src/agent-catalog-settings.test.ts +1 -1
  139. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.test.ts +53 -8
  140. package/templates/.agents/dashboard/packages/local-runtime/src/project-settings.ts +79 -24
  141. package/templates/.agents/dashboard/packages/local-runtime/src/projection-refresh-diagnostics.ts +35 -0
  142. package/templates/.agents/dashboard/packages/local-runtime/src/server-costs-routes.ts +168 -0
  143. package/templates/.agents/dashboard/packages/local-runtime/src/server-dual-reads-manifest-summaries-without-losing.test.ts +344 -0
  144. package/templates/.agents/dashboard/packages/local-runtime/src/server-http-contracts.ts +31 -0
  145. package/templates/.agents/dashboard/packages/local-runtime/src/server-operations-routes.ts +345 -0
  146. package/templates/.agents/dashboard/packages/local-runtime/src/server-read-projections.ts +461 -0
  147. package/templates/.agents/dashboard/packages/local-runtime/src/server-reconciliation-refresh.test.ts +78 -0
  148. package/templates/.agents/dashboard/packages/local-runtime/src/server-route-context.ts +13 -0
  149. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.test.ts +18 -0
  150. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot-synchronization.ts +19 -3
  151. package/templates/.agents/dashboard/packages/local-runtime/src/server-snapshot.test.ts +22 -21
  152. package/templates/.agents/dashboard/packages/local-runtime/src/server-sqlite-view-allowlist.test.ts +25 -0
  153. package/templates/.agents/dashboard/packages/local-runtime/src/server-trace-routes.ts +64 -0
  154. package/templates/.agents/dashboard/packages/local-runtime/src/server-work-reconciliation.test.ts +2 -30
  155. package/templates/.agents/dashboard/packages/local-runtime/src/server-work-reconciliation.ts +6 -23
  156. package/templates/.agents/dashboard/packages/local-runtime/src/server.test-fixtures.ts +1 -1
  157. package/templates/.agents/dashboard/packages/local-runtime/src/server.test.ts +2 -330
  158. package/templates/.agents/dashboard/packages/local-runtime/src/server.ts +73 -1060
  159. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-first-fold.ts +78 -0
  160. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-projections.ts +561 -0
  161. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-runs.ts +600 -0
  162. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-metric-contract.test.ts +1 -1
  163. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-agent-dimension.ts +269 -0
  164. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-context.ts +32 -0
  165. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-entity-group.ts +244 -0
  166. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-filtered-dimension.ts +292 -0
  167. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-financial.ts +547 -0
  168. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-model-dimension.ts +360 -0
  169. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-provider-dimension.ts +169 -0
  170. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-summary.ts +475 -0
  171. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-temporal-dimension.ts +132 -0
  172. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-timing.ts +299 -0
  173. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-view-page.ts +692 -0
  174. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-counts-every-root-execution-day-returns.test.ts +739 -0
  175. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-does-not-convert-delayed-historical-finalizer.test.ts +706 -0
  176. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-filesystem.ts +748 -0
  177. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-first-fold-types.ts +1 -1
  178. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-keeps-orphan-telemetry-out-kanban-without.test.ts +710 -0
  179. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-marks-token-cost-telemetry-unavailable-when.test.ts +618 -0
  180. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-rebuild.ts +755 -0
  181. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-rebuilds-disposable-snapshot-serves-zaip-records.test.ts +276 -0
  182. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-schema.ts +193 -0
  183. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-types.ts +123 -0
  184. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +1 -2805
  185. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.ts +17 -6930
  186. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-base-views.ts +385 -0
  187. package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-dashboard-views.ts +412 -0
  188. package/templates/.agents/dashboard/packages/local-runtime/src/work-priority-contract.test.ts +4 -3
  189. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-build.mjs +195 -0
  190. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-lifecycle.test.mjs +2 -7
  191. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-logging.mjs +35 -0
  192. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-navigation.mjs +114 -0
  193. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard-paths.mjs +90 -0
  194. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.mjs +89 -418
  195. package/templates/.agents/dashboard/packages/local-runtime/start-dashboard.test.mjs +22 -12
  196. package/templates/.agents/dashboard/packages/ui/package.json +1 -1
  197. package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
  198. package/templates/.agents/dashboard/tests/e2e/playwright.config.ts +4 -1
  199. package/templates/.agents/design/.zaip-managed.json +5 -5
  200. package/templates/.agents/design/DESIGN.md +2 -186
  201. package/templates/.agents/design/README.md +12 -2
  202. package/templates/.agents/design/apps/catalog/package.json +1 -1
  203. package/templates/.agents/design/packages/local-runtime/package.json +1 -1
  204. package/templates/.agents/growth/strategy.md +3 -0
  205. package/templates/.agents/marketing/strategy.md +3 -0
  206. package/templates/.agents/requirements/autonomous-assurance.md +2 -1
  207. package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
  208. package/templates/.agents/requirements/comparative-audit.md +1 -1
  209. package/templates/.agents/requirements/context-engine.md +1 -1
  210. package/templates/.agents/requirements/cost-observability.md +1 -1
  211. package/templates/.agents/requirements/dashboard-launch.md +1 -1
  212. package/templates/.agents/requirements/data-export.md +1 -1
  213. package/templates/.agents/requirements/design-system.md +13 -4
  214. package/templates/.agents/requirements/execution-engine.md +1 -1
  215. package/templates/.agents/requirements/kanban-dashboard.md +1 -1
  216. package/templates/.agents/requirements/model-orchestration.md +1 -1
  217. package/templates/.agents/requirements/public-distribution.md +4 -2
  218. package/templates/.agents/requirements/software-architecture.md +1 -1
  219. package/templates/.agents/requirements/strategic-improvements.md +1 -1
  220. package/templates/.agents/requirements/work-lifecycle.md +3 -3
  221. package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
  222. package/templates/.agents/rules/architecture.md +2 -0
  223. package/templates/.agents/rules/astra-diagnostic.md +1 -1
  224. package/templates/.agents/rules/autonomy-decision.md +3 -1
  225. package/templates/.agents/rules/cloud-hostinger-autonomy.md +2 -0
  226. package/templates/.agents/rules/context.md +2 -1
  227. package/templates/.agents/rules/core.md +3 -3
  228. package/templates/.agents/rules/design-system-central-contract.md +17 -0
  229. package/templates/.agents/rules/evolution.md +3 -1
  230. package/templates/.agents/rules/frontend-lite.md +3 -1
  231. package/templates/.agents/rules/local-sqlite-storage.md +2 -2
  232. package/templates/.agents/rules/meta-mcp.md +3 -1
  233. package/templates/.agents/rules/model-orchestration.md +1 -1
  234. package/templates/.agents/rules/run-lifecycle-closure.md +6 -4
  235. package/templates/.agents/rules/security.md +3 -1
  236. package/templates/.agents/rules/specialist-routing.md +3 -1
  237. package/templates/.agents/rules/text-writing-utf8.md +1 -1
  238. package/templates/.agents/rules/workflow.md +7 -5
  239. package/templates/.agents/runtime/VERSION +1 -1
  240. package/templates/.agents/runtime/bin/zaip.mjs +519 -247
  241. package/templates/.agents/runtime/checksums.sha256 +6 -6
  242. package/templates/.agents/runtime/manifest.json +1 -1
  243. package/templates/.agents/runtime/pnpm-lock.sha256 +1 -1
  244. package/templates/.agents/runtime/provenance.json +5 -5
  245. package/templates/.agents/runtime/sbom.cdx.json +1 -1
  246. package/templates/.agents/sales/playbook.md +3 -0
  247. package/templates/.agents/skills/zaip-aios/SKILL.md +5 -3
  248. package/templates/.agents/skills/zaip-skill-adapt-stack/SKILL.md +1 -0
  249. package/templates/.agents/skills/zaip-skill-api-contracts/SKILL.md +14 -0
  250. package/templates/.agents/skills/zaip-skill-api-contracts/agents/openai.yaml +4 -0
  251. package/templates/.agents/skills/zaip-skill-application-observability/SKILL.md +15 -0
  252. package/templates/.agents/skills/zaip-skill-application-observability/agents/openai.yaml +4 -0
  253. package/templates/.agents/skills/zaip-skill-application-observability/references/signal-design.md +3 -0
  254. package/templates/.agents/skills/zaip-skill-application-readiness/SKILL.md +15 -0
  255. package/templates/.agents/skills/zaip-skill-application-readiness/agents/openai.yaml +4 -0
  256. package/templates/.agents/skills/zaip-skill-application-readiness/references/evidence-matrix.md +3 -0
  257. package/templates/.agents/skills/zaip-skill-architecture-design/SKILL.md +14 -0
  258. package/templates/.agents/skills/zaip-skill-architecture-design/agents/openai.yaml +4 -0
  259. package/templates/.agents/skills/zaip-skill-async-jobs/SKILL.md +14 -0
  260. package/templates/.agents/skills/zaip-skill-async-jobs/agents/openai.yaml +4 -0
  261. package/templates/.agents/skills/zaip-skill-auth-tenancy/SKILL.md +15 -0
  262. package/templates/.agents/skills/zaip-skill-auth-tenancy/agents/openai.yaml +4 -0
  263. package/templates/.agents/skills/zaip-skill-auth-tenancy/references/data-access-paths.md +9 -0
  264. package/templates/.agents/skills/zaip-skill-auth-tenancy/references/worker-scenario.md +5 -0
  265. package/templates/.agents/skills/zaip-skill-auth-tenancy/scripts/worker-contract.test.mjs +27 -0
  266. package/templates/.agents/skills/zaip-skill-author-skills/SKILL.md +2 -0
  267. package/templates/.agents/skills/zaip-skill-author-skills/references/engineering-skill-index.md +9 -0
  268. package/templates/.agents/skills/zaip-skill-author-skills/scripts/audit-skill-catalog.mjs +5 -3
  269. package/templates/.agents/skills/zaip-skill-author-skills/scripts/author-skill-scripts.test.mjs +27 -0
  270. package/templates/.agents/skills/zaip-skill-backend/SKILL.md +4 -0
  271. package/templates/.agents/skills/zaip-skill-backend/references/deployment-environments.md +75 -0
  272. package/templates/.agents/skills/zaip-skill-backend/references/supabase-migration-contract.md +23 -0
  273. package/templates/.agents/skills/zaip-skill-brand-governance/SKILL.md +2 -0
  274. package/templates/.agents/skills/zaip-skill-cache-strategy/SKILL.md +14 -0
  275. package/templates/.agents/skills/zaip-skill-cache-strategy/agents/openai.yaml +4 -0
  276. package/templates/.agents/skills/zaip-skill-change/SKILL.md +1 -1
  277. package/templates/.agents/skills/zaip-skill-cloud-engineering/SKILL.md +7 -0
  278. package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/SKILL.md +37 -0
  279. package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/agents/openai.yaml +6 -0
  280. package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/references/workers-static-assets.md +26 -0
  281. package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/references/workflow-templates.md +71 -0
  282. package/templates/.agents/skills/zaip-skill-cloudflare-github-deploy/scripts/cloudflare-github-deploy-contract.test.mjs +77 -0
  283. package/templates/.agents/skills/zaip-skill-config/SKILL.md +21 -11
  284. package/templates/.agents/skills/zaip-skill-config/agents/openai.yaml +2 -2
  285. package/templates/.agents/skills/zaip-skill-container-runtime/SKILL.md +14 -0
  286. package/templates/.agents/skills/zaip-skill-container-runtime/agents/openai.yaml +4 -0
  287. package/templates/.agents/skills/zaip-skill-context/SKILL.md +6 -1
  288. package/templates/.agents/skills/zaip-skill-context/references/prd-spec-task-handoff.md +10 -0
  289. package/templates/.agents/skills/zaip-skill-context/references/rule-selection.md +20 -0
  290. package/templates/.agents/skills/zaip-skill-cqrs/SKILL.md +1 -0
  291. package/templates/.agents/skills/zaip-skill-cybersecurity/SKILL.md +18 -0
  292. package/templates/.agents/skills/zaip-skill-cybersecurity/agents/openai.yaml +4 -0
  293. package/templates/.agents/skills/zaip-skill-cybersecurity/references/audit-contract.md +94 -0
  294. package/templates/.agents/skills/zaip-skill-cybersecurity/scripts/score-audit.mjs +185 -0
  295. package/templates/.agents/skills/zaip-skill-cybersecurity/scripts/score-audit.test.mjs +101 -0
  296. package/templates/.agents/skills/zaip-skill-data-modeling/SKILL.md +14 -0
  297. package/templates/.agents/skills/zaip-skill-data-modeling/agents/openai.yaml +4 -0
  298. package/templates/.agents/skills/zaip-skill-database-migrations/SKILL.md +20 -0
  299. package/templates/.agents/skills/zaip-skill-database-migrations/agents/openai.yaml +4 -0
  300. package/templates/.agents/skills/zaip-skill-database-migrations/references/manual-mode.md +15 -0
  301. package/templates/.agents/skills/zaip-skill-database-migrations/references/promotion-example.md +5 -0
  302. package/templates/.agents/skills/zaip-skill-database-migrations/scripts/export-manual-sql.mjs +145 -0
  303. package/templates/.agents/skills/zaip-skill-database-migrations/scripts/export-manual-sql.test.mjs +178 -0
  304. package/templates/.agents/skills/zaip-skill-dependency-upgrade/SKILL.md +14 -0
  305. package/templates/.agents/skills/zaip-skill-dependency-upgrade/agents/openai.yaml +4 -0
  306. package/templates/.agents/skills/zaip-skill-deployment-pipeline/SKILL.md +15 -0
  307. package/templates/.agents/skills/zaip-skill-deployment-pipeline/agents/openai.yaml +4 -0
  308. package/templates/.agents/skills/zaip-skill-deployment-pipeline/references/runtime-shapes.md +3 -0
  309. package/templates/.agents/skills/zaip-skill-design-system/SKILL.md +20 -9
  310. package/templates/.agents/skills/zaip-skill-dev-environment/SKILL.md +14 -0
  311. package/templates/.agents/skills/zaip-skill-dev-environment/agents/openai.yaml +4 -0
  312. package/templates/.agents/skills/zaip-skill-dev-environment/references/inventory-contract.md +7 -0
  313. package/templates/.agents/skills/zaip-skill-dev-environment/scripts/inventory.mjs +77 -0
  314. package/templates/.agents/skills/zaip-skill-disaster-recovery/SKILL.md +15 -0
  315. package/templates/.agents/skills/zaip-skill-disaster-recovery/agents/openai.yaml +4 -0
  316. package/templates/.agents/skills/zaip-skill-disaster-recovery/references/recovery-scope.md +3 -0
  317. package/templates/.agents/skills/zaip-skill-execution/SKILL.md +3 -3
  318. package/templates/.agents/skills/zaip-skill-execution/references/correction-cycle.md +7 -0
  319. package/templates/.agents/skills/zaip-skill-execution/references/runtime-governance.md +1 -5
  320. package/templates/.agents/skills/zaip-skill-external-integrations/SKILL.md +14 -0
  321. package/templates/.agents/skills/zaip-skill-external-integrations/agents/openai.yaml +4 -0
  322. package/templates/.agents/skills/zaip-skill-frontend/SKILL.md +4 -0
  323. package/templates/.agents/skills/zaip-skill-frontend-componentization/SKILL.md +44 -0
  324. package/templates/.agents/skills/zaip-skill-frontend-componentization/agents/openai.yaml +4 -0
  325. package/templates/.agents/skills/zaip-skill-frontend-data-flows/SKILL.md +14 -0
  326. package/templates/.agents/skills/zaip-skill-frontend-data-flows/agents/openai.yaml +4 -0
  327. package/templates/.agents/skills/zaip-skill-general-operations/SKILL.md +2 -0
  328. package/templates/.agents/skills/zaip-skill-github-actions-setup/SKILL.md +36 -0
  329. package/templates/.agents/skills/zaip-skill-github-actions-setup/agents/openai.yaml +4 -0
  330. package/templates/.agents/skills/zaip-skill-github-actions-setup/references/cloudflare-pages.md +33 -0
  331. package/templates/.agents/skills/zaip-skill-github-actions-setup/references/github.md +63 -0
  332. package/templates/.agents/skills/zaip-skill-github-actions-setup/references/hostinger-vps.md +55 -0
  333. package/templates/.agents/skills/zaip-skill-github-actions-setup/references/npm.md +30 -0
  334. package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/check-skill.mjs +55 -0
  335. package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/verify-cloudflare.mjs +61 -0
  336. package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/verify-cloudflare.test.mjs +128 -0
  337. package/templates/.agents/skills/zaip-skill-github-actions-setup/scripts/verify-ssh.integration.test.mjs +106 -0
  338. package/templates/.agents/skills/zaip-skill-github-deploy/SKILL.md +43 -76
  339. package/templates/.agents/skills/zaip-skill-github-deploy/references/deployment-workflow.md +131 -0
  340. package/templates/.agents/skills/zaip-skill-github-deploy/references/github-release-workflow-template.md +31 -0
  341. package/templates/.agents/skills/zaip-skill-github-deploy/references/release-gate-matrix.md +24 -0
  342. package/templates/.agents/skills/zaip-skill-github-deploy/references/release-identity.md +44 -0
  343. package/templates/.agents/skills/zaip-skill-github-deploy/references/release-notes.md +134 -0
  344. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.mjs +389 -0
  345. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/consumer-release-preparation.test.mjs +134 -0
  346. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-deploy-contract.test.mjs +25 -2
  347. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-readiness-api.test.mjs +134 -0
  348. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-readiness.mjs +98 -0
  349. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/github-readiness.test.mjs +25 -0
  350. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/install-github-readiness-workflow.mjs +159 -0
  351. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/install-github-readiness-workflow.test.mjs +160 -0
  352. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.mjs +149 -12
  353. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/preflight.test.mjs +64 -5
  354. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/release-notes-coverage.test.mjs +126 -0
  355. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/resolve-release-identity.mjs +78 -0
  356. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/resolve-release-identity.test.mjs +51 -0
  357. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/validate-release-notes.mjs +184 -0
  358. package/templates/.agents/skills/zaip-skill-github-deploy/scripts/validate-release-notes.test.mjs +109 -0
  359. package/templates/.agents/skills/zaip-skill-growth-strategy-revops/SKILL.md +2 -0
  360. package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/SKILL.md +18 -10
  361. package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/agents/openai.yaml +3 -4
  362. package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/references/aws-cli-terraform.md +62 -0
  363. package/templates/.agents/skills/zaip-skill-hostinger-cloudflare-terraform/references/guia-iniciante-hostinger-vps.md +183 -0
  364. package/templates/.agents/skills/zaip-skill-marketing/SKILL.md +2 -0
  365. package/templates/.agents/skills/zaip-skill-module-scaffold/SKILL.md +14 -0
  366. package/templates/.agents/skills/zaip-skill-module-scaffold/agents/openai.yaml +4 -0
  367. package/templates/.agents/skills/zaip-skill-module-scaffold/references/scaffold-contract.md +9 -0
  368. package/templates/.agents/skills/zaip-skill-module-scaffold/scripts/helpers.test.mjs +121 -0
  369. package/templates/.agents/skills/zaip-skill-module-scaffold/scripts/scaffold.mjs +169 -0
  370. package/templates/.agents/skills/zaip-skill-move-prd/SKILL.md +1 -1
  371. package/templates/.agents/skills/zaip-skill-move-spec/SKILL.md +1 -1
  372. package/templates/.agents/skills/zaip-skill-performance-engineering/SKILL.md +14 -0
  373. package/templates/.agents/skills/zaip-skill-performance-engineering/agents/openai.yaml +4 -0
  374. package/templates/.agents/skills/zaip-skill-prd/SKILL.md +1 -1
  375. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-local-telemetry.mjs +1 -0
  376. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-lib.mjs +26 -9
  377. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-lib.test.mjs +39 -13
  378. package/templates/.agents/skills/zaip-skill-reconcile-telemetry/scripts/reconcile-telemetry-remeasurement.mjs +1 -0
  379. package/templates/.agents/skills/zaip-skill-refactor-landing-page/SKILL.md +66 -0
  380. package/templates/.agents/skills/zaip-skill-refactor-landing-page/agents/openai.yaml +4 -0
  381. package/templates/.agents/skills/zaip-skill-refactor-landing-page/references/behavioral-dry-run.md +23 -0
  382. package/templates/.agents/skills/zaip-skill-release-qualification/SKILL.md +40 -1
  383. package/templates/.agents/skills/zaip-skill-release-qualification/references/local-preparation.md +98 -0
  384. package/templates/.agents/skills/zaip-skill-review/SKILL.md +1 -0
  385. package/templates/.agents/skills/zaip-skill-rules/SKILL.md +3 -3
  386. package/templates/.agents/skills/zaip-skill-sales-methodology/SKILL.md +2 -0
  387. package/templates/.agents/skills/zaip-skill-setup/SKILL.md +19 -21
  388. package/templates/.agents/skills/zaip-skill-setup/agents/openai.yaml +2 -2
  389. package/templates/.agents/skills/zaip-skill-spec/SKILL.md +3 -2
  390. package/templates/.agents/skills/zaip-skill-storage-uploads/SKILL.md +14 -0
  391. package/templates/.agents/skills/zaip-skill-storage-uploads/agents/openai.yaml +4 -0
  392. package/templates/.agents/skills/zaip-skill-systematic-debugging/SKILL.md +14 -0
  393. package/templates/.agents/skills/zaip-skill-systematic-debugging/agents/openai.yaml +4 -0
  394. package/templates/.agents/skills/zaip-skill-task/SKILL.md +16 -7
  395. package/templates/.agents/skills/zaip-skill-task/references/commit-policy.md +25 -0
  396. package/templates/.agents/skills/zaip-skill-test-data/SKILL.md +14 -0
  397. package/templates/.agents/skills/zaip-skill-test-data/agents/openai.yaml +4 -0
  398. package/templates/.agents/skills/zaip-skill-test-data/scripts/generate.mjs +72 -0
  399. package/templates/.agents/skills/zaip-skill-testing-strategy/SKILL.md +15 -0
  400. package/templates/.agents/skills/zaip-skill-testing-strategy/agents/openai.yaml +4 -0
  401. package/templates/.agents/skills/zaip-skill-testing-strategy/references/example-map.md +3 -0
  402. package/templates/.agents/skills/zaip-skill-website-readiness/SKILL.md +8 -0
  403. package/templates/.agents/zaip-aios/VERSION +1 -1
  404. package/templates/.agents/zaip-aios/guides/10-seguranca.md +2 -1
  405. package/templates/.agents/zaip-aios/guides/20-instalacao-detalhada.md +5 -3
  406. package/templates/scripts/validate-cloud-hostinger-contract.mjs +34 -0
  407. package/templates/template-manifest.json +955 -211
  408. package/templates/.agents/branding/.gitkeep +0 -0
  409. package/templates/.agents/dashboard/apps/frontend/dist/assets/CostCalculationGuidePage-snUCQYTC.js +0 -1
  410. package/templates/.agents/dashboard/apps/frontend/dist/assets/PricingSettingsDialog-BPtVUGgs.js +0 -1
  411. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-3Awyaovx.js +0 -3
  412. package/templates/.agents/dashboard/apps/frontend/dist/assets/ProjectSettingsPage-GgzpZ_PY.css +0 -1
  413. package/templates/.agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-BCvZFMEf.js +0 -1
  414. package/templates/.agents/dashboard/apps/frontend/dist/assets/cost-monitor-DbaLbU2q.js +0 -68
  415. package/templates/.agents/dashboard/apps/frontend/dist/assets/index-_MEktQNM.js +0 -2
  416. package/templates/.agents/dashboard/apps/frontend/dist/assets/rolldown-runtime-D9-fqq9M.js +0 -1
  417. package/templates/.agents/dashboard/apps/frontend/dist/assets/traceability-BDe4_Ubl.js +0 -1
  418. package/templates/.agents/growth/.gitkeep +0 -0
  419. package/templates/.agents/marketing/.gitkeep +0 -0
  420. package/templates/.agents/sales/.gitkeep +0 -0
@@ -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,4 @@
1
+ interface:
2
+ display_name: "Dependency Upgrade"
3
+ short_description: "Plan and verify compatible dependency upgrades"
4
+ default_prompt: "Use $zaip-skill-dependency-upgrade to safely upgrade this dependency or runtime."
@@ -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,4 @@
1
+ interface:
2
+ display_name: "Deployment Pipeline"
3
+ short_description: "Design verifiable application delivery pipelines"
4
+ default_prompt: "Use $zaip-skill-deployment-pipeline to design this application delivery pipeline."
@@ -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. Manu owns
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, catalog specimens, and consuming pages.
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. Implement or update the canonical specimen and both catalog presentations when the
29
- rule is user-visible.
30
- 6. Check representative consumers for regressions; coordinate with Doug or Jonny when
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
- 7. Verify design artifacts and rendered catalog pages before recording evidence.
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
- - The `design-system` page exposes foundations and tokens.
41
- - The `componentes` page exposes reusable component specimens and states.
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,4 @@
1
+ interface:
2
+ display_name: "Development Environment"
3
+ short_description: "Inspect safe local prerequisites and setup"
4
+ default_prompt: "Use $zaip-skill-dev-environment to inventory this checkout and identify local setup prerequisites."
@@ -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,4 @@
1
+ interface:
2
+ display_name: "Disaster Recovery"
3
+ short_description: "Plan and verify recoverable service restoration"
4
+ default_prompt: "Use $zaip-skill-disaster-recovery to plan and test recovery for this application."
@@ -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,6 +1,6 @@
1
1
  ---
2
2
  name: zaip-skill-execution
3
- description: Execute prepared ZAIP work explicitly, materialize its DAG, and close Runs with evidence.
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
@@ -15,10 +15,10 @@ Use esta skill somente quando o usuário pedir execução. `prepare` não autori
15
15
  4. Execute a ordem topológica. Paralelize apenas Tasks independentes cujos arquivos, módulos, migrations, ambientes e recursos não conflitem.
16
16
  5. Antes de integrar agentes paralelos, compare diffs, testes e efeitos; reconcilie o resultado no workspace canônico.
17
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.
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. Commit funcional sem Task só é permitido na exceção explícita de deploy particionado e usa `[CODEX] <título funcional>` sem `ZAIP-Task`.
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).
19
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.
20
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.
21
- 10. Em falha operacional, use retry limitado; em falha lógica, crie repair/rework explícito. Nunca esconda uma tentativa.
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.
22
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.
23
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.
24
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.
@@ -2,11 +2,7 @@
2
2
 
3
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
4
 
5
- - Leia `.agents/config/project.yaml`, esta Rule e Rules aplicáveis. Preserve domínio independente de framework, infraestrutura e fornecedor; respeite escopo/autoridade e peça direção antes de ação destrutiva, irreversível ou externa.
6
- - Pensar/explorar PRD/SPEC é `conversation`; criar persiste o pacote `draft` e PreparedPlan com telemetria, e `ready|execute` materializa a DAG. PRD/SPEC são opcionais; a entrada pode ser Task, SPEC ou PRD. PRD cancelado é imutável: crie sucessor `rework`.
7
- - Classifique/capture o turno: pergunta, análise pontual ou baixa confiança cria só Run `conversation`; continuação/refinamento/rework reutiliza foco; edição persistente, resultado independente ou pedido explícito cria Task de título semântico (nunca copiado/truncado do prompt). Pedido explícito no turno de `deploy|push|publicar|publicação GitHub` seleciona `$zaip-skill-github-deploy`, é Git-only e não materializa lifecycle; autoriza reconciliação limitada e commits funcionais apenas do diff pretendido/evidenciado, com pathspecs explícitos e sem inventar IDs ausentes. A seleção não autoriza outro provider, `git add -A`, force, segredos ou worktrees alheios.
8
- - Criar/refinar PRD/SPEC `draft` persiste macro/PreparedPlan em Execution `interaction`, sem Task, Change ou delivery, vinculada à Run/`creation_run_id`; agregue telemetria apenas observada/reconciliada. Fora disso, antes de mutação persistente no repositório/PC materialize Task, Execution, Change e Run raiz; pedido avulso entra em Execução. Só Git/deploy sem produto, manifests/telemetria gerados, `.git`, cache, build, teste e temporário são isentos; código, documentação e configuração nunca são.
9
- - Limite: cinco perguntas/turno, três turnos; registre decisões delegáveis. Autoridade, lei e segurança não delegáveis bloqueiam. Antes de bloquear ação já autorizada por credencial, aplique `$zaip-skill-local-credentials`: busque dotenv somente no projeto, trate-o como dados, selecione uma chave pertinente e injete-a apenas no subprocesso mínimo sem expor valores. Credencial ausente, ambígua ou comprovadamente inutilizável bloqueia; razão sanitizada. Resolva verbos por alvo/status em `RULE-WORKFLOW`: `execute` usa o menor grão, `implemente` sem alvo conversa, `desenvolva|melhore|aprimore` planeja/rework. Nunca invente tokens, custo, decisão, Evidence, teste ou resultado.
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.
10
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.
11
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.
12
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.
@@ -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.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "External Integrations"
3
+ short_description: "Build safe provider APIs and webhooks"
4
+ default_prompt: "Use $zaip-skill-external-integrations to implement this provider adapter or webhook."
@@ -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,4 @@
1
+ interface:
2
+ display_name: "Frontend Componentization"
3
+ short_description: "Standardize UI components and catalog"
4
+ default_prompt: "Use $zaip-skill-frontend-componentization to create or change UI components with coherent catalog examples."
@@ -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.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Frontend Data Flows"
3
+ short_description: "Build reliable React remote state flows"
4
+ default_prompt: "Use $zaip-skill-frontend-data-flows to implement this React data flow."
@@ -9,3 +9,5 @@ description: Answer operational questions and deliver bounded documents, present
9
9
  - Para entrega persistente, carregue [o fluxo de entrega](references/extended-workflow.md): resultado, público, fontes, formato, escopo e verificação proporcional.
10
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
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.