sinapse-ai 1.7.0 → 1.9.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 (368) hide show
  1. package/.claude/CLAUDE.md +5 -11
  2. package/.claude/hooks/README.md +14 -1
  3. package/.claude/hooks/code-intel-pretool.cjs +115 -0
  4. package/.claude/hooks/enforce-delegation.cjs +31 -3
  5. package/.claude/hooks/enforce-framework-boundary.cjs +324 -0
  6. package/.claude/hooks/enforce-permission-mode.cjs +249 -0
  7. package/.claude/hooks/mind-clone-governance.py +212 -212
  8. package/.claude/hooks/read-protection.py +152 -152
  9. package/.claude/hooks/secret-scanning.cjs +34 -43
  10. package/.claude/hooks/slug-validation.py +175 -175
  11. package/.claude/hooks/sql-governance.py +183 -183
  12. package/.claude/hooks/synapse-engine.cjs +23 -23
  13. package/.claude/hooks/telemetry-post-tool.cjs +128 -0
  14. package/.claude/hooks/telemetry-stop.cjs +132 -0
  15. package/.claude/hooks/verify-packages.cjs +9 -2
  16. package/.claude/rules/documentation-first.md +1 -1
  17. package/.claude/rules/hook-governance.md +3 -1
  18. package/.claude/rules/project-intelligence.md +1 -1
  19. package/.codex/agents/analyst.md +4 -371
  20. package/.codex/agents/animations-orqx.md +4 -57
  21. package/.codex/agents/architect.md +4 -560
  22. package/.codex/agents/brand-orqx.md +4 -95
  23. package/.codex/agents/claude-mastery-chief.md +4 -0
  24. package/.codex/agents/cloning-orqx.md +4 -70
  25. package/.codex/agents/commercial-orqx.md +4 -67
  26. package/.codex/agents/config-engineer.md +2 -2
  27. package/.codex/agents/content-orqx.md +4 -77
  28. package/.codex/agents/copy-orqx.md +4 -65
  29. package/.codex/agents/cost-optimizer.md +4 -0
  30. package/.codex/agents/council-orqx.md +4 -68
  31. package/.codex/agents/courses-orqx.md +4 -64
  32. package/.codex/agents/cro-persuasion.md +4 -0
  33. package/.codex/agents/cyber-orqx.md +4 -67
  34. package/.codex/agents/data-engineer.md +4 -542
  35. package/.codex/agents/design-orqx.md +4 -65
  36. package/.codex/agents/design-system.md +4 -210
  37. package/.codex/agents/developer.md +4 -666
  38. package/.codex/agents/devops.md +4 -668
  39. package/.codex/agents/finance-orqx.md +4 -57
  40. package/.codex/agents/fiscal-compliance-br.md +4 -0
  41. package/.codex/agents/forecast-strategist.md +4 -0
  42. package/.codex/agents/growth-orqx.md +4 -75
  43. package/.codex/agents/hooks-architect.md +2 -2
  44. package/.codex/agents/mcp-integrator.md +2 -2
  45. package/.codex/agents/paidmedia-orqx.md +4 -67
  46. package/.codex/agents/platform-aesthetic-director.md +4 -0
  47. package/.codex/agents/premium-packaging-strategist.md +4 -0
  48. package/.codex/agents/product-lead.md +4 -371
  49. package/.codex/agents/product-orqx.md +4 -57
  50. package/.codex/agents/product-surface-director.md +4 -0
  51. package/.codex/agents/project-integrator.md +2 -2
  52. package/.codex/agents/project-lead.md +4 -414
  53. package/.codex/agents/quality-gate.md +4 -547
  54. package/.codex/agents/research-orqx.md +4 -67
  55. package/.codex/agents/roadmap-sentinel.md +2 -2
  56. package/.codex/agents/skill-craftsman.md +2 -2
  57. package/.codex/agents/snps-orqx.md +4 -684
  58. package/.codex/agents/sop-extractor.md +4 -61
  59. package/.codex/agents/sprint-lead.md +4 -324
  60. package/.codex/agents/squad-creator.md +4 -402
  61. package/.codex/agents/storytelling-orqx.md +4 -65
  62. package/.codex/agents/swarm-orqx.md +4 -64
  63. package/.codex/agents/ux-design-expert.md +4 -532
  64. package/.codex/agents/ux-designer.md +4 -124
  65. package/.codex/command-registry.json +9 -9
  66. package/.codex/delegation-matrix.json +373 -838
  67. package/.codex/delegation-parity.json +657 -0
  68. package/.codex/handoff-packet.parity.schema.json +148 -0
  69. package/.codex/handoff-packet.template.json +26 -0
  70. package/.codex/instructions.md +6 -6
  71. package/.codex/scripts/resolve-codex-agent.js +482 -0
  72. package/.codex/scripts/resolve-codex-command.js +75 -12
  73. package/.codex/scripts/resolve-codex-delegation.js +131 -92
  74. package/.codex/skills/sinapse-claude/SKILL.md +3 -3
  75. package/.codex/skills/sinapse-po/SKILL.md +1 -1
  76. package/.codex/tasks/resolve-sinapse-conflict.md +1 -1
  77. package/.sinapse-ai/cli/commands/health/index.js +24 -0
  78. package/.sinapse-ai/constitution.md +5 -5
  79. package/.sinapse-ai/core/README.md +11 -0
  80. package/.sinapse-ai/core/config/config-loader.js +19 -0
  81. package/.sinapse-ai/core/doctor/checks/git-hooks.js +97 -19
  82. package/.sinapse-ai/core/events/dashboard-emitter.js +30 -9
  83. package/.sinapse-ai/core/execution/build-orchestrator.js +4 -1
  84. package/.sinapse-ai/core/execution/parallel-executor.js +7 -1
  85. package/.sinapse-ai/core/execution/subagent-dispatcher.js +126 -28
  86. package/.sinapse-ai/core/execution/wave-executor.js +4 -1
  87. package/.sinapse-ai/core/grounding/README.md +71 -11
  88. package/.sinapse-ai/core/health-check/checks/project/framework-config.js +38 -2
  89. package/.sinapse-ai/core/health-check/checks/project/package-json.js +47 -3
  90. package/.sinapse-ai/core/health-check/checks/services/gemini-cli.js +117 -0
  91. package/.sinapse-ai/core/health-check/checks/services/index.js +2 -0
  92. package/.sinapse-ai/core/health-check/healers/index.js +40 -3
  93. package/.sinapse-ai/core/ideation/ideation-engine.js +170 -121
  94. package/.sinapse-ai/core/ids/gate-evaluator.js +318 -0
  95. package/.sinapse-ai/core/ids/gates/g5-semantic-handshake.js +190 -0
  96. package/.sinapse-ai/core/ids/gates/g6-ci-integrity.js +162 -0
  97. package/.sinapse-ai/core/ids/index.js +30 -0
  98. package/.sinapse-ai/core/memory/__tests__/active-modules.verify.js +11 -0
  99. package/.sinapse-ai/core/orchestration/agent-invoker.js +29 -6
  100. package/.sinapse-ai/core/orchestration/brownfield-handler.js +36 -3
  101. package/.sinapse-ai/core/orchestration/executors/epic-3-executor.js +76 -5
  102. package/.sinapse-ai/core/orchestration/executors/epic-4-executor.js +63 -17
  103. package/.sinapse-ai/core/orchestration/executors/epic-6-executor.js +153 -41
  104. package/.sinapse-ai/core/orchestration/executors/epic-executor.js +40 -0
  105. package/.sinapse-ai/core/orchestration/greenfield-handler.js +87 -3
  106. package/.sinapse-ai/core/orchestration/master-orchestrator.js +105 -7
  107. package/.sinapse-ai/core/orchestration/parallel-executor.js +6 -1
  108. package/.sinapse-ai/core/orchestration/workflow-executor.js +41 -0
  109. package/.sinapse-ai/core/registry/squad-agent-resolver.js +253 -0
  110. package/.sinapse-ai/core/telemetry/ids-sink.js +188 -0
  111. package/.sinapse-ai/core/ui/observability-panel.js +240 -0
  112. package/.sinapse-ai/core/utils/output-formatter.js +8 -290
  113. package/.sinapse-ai/core-config.yaml +29 -1
  114. package/.sinapse-ai/data/entity-registry.yaml +15056 -13761
  115. package/.sinapse-ai/development/agents/developer.md +2 -0
  116. package/.sinapse-ai/development/agents/devops.md +9 -0
  117. package/.sinapse-ai/development/agents/snps-orqx.md +12 -22
  118. package/.sinapse-ai/development/external-executors/README.md +18 -0
  119. package/.sinapse-ai/development/external-executors/codex.md +56 -0
  120. package/.sinapse-ai/development/scripts/populate-entity-registry.js +65 -9
  121. package/.sinapse-ai/development/scripts/squad/squad-downloader.js +54 -11
  122. package/.sinapse-ai/development/tasks/build-autonomous.md +11 -1
  123. package/.sinapse-ai/development/tasks/build-resume.md +8 -0
  124. package/.sinapse-ai/development/tasks/build-status.md +8 -0
  125. package/.sinapse-ai/development/tasks/build.md +8 -0
  126. package/.sinapse-ai/development/tasks/cleanup-worktrees.md +8 -1
  127. package/.sinapse-ai/development/tasks/delegate-to-external-executor.md +152 -0
  128. package/.sinapse-ai/development/tasks/github-devops-pre-push-quality-gate.md +46 -29
  129. package/.sinapse-ai/development/tasks/gotcha.md +8 -0
  130. package/.sinapse-ai/development/tasks/gotchas.md +8 -0
  131. package/.sinapse-ai/development/tasks/ids-health.md +14 -6
  132. package/.sinapse-ai/development/tasks/list-mcps.md +15 -0
  133. package/.sinapse-ai/development/tasks/merge-worktree.md +8 -1
  134. package/.sinapse-ai/development/tasks/qa-review-build.md +18 -0
  135. package/.sinapse-ai/development/tasks/remove-mcp.md +8 -1
  136. package/.sinapse-ai/development/tasks/update-sinapse.md +3 -3
  137. package/.sinapse-ai/development/tasks/validate-agents.md +26 -14
  138. package/.sinapse-ai/development/templates/service-template/README.md.hbs +159 -159
  139. package/.sinapse-ai/development/templates/service-template/__tests__/index.test.ts.hbs +238 -238
  140. package/.sinapse-ai/development/templates/service-template/client.ts.hbs +404 -404
  141. package/.sinapse-ai/development/templates/service-template/errors.ts.hbs +183 -183
  142. package/.sinapse-ai/development/templates/service-template/index.ts.hbs +121 -121
  143. package/.sinapse-ai/development/templates/service-template/package.json.hbs +88 -88
  144. package/.sinapse-ai/development/templates/service-template/types.ts.hbs +146 -146
  145. package/.sinapse-ai/development/templates/squad-template/LICENSE +22 -22
  146. package/.sinapse-ai/git-hooks/lib/framework-guard.js +258 -0
  147. package/.sinapse-ai/git-hooks/lib/secret-scanner-core.js +283 -0
  148. package/.sinapse-ai/git-hooks/lib/staged-secret-scan.js +179 -0
  149. package/.sinapse-ai/git-hooks/lib/staged-sql-guard.js +204 -0
  150. package/.sinapse-ai/git-hooks/post-commit +28 -0
  151. package/.sinapse-ai/git-hooks/pre-commit +81 -0
  152. package/.sinapse-ai/git-hooks/pre-push +77 -0
  153. package/.sinapse-ai/hooks/ids-post-commit.js +13 -11
  154. package/.sinapse-ai/hooks/ids-pre-push.js +9 -7
  155. package/.sinapse-ai/hooks/sinapse-brand-grounding.cjs +4 -7
  156. package/.sinapse-ai/hooks/sinapse-ds-grounding.cjs +4 -7
  157. package/.sinapse-ai/hooks/sinapse-vault-grounding.cjs +4 -7
  158. package/.sinapse-ai/infrastructure/integrations/ai-providers/ai-provider-factory.js +4 -1
  159. package/.sinapse-ai/infrastructure/integrations/ai-providers/claude-provider.js +57 -55
  160. package/.sinapse-ai/infrastructure/scripts/codex-parity/resolve.js +161 -0
  161. package/.sinapse-ai/infrastructure/scripts/dashboard-status-writer.js +6 -2
  162. package/.sinapse-ai/infrastructure/scripts/ide-sync/index.js +139 -21
  163. package/.sinapse-ai/infrastructure/scripts/ide-sync/persona-renderer.js +97 -0
  164. package/.sinapse-ai/infrastructure/scripts/sync-codex-local-first.js +156 -1
  165. package/.sinapse-ai/infrastructure/scripts/validate-codex-delegation.js +1 -4
  166. package/.sinapse-ai/infrastructure/scripts/validate-codex-integration.js +41 -5
  167. package/.sinapse-ai/infrastructure/templates/coderabbit.yaml.template +280 -280
  168. package/.sinapse-ai/infrastructure/templates/config/env.example +16 -16
  169. package/.sinapse-ai/infrastructure/templates/config/gitignore-additions.tmpl +59 -59
  170. package/.sinapse-ai/infrastructure/templates/github/CODEOWNERS.template +12 -12
  171. package/.sinapse-ai/infrastructure/templates/github-workflows/ci.yml.template +170 -170
  172. package/.sinapse-ai/infrastructure/templates/github-workflows/pr-automation.yml.template +331 -331
  173. package/.sinapse-ai/infrastructure/templates/github-workflows/release.yml.template +197 -197
  174. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +19 -19
  175. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-node.tmpl +86 -86
  176. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-python.tmpl +146 -146
  177. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-sinapse-base.tmpl +64 -64
  178. package/.sinapse-ai/infrastructure/templates/safe-collab/CODEOWNERS.template +16 -16
  179. package/.sinapse-ai/infrastructure/templates/sinapse-sync.yaml.template +183 -183
  180. package/.sinapse-ai/install-manifest.yaml +239 -223
  181. package/.sinapse-ai/local-config.yaml.template +65 -65
  182. package/.sinapse-ai/product/templates/adr.hbs +126 -126
  183. package/.sinapse-ai/product/templates/dbdr.hbs +242 -242
  184. package/.sinapse-ai/product/templates/epic.hbs +213 -213
  185. package/.sinapse-ai/product/templates/ide-rules/codex-rules.md +30 -0
  186. package/.sinapse-ai/product/templates/pmdr.hbs +187 -187
  187. package/.sinapse-ai/product/templates/prd-v2.0.hbs +217 -217
  188. package/.sinapse-ai/product/templates/prd.hbs +202 -202
  189. package/.sinapse-ai/product/templates/statusline/statusline-script.js +31 -8
  190. package/.sinapse-ai/product/templates/statusline/track-agent-clear.cjs +79 -0
  191. package/.sinapse-ai/product/templates/statusline/track-agent.cjs +218 -0
  192. package/.sinapse-ai/product/templates/story.hbs +264 -264
  193. package/.sinapse-ai/product/templates/task.hbs +171 -171
  194. package/.sinapse-ai/product/templates/tmpl-comment-on-examples.sql +159 -159
  195. package/.sinapse-ai/product/templates/tmpl-migration-script.sql +92 -92
  196. package/.sinapse-ai/product/templates/tmpl-rls-granular-policies.sql +105 -105
  197. package/.sinapse-ai/product/templates/tmpl-rls-kiss-policy.sql +11 -11
  198. package/.sinapse-ai/product/templates/tmpl-rls-roles.sql +136 -136
  199. package/.sinapse-ai/product/templates/tmpl-rls-simple.sql +78 -78
  200. package/.sinapse-ai/product/templates/tmpl-rls-tenant.sql +153 -153
  201. package/.sinapse-ai/product/templates/tmpl-rollback-script.sql +78 -78
  202. package/.sinapse-ai/product/templates/tmpl-seed-data.sql +141 -141
  203. package/.sinapse-ai/product/templates/tmpl-smoke-test.sql +17 -17
  204. package/.sinapse-ai/product/templates/tmpl-staging-copy-merge.sql +140 -140
  205. package/.sinapse-ai/product/templates/tmpl-stored-proc.sql +141 -141
  206. package/.sinapse-ai/product/templates/tmpl-trigger.sql +153 -153
  207. package/.sinapse-ai/product/templates/tmpl-view-materialized.sql +134 -134
  208. package/.sinapse-ai/product/templates/tmpl-view.sql +178 -178
  209. package/.sinapse-ai/scripts/pm.sh +18 -6
  210. package/AGENTS.md +193 -0
  211. package/LICENSE +63 -63
  212. package/README.en.md +17 -18
  213. package/README.md +18 -19
  214. package/bin/cli.js +18 -1
  215. package/bin/commands/agents.js +96 -0
  216. package/bin/commands/doctor.js +15 -0
  217. package/bin/commands/ideate.js +129 -0
  218. package/bin/commands/install.js +194 -22
  219. package/bin/commands/status.js +14 -1
  220. package/bin/commands/uninstall.js +40 -0
  221. package/bin/commands/update.js +52 -0
  222. package/bin/lib/setup-statusline.js +191 -0
  223. package/bin/postinstall.js +50 -4
  224. package/bin/sinapse-init.js +11 -83
  225. package/bin/sinapse.js +146 -2
  226. package/bin/utils/framework-guard.js +17 -4
  227. package/bin/utils/secret-scanner-core.js +283 -0
  228. package/bin/utils/staged-secret-scan.js +106 -40
  229. package/bin/utils/staged-sql-guard.js +204 -0
  230. package/bin/utils/validate-publish.js +63 -0
  231. package/docs/agent-reference-guide.md +4 -6
  232. package/docs/framework/agent-prefix-convention.md +58 -0
  233. package/docs/framework/collaboration-activation.md +45 -0
  234. package/docs/security/overview.md +1 -1
  235. package/package.json +16 -8
  236. package/packages/installer/src/index.js +26 -0
  237. package/packages/installer/src/installer/git-hooks-installer.js +546 -0
  238. package/packages/installer/src/installer/sinapse-ai-installer.js +87 -0
  239. package/packages/installer/src/wizard/feedback.js +1 -1
  240. package/packages/installer/src/wizard/ide-config-generator.js +40 -25
  241. package/packages/installer/src/wizard/index.js +50 -0
  242. package/packages/installer/src/wizard/validators.js +38 -1
  243. package/packages/installer/tests/unit/artifact-copy-pipeline/artifact-copy-pipeline.test.js +24 -1
  244. package/packages/installer/tests/unit/doctor/doctor-checks.test.js +42 -3
  245. package/packages/installer/tests/unit/entity-registry-bootstrap.test.js +10 -4
  246. package/packages/installer/tests/unit/git-hooks-installer.test.js +262 -0
  247. package/packages/sinapse-install/bin/edmcp.js +0 -0
  248. package/packages/sinapse-install/bin/sinapse-install.js +0 -0
  249. package/scripts/audit-tasks.cjs +112 -91
  250. package/scripts/check-markdown-links.py +352 -352
  251. package/scripts/eval-runner.js +422 -0
  252. package/scripts/generate-install-manifest.js +13 -9
  253. package/scripts/generate-synapse-runtime.js +51 -0
  254. package/scripts/prepare-hooks.js +58 -0
  255. package/scripts/regenerate-orqx-stubs.ps1 +2 -2
  256. package/scripts/validate-agents-md.js +128 -0
  257. package/scripts/validate-all.js +2 -0
  258. package/scripts/validate-evals.js +466 -0
  259. package/scripts/validate-schemas.js +539 -0
  260. package/scripts/validate-squad-orqx.js +9 -2
  261. package/sinapse/agents/sinapse-orqx.md +12 -22
  262. package/sinapse/agents/snps-orqx.md +11 -21
  263. package/squads/claude-code-mastery/squad.yaml +8 -0
  264. package/squads/squad-animations/squad.yaml +1 -1
  265. package/squads/squad-brand/squad.yaml +1 -1
  266. package/squads/squad-cloning/squad.yaml +1 -1
  267. package/squads/squad-commercial/squad.yaml +2 -3
  268. package/squads/squad-content/squad.yaml +1 -1
  269. package/squads/squad-copy/squad.yaml +2 -3
  270. package/squads/squad-courses/squad.yaml +1 -1
  271. package/squads/squad-cybersecurity/squad.yaml +2 -3
  272. package/squads/{squad-artdir → squad-design}/agents/cro-persuasion.md +1 -1
  273. package/squads/{squad-artdir → squad-design}/agents/platform-aesthetic-director.md +2 -2
  274. package/squads/{squad-artdir → squad-design}/agents/premium-packaging-strategist.md +2 -2
  275. package/squads/{squad-artdir → squad-design}/agents/product-surface-director.md +3 -3
  276. package/squads/squad-design/squad.yaml +6 -3
  277. package/squads/squad-finance/squad.yaml +7 -1
  278. package/squads/squad-growth/squad.yaml +1 -1
  279. package/squads/squad-paidmedia/squad.yaml +2 -3
  280. package/squads/squad-product/squad.yaml +1 -1
  281. package/squads/squad-research/squad.yaml +2 -3
  282. package/squads/squad-storytelling/squad.yaml +2 -3
  283. package/.codex/agents/brad-frost.md +0 -46
  284. package/.codex/agents/claude-orqx.md +0 -72
  285. package/.codex/agents/copy-chief.md +0 -162
  286. package/.codex/agents/cyber-chief.md +0 -169
  287. package/.codex/agents/dan-mall.md +0 -43
  288. package/.codex/agents/data-chief.md +0 -198
  289. package/.codex/agents/dave-malouf.md +0 -43
  290. package/.codex/agents/db-sage.md +0 -152
  291. package/.codex/agents/design-chief.md +0 -226
  292. package/.codex/agents/dev.md +0 -102
  293. package/.codex/agents/legal-chief.md +0 -199
  294. package/.codex/agents/nano-banana-generator.md +0 -42
  295. package/.codex/agents/pm.md +0 -81
  296. package/.codex/agents/po.md +0 -85
  297. package/.codex/agents/qa.md +0 -98
  298. package/.codex/agents/sm.md +0 -77
  299. package/.codex/agents/squad-chief.md +0 -1553
  300. package/.codex/agents/squad.md +0 -66
  301. package/.codex/agents/story-chief.md +0 -180
  302. package/.codex/agents/tools-orqx.md +0 -219
  303. package/.codex/agents/traffic-masters-chief.md +0 -211
  304. package/.sinapse-ai/data/registry-update-log.jsonl +0 -72
  305. package/.sinapse-ai/development/scripts/elicitation-engine.js +0 -385
  306. package/.sinapse-ai/development/scripts/elicitation-session-manager.js +0 -300
  307. package/.sinapse-ai/development/tasks/test-validation-task.md +0 -172
  308. package/.sinapse-ai/monitor/hooks/lib/__init__.py +0 -2
  309. package/.sinapse-ai/monitor/hooks/lib/enrich.py +0 -59
  310. package/.sinapse-ai/monitor/hooks/lib/send_event.py +0 -48
  311. package/.sinapse-ai/monitor/hooks/notification.py +0 -30
  312. package/.sinapse-ai/monitor/hooks/post_tool_use.py +0 -46
  313. package/.sinapse-ai/monitor/hooks/pre_compact.py +0 -30
  314. package/.sinapse-ai/monitor/hooks/pre_tool_use.py +0 -41
  315. package/.sinapse-ai/monitor/hooks/stop.py +0 -30
  316. package/.sinapse-ai/monitor/hooks/subagent_stop.py +0 -30
  317. package/.sinapse-ai/monitor/hooks/user_prompt_submit.py +0 -39
  318. package/.sinapse-ai/product/templates/statusline/track-agent.sh +0 -69
  319. package/bin/sinapse-graph.js +0 -19
  320. package/docs/codex-integration-process.md +0 -22
  321. package/docs/codex-parity-program.md +0 -27
  322. package/scripts/install-monitor-hooks.sh +0 -82
  323. package/squads/squad-artdir/README.md +0 -90
  324. package/squads/squad-artdir/agents/accessibility-guardian.md +0 -184
  325. package/squads/squad-artdir/agents/artdir-orqx.md +0 -222
  326. package/squads/squad-artdir/agents/color-psychologist.md +0 -166
  327. package/squads/squad-artdir/agents/design-system-architect.md +0 -100
  328. package/squads/squad-artdir/agents/ia-architect.md +0 -169
  329. package/squads/squad-artdir/agents/interaction-designer.md +0 -162
  330. package/squads/squad-artdir/agents/layout-engineer.md +0 -163
  331. package/squads/squad-artdir/agents/motion-architect.md +0 -185
  332. package/squads/squad-artdir/agents/type-systemist.md +0 -138
  333. package/squads/squad-artdir/agents/visual-strategist.md +0 -127
  334. package/squads/squad-artdir/checklists/seven-pillars-validation-checklist.md +0 -172
  335. package/squads/squad-artdir/knowledge-base/case-nyo-ia-reference.md +0 -289
  336. package/squads/squad-artdir/knowledge-base/deliverables-templates.md +0 -457
  337. package/squads/squad-artdir/knowledge-base/motion-technique-catalog.md +0 -247
  338. package/squads/squad-artdir/knowledge-base/premium-packaging-principles.md +0 -133
  339. package/squads/squad-artdir/knowledge-base/psychological-toolkit.md +0 -229
  340. package/squads/squad-artdir/knowledge-base/saas-art-direction-canon.md +0 -242
  341. package/squads/squad-artdir/knowledge-base/seven-pillars-framework.md +0 -289
  342. package/squads/squad-artdir/knowledge-base/ten-pillars-framework.md +0 -221
  343. package/squads/squad-artdir/package.json +0 -20
  344. package/squads/squad-artdir/squad.yaml +0 -299
  345. package/squads/squad-artdir/tasks/audit-conversion.md +0 -97
  346. package/squads/squad-artdir/tasks/audit-drift-multi-surface.md +0 -55
  347. package/squads/squad-artdir/tasks/consult-saas-canon.md +0 -54
  348. package/squads/squad-artdir/tasks/create-art-direction-brief.md +0 -110
  349. package/squads/squad-artdir/tasks/create-premium-packaging-brief.md +0 -61
  350. package/squads/squad-artdir/tasks/create-wireflow.md +0 -84
  351. package/squads/squad-artdir/tasks/design-color-system.md +0 -81
  352. package/squads/squad-artdir/tasks/design-product-surface.md +0 -60
  353. package/squads/squad-artdir/tasks/design-token-system.md +0 -58
  354. package/squads/squad-artdir/tasks/diagnose-visual-language.md +0 -92
  355. package/squads/squad-artdir/tasks/first-5-minutes-choreography.md +0 -65
  356. package/squads/squad-artdir/tasks/specify-motion-system.md +0 -84
  357. package/squads/squad-artdir/tasks/validate-against-pillars.md +0 -143
  358. package/squads/squad-artdir/templates/art-direction-brief-template.md +0 -215
  359. package/squads/squad-artdir/workflows/conversion-audit-cycle.yaml +0 -142
  360. package/squads/squad-artdir/workflows/full-art-direction-cycle.yaml +0 -179
  361. package/squads/squad-artdir/workflows/saas-platform-art-direction-cycle.yaml +0 -338
  362. package/squads/squad-commercial/agents/legal-chief.md +0 -199
  363. package/squads/squad-copy/agents/copy-chief.md +0 -162
  364. package/squads/squad-cybersecurity/agents/cyber-chief.md +0 -169
  365. package/squads/squad-design/agents/design-chief.md +0 -226
  366. package/squads/squad-paidmedia/agents/traffic-masters-chief.md +0 -211
  367. package/squads/squad-research/agents/data-chief.md +0 -198
  368. package/squads/squad-storytelling/agents/story-chief.md +0 -180
@@ -272,6 +272,8 @@ dependencies:
272
272
  - create-worktree.md
273
273
  - list-worktrees.md
274
274
  - remove-worktree.md
275
+ # Execution Mode (task→agent binding gap closed)
276
+ - yolo-toggle.md
275
277
  scripts:
276
278
  # Recovery System (Epic 5)
277
279
  - recovery-tracker.js # Track implementation attempts
@@ -280,6 +280,15 @@ dependencies:
280
280
  - merge-worktree.md
281
281
  # Environment & Deployment (Infra Research 2026-04)
282
282
  - environment-promotion-pipeline.md
283
+ # Release & Contributor Flow (task→agent binding gap closed)
284
+ - publish-npm.md
285
+ - review-contributor-pr.md
286
+ # IDS Governance & Registry (task→agent binding gap closed — devops owns CI/G6)
287
+ - ids-governor.md
288
+ - ids-health.md
289
+ - ids-query.md
290
+ - sync-registry-intel.md
291
+ - delegate-to-external-executor.md
283
292
  knowledge_bases:
284
293
  - environment-deployment-patterns.md
285
294
  workflows:
@@ -1,6 +1,6 @@
1
1
  # Agent: Imperator — Sinapse Master
2
2
 
3
- > ACTIVATION-NOTICE: You are now Imperator — the supreme orchestrator of the SINAPSE ecosystem. You have authority over all 18 specialized squads (189 agents total). You do not execute domain work yourself — you diagnose, route, coordinate, and synthesize across the entire ecosystem. Every request passes through you first. You are the CEO of this AI workforce.
3
+ > ACTIVATION-NOTICE: You are now Imperator — the supreme orchestrator of the SINAPSE ecosystem. You have authority over all 17 specialized squads (172 agents total). You do not execute domain work yourself — you diagnose, route, coordinate, and synthesize across the entire ecosystem. Every request passes through you first. You are the CEO of this AI workforce.
4
4
 
5
5
  ## ACTIVATION INSTRUCTIONS — MANDATORY ON LOAD
6
6
 
@@ -25,9 +25,9 @@ Then display:
25
25
 
26
26
  ```
27
27
  AI Agent Squads for Claude Code
28
- 18 squads · 189 agents · 1,213 tasks
28
+ 17 squads · 172 agents · 1,200 tasks
29
29
 
30
- 👑 Imperator — Sinapse Master activated
30
+ 👑 [Imperator] — Sinapse Master activated
31
31
 
32
32
  Describe your goal and I'll diagnose the domain
33
33
  and route to the right agent.
@@ -112,7 +112,7 @@ agent:
112
112
  whenToUse: "ALWAYS as the default agent. Imperator is the first point of contact for EVERY request. Routes directly to @specialist when clear, or to @{domain}-orqx when complex."
113
113
 
114
114
  persona:
115
- role: "Supreme Orchestrator of all 18 SINAPSE Squads (189 agents)"
115
+ role: "Supreme Orchestrator of all 17 SINAPSE Squads (172 agents)"
116
116
  identity: >
117
117
  The strategic mind at the top of the SINAPSE hierarchy. Imperator
118
118
  sees across all domains — branding, commerce, content, copy, animations,
@@ -161,7 +161,7 @@ intelligent_routing:
161
161
  - '"Assessment de seguranca" -> @cyber-orqx'
162
162
 
163
163
  # ══════════════════════════════════════════════════════════════════════════════
164
- # COMPLETE ROUTING TABLE — ALL 18 SQUADS
164
+ # COMPLETE ROUTING TABLE — ALL 17 SQUADS
165
165
  # ══════════════════════════════════════════════════════════════════════════════
166
166
 
167
167
  routing_table:
@@ -211,23 +211,14 @@ routing_table:
211
211
  tasks: 73
212
212
  keywords: ["animacao", "animation", "Three.js", "shader", "WebGL", "GSAP", "motion", "Framer Motion", "parallax", "3D", "canvas", "particle"]
213
213
 
214
- - squad: squad-artdir
215
- prefix: artdir
216
- orchestrator: artdir-orqx (Canvas)
217
- invocation: "/artdir:agents:artdir-orqx"
218
- domain: "Art direction para landing pages, websites, plataformas SaaS premium. 7 pilares de retencao + conversao. Visual strategy, design system premium, packaging visual."
219
- agents: 14
220
- tasks: 13
221
- keywords: ["art direction", "direcao de arte", "landing page", "LP", "site", "website", "premium", "platform", "SaaS visual", "packaging visual", "visual strategy", "pilar", "retencao", "conversao"]
222
-
223
214
  - squad: squad-design
224
215
  prefix: design
225
216
  orchestrator: design-orqx (Nexus)
226
217
  invocation: "/design:agents:design-orqx"
227
- domain: "UX/UI, experiencia digital, wireframes, prototipos, design system, acessibilidade"
228
- agents: 8
218
+ domain: "UX/UI, experiencia digital, wireframes, prototipos, design system, acessibilidade. Art direction para landing pages, websites, plataformas SaaS premium — visual strategy, design system premium, packaging visual, 7 pilares de retencao + conversao."
219
+ agents: 14
229
220
  tasks: 101
230
- keywords: ["UX", "UI", "experiencia", "wireframe", "prototipo", "design system", "acessibilidade", "usabilidade", "user research", "interaction design", "figma"]
221
+ keywords: ["UX", "UI", "experiencia", "wireframe", "prototipo", "design system", "acessibilidade", "usabilidade", "user research", "interaction design", "figma", "art direction", "direcao de arte", "landing page", "LP", "site", "website", "premium", "platform", "SaaS visual", "packaging visual", "visual strategy", "pilar", "retencao", "conversao"]
231
222
 
232
223
  - squad: squad-finance
233
224
  prefix: finance
@@ -522,7 +513,7 @@ commands:
522
513
  description: "Design a multi-squad execution plan for a complex initiative"
523
514
  args: "{initiative_description}"
524
515
  - name: "*status"
525
- description: "Report on all 18 squads — capabilities, agents, tasks"
516
+ description: "Report on all 17 squads — capabilities, agents, tasks"
526
517
  args: "[--squad {name}] [--verbose]"
527
518
  - name: "*brief"
528
519
  description: "Generate a strategic brief leveraging relevant squads"
@@ -591,7 +582,7 @@ framework_compatibility:
591
582
  description: >
592
583
  Without any external framework, Imperator is the top-level orchestrator.
593
584
  Users invoke /sinapse:agents:sinapse-orqx directly, and Imperator routes
594
- to all 18 squads autonomously.
585
+ to all 17 squads autonomously.
595
586
  orchestrator: "sinapse-orqx (Imperator)"
596
587
 
597
588
  with_sinapse:
@@ -672,11 +663,10 @@ Imperator can provide ecosystem-wide insights by combining capabilities across s
672
663
  | 15 | cybersecurity | cyber | Fortress | Cybersecurity, compliance, pentest |
673
664
  | 16 | cloning | cloning | Helix | Cognitive cloning, mental DNA extraction |
674
665
  | 17 | courses | courses | Syllabus | Course creation, workshops, ebooks |
675
- | 18 | claude-code-mastery | claude | Nucleus | Claude Code mastery, prompt engineering |
676
666
 
677
- **Total ecosystem:** 18 squads, 189 agents, 1,213 tasks
667
+ **Total ecosystem:** 17 squads, 172 agents, 1,200 tasks
678
668
 
679
669
  ## Cross-Squad Handoffs
680
670
  - **Receives from:** Every squad (escalations, cross-squad requests)
681
671
  - **Sends to:** Every squad (routed work, coordination directives)
682
- - **Coordinates with:** All 18 squad orchestrators
672
+ - **Coordinates with:** All 17 squad orchestrators
@@ -0,0 +1,18 @@
1
+ # External Executors
2
+
3
+ External executors let one SINAPSE runtime keep orchestration authority while another CLI runtime performs the implementation work in an isolated run directory.
4
+
5
+ This pattern is opt-in. The default development mode remains `native`, where the active SINAPSE agent plans, implements, validates, and updates story state in the same runtime.
6
+
7
+ ## Contract
8
+
9
+ - The orchestrator owns story selection, acceptance criteria, scope, review, and story state updates.
10
+ - The external executor owns only the delegated implementation attempt.
11
+ - Run artifacts live under `.sinapse/external-runs/<timestamp>-<slug>/`.
12
+ - The orchestrator must read the executor output and inspect the diff before updating checkboxes, File List, or story status.
13
+
14
+ ## Providers
15
+
16
+ - `codex.md`: reference provider for Codex CLI headless execution.
17
+
18
+ Future provider files can document `aider`, `cline`, `cursor-cli`, `gemini-cli`, or any other runtime that supports non-interactive execution.
@@ -0,0 +1,56 @@
1
+ # Codex External Executor Adapter
2
+
3
+ ## Provider ID
4
+
5
+ `codex`
6
+
7
+ ## Invocation
8
+
9
+ The `sinapse-delegate` wrapper launches Codex in non-interactive exec mode and sends the prompt through stdin:
10
+
11
+ ```bash
12
+ codex -a never -s workspace-write exec -C <workdir> -o <run_dir>/output.md -
13
+ ```
14
+
15
+ For `--sandbox danger-full-access`, the wrapper uses the explicit Codex bypass flag:
16
+
17
+ ```bash
18
+ codex --dangerously-bypass-approvals-and-sandbox exec -C <workdir> -o <run_dir>/output.md -
19
+ ```
20
+
21
+ ## Sandbox Mapping
22
+
23
+ | SINAPSE sandbox | Codex behavior |
24
+ | --- | --- |
25
+ | `read-only` | `-a never -s read-only` |
26
+ | `workspace-write` | `-a never -s workspace-write` |
27
+ | `full-auto` | `-a never -s workspace-write` |
28
+ | `danger-full-access` | `--dangerously-bypass-approvals-and-sandbox` |
29
+
30
+ `full-auto` is retained as a SINAPSE abstraction for background executor runs. On current Codex CLI versions, it maps to `workspace-write` plus `approval=never` rather than bypassing the sandbox.
31
+
32
+ ## Supported Options
33
+
34
+ - `--model <model>` maps to `codex -m <model>`.
35
+ - `--profile <name>` maps to `codex -p <name>`.
36
+ - `--image <path>` maps to `codex exec -i <path>`.
37
+ - `--workdir <path>` maps to `codex exec -C <path>`.
38
+ - `--prompt` and `--prompt-file` are sent via stdin.
39
+ - `--output-last-message` is managed by the wrapper through `-o <run_dir>/output.md`.
40
+
41
+ ## Exit Code Semantics
42
+
43
+ - In background mode, `sinapse-delegate` returns after a process is spawned and prints the PID.
44
+ - In foreground mode, `sinapse-delegate` waits for Codex and returns Codex's exit code.
45
+ - Missing Codex binary is a pre-condition failure.
46
+ - Dirty git worktrees are blocked unless `--allow-dirty` is explicit.
47
+
48
+ ## Run Artifacts
49
+
50
+ Each run directory contains:
51
+
52
+ - `prompt.md`: prompt sent to Codex
53
+ - `output.md`: last Codex message, written by Codex
54
+ - `codex.log`: stdout/stderr stream
55
+ - `command.txt`: exact command line
56
+ - `metadata.json`: provider, workdir, sandbox, PID, and artifact paths
@@ -12,6 +12,12 @@ const REPO_ROOT = path.resolve(__dirname, '../../..');
12
12
  const REGISTRY_PATH = path.resolve(__dirname, '../../data/entity-registry.yaml');
13
13
 
14
14
  const SCAN_CONFIG = [
15
+ // `bin` scanned FIRST on purpose: buildNameIndex is last-wins for the entity
16
+ // id key, so scanning bin before the other categories lets later categories
17
+ // win on the few generic id collisions (cli, constants) — preserving existing
18
+ // dependency resolution — while still indexing bin entry-points so their
19
+ // requires (e.g. bin/commands/ideate.js → ideation-engine) populate usedBy.
20
+ { category: 'bin', basePath: 'bin', glob: '**/*.js', type: 'script' },
15
21
  { category: 'tasks', basePath: '.sinapse-ai/development/tasks', glob: '**/*.md', type: 'task' },
16
22
  { category: 'templates', basePath: '.sinapse-ai/product/templates', glob: '**/*.{yaml,yml,md}', type: 'template' },
17
23
  { category: 'scripts', basePath: '.sinapse-ai/development/scripts', glob: '**/*.{js,mjs}', type: 'script' },
@@ -32,6 +38,11 @@ const SCAN_CONFIG = [
32
38
  { category: 'product-data', basePath: '.sinapse-ai/product/data', glob: '**/*.{yaml,yml,md}', type: 'data' }
33
39
  ];
34
40
 
41
+ // Generated/self-referential artifacts excluded from scanning. The registry
42
+ // must not track ITSELF as an entity — its checksum would change every regen
43
+ // (each run rewrites the file), so it could never reach a stable fixed point.
44
+ const SCAN_IGNORE = ['**/entity-registry.yaml'];
45
+
35
46
  const ADAPTABILITY_DEFAULTS = {
36
47
  agent: 0.3,
37
48
  module: 0.4,
@@ -322,7 +333,17 @@ function scanCategory(config, verbose = false) {
322
333
  }
323
334
 
324
335
  const globPattern = path.posix.join(absBase.replace(/\\/g, '/'), config.glob);
325
- const files = fg.sync(globPattern, { onlyFiles: true, absolute: true });
336
+ // Sort the glob result: fast-glob returns files in filesystem (readdir) order,
337
+ // which varies across machines/runs and reorders the entire registry on every
338
+ // regen (non-deterministic churn). A stable sort makes entity insertion order —
339
+ // and everything derived from it (usedBy push order, YAML key order) —
340
+ // deterministic.
341
+ // `ignore` drops self-referential / generated artifacts (the registry file
342
+ // itself) — tracking the registry as an entity makes its checksum oscillate
343
+ // every run (each regen rewrites the file), which can never stabilize.
344
+ const files = fg
345
+ .sync(globPattern, { onlyFiles: true, absolute: true, ignore: SCAN_IGNORE })
346
+ .sort();
326
347
 
327
348
  const entities = {};
328
349
  const seenIds = new Set();
@@ -474,6 +495,14 @@ function resolveUsedBy(allEntities) {
474
495
  }
475
496
  }
476
497
  }
498
+
499
+ // Sort usedBy lists so the serialized order is deterministic regardless of the
500
+ // order entities were scanned in.
501
+ for (const entities of Object.values(allEntities)) {
502
+ for (const entity of Object.values(entities)) {
503
+ entity.usedBy.sort();
504
+ }
505
+ }
477
506
  }
478
507
 
479
508
  function classifyDependencies(allEntities, nameIndex) {
@@ -551,14 +580,23 @@ function populate(options = {}) {
551
580
  for (const [category, entities] of Object.entries(existingRegistry.entities)) {
552
581
  if (!allEntities[category]) continue;
553
582
  for (const [entityId, entity] of Object.entries(entities)) {
554
- if (entity.invocationExamples && Array.isArray(entity.invocationExamples) && allEntities[category][entityId]) {
583
+ const fresh = allEntities[category][entityId];
584
+ if (!fresh) continue;
585
+ if (entity.invocationExamples && Array.isArray(entity.invocationExamples)) {
555
586
  // Enforce limits: max 3 examples, each max 200 chars
556
587
  const examples = entity.invocationExamples.slice(0, 3).map((e) => String(e).slice(0, 200));
557
- allEntities[category][entityId].invocationExamples = examples;
588
+ fresh.invocationExamples = examples;
589
+ }
590
+ // Preserve lastVerified when the file content (checksum) is unchanged.
591
+ // Re-stamping every entity on each regen — even untouched ones — was a
592
+ // primary source of registry churn; the timestamp only carries meaning
593
+ // when the entity was actually re-verified (i.e. its checksum changed).
594
+ if (entity.lastVerified && entity.checksum === fresh.checksum) {
595
+ fresh.lastVerified = entity.lastVerified;
558
596
  }
559
597
  }
560
598
  }
561
- console.log('[IDS] Preserved invocationExamples from existing registry');
599
+ console.log('[IDS] Preserved invocationExamples + lastVerified from existing registry');
562
600
  }
563
601
  } catch {
564
602
  // No existing registry or parse error — skip preservation
@@ -599,11 +637,28 @@ function populate(options = {}) {
599
637
  categories
600
638
  };
601
639
 
602
- const yamlContent = yaml.dump(registry, {
603
- lineWidth: 120,
604
- noRefs: true,
605
- sortKeys: false
606
- });
640
+ const dumpOpts = { lineWidth: 120, noRefs: true, sortKeys: false };
641
+
642
+ // Idempotent timestamp: only bump `lastUpdated` when the substantive content
643
+ // (everything except the timestamp itself) actually changed. Without this,
644
+ // every regen rewrites the file solely because of a new timestamp, producing
645
+ // churn on each commit even when nothing meaningful changed.
646
+ try {
647
+ const existing = yaml.load(fs.readFileSync(REGISTRY_PATH, 'utf8'));
648
+ if (existing && existing.metadata && existing.metadata.lastUpdated) {
649
+ const stripStamp = (r) => yaml.dump(
650
+ { ...r, metadata: { ...r.metadata, lastUpdated: null } },
651
+ dumpOpts,
652
+ );
653
+ if (stripStamp(existing) === stripStamp(registry)) {
654
+ registry.metadata.lastUpdated = existing.metadata.lastUpdated;
655
+ }
656
+ }
657
+ } catch {
658
+ // No existing registry or parse error — keep the fresh timestamp.
659
+ }
660
+
661
+ const yamlContent = yaml.dump(registry, dumpOpts);
607
662
 
608
663
  try {
609
664
  fs.writeFileSync(REGISTRY_PATH, yamlContent, 'utf8');
@@ -618,6 +673,7 @@ function populate(options = {}) {
618
673
 
619
674
  function getCategoryDescription(category) {
620
675
  const descriptions = {
676
+ bin: 'CLI entry points and command implementations',
621
677
  tasks: 'Executable task workflows for agent operations',
622
678
  templates: 'Document and code generation templates',
623
679
  scripts: 'Utility and automation scripts',
@@ -52,6 +52,20 @@ const ALLOWED_REDIRECT_HOSTS = new Set([
52
52
  */
53
53
  const MAX_REDIRECTS = 5;
54
54
 
55
+ /**
56
+ * Per-request timeout (ms). Aborts a hung/slow remote so a compromised or
57
+ * unresponsive host can't stall the installer indefinitely (P3-001).
58
+ * @constant {number}
59
+ */
60
+ const REQUEST_TIMEOUT_MS = 30000;
61
+
62
+ /**
63
+ * Maximum response size (bytes). Caps a single download so a malicious/
64
+ * misconfigured host can't exhaust memory (10 MB is ample for a squad).
65
+ * @constant {number}
66
+ */
67
+ const MAX_RESPONSE_BYTES = 10 * 1024 * 1024;
68
+
55
69
  /**
56
70
  * Error codes for SquadDownloaderError
57
71
  * @enum {string}
@@ -483,8 +497,7 @@ class SquadDownloader {
483
497
  }
484
498
  }
485
499
 
486
- https
487
- .get(url, options, (res) => {
500
+ const req = https.get(url, options, (res) => {
488
501
  // Check for rate limiting
489
502
  if (res.statusCode === 403) {
490
503
  const rateLimitRemaining = res.headers['x-ratelimit-remaining'];
@@ -565,25 +578,55 @@ class SquadDownloader {
565
578
  return;
566
579
  }
567
580
 
568
- // Collect chunks as Buffer objects to support binary files
581
+ // Collect chunks as Buffer objects to support binary files, capping
582
+ // total size to prevent a malicious host from exhausting memory.
569
583
  const chunks = [];
584
+ let total = 0;
570
585
  res.on('data', (chunk) => {
586
+ total += chunk.length;
587
+ if (total > MAX_RESPONSE_BYTES) {
588
+ const err = new SquadDownloaderError(
589
+ DownloaderErrorCodes.NETWORK_ERROR,
590
+ `Response exceeded ${MAX_RESPONSE_BYTES} bytes — aborting`,
591
+ 'The remote file is unexpectedly large; verify the source',
592
+ );
593
+ if (typeof req.destroy === 'function') req.destroy(err);
594
+ else reject(err);
595
+ return;
596
+ }
571
597
  chunks.push(chunk);
572
598
  });
573
599
  res.on('end', () => {
574
600
  // Concatenate all chunks into a single Buffer
575
601
  resolve(Buffer.concat(chunks));
576
602
  });
577
- })
578
- .on('error', (error) => {
579
- reject(
580
- new SquadDownloaderError(
581
- DownloaderErrorCodes.NETWORK_ERROR,
582
- `Network error: ${error.message}`,
583
- 'Check internet connection',
584
- ),
603
+ });
604
+
605
+ // Abort hung requests (P3-001) — destroy() surfaces via the 'error' handler.
606
+ // Guarded: test doubles for https.get may not implement setTimeout/destroy.
607
+ if (typeof req.setTimeout === 'function') {
608
+ req.setTimeout(REQUEST_TIMEOUT_MS, () => {
609
+ const err = new SquadDownloaderError(
610
+ DownloaderErrorCodes.NETWORK_ERROR,
611
+ `Request timed out after ${REQUEST_TIMEOUT_MS}ms fetching ${url}`,
612
+ 'Check internet connection or try again later',
585
613
  );
614
+ if (typeof req.destroy === 'function') req.destroy(err);
615
+ else reject(err);
586
616
  });
617
+ }
618
+
619
+ req.on('error', (error) => {
620
+ reject(
621
+ error instanceof SquadDownloaderError
622
+ ? error
623
+ : new SquadDownloaderError(
624
+ DownloaderErrorCodes.NETWORK_ERROR,
625
+ `Network error: ${error.message}`,
626
+ 'Check internet connection',
627
+ ),
628
+ );
629
+ });
587
630
  });
588
631
  }
589
632
 
@@ -1,3 +1,11 @@
1
+ ---
2
+ task: build-autonomous
3
+ responsavel: '@developer'
4
+ entrada: '`story-id` + opções (`--worktree`, `--timeout`, `--max-retries`)'
5
+ saida: 'Subtasks executadas com retry/self-critique + estado de build + relatório'
6
+ atomic_layer: Task
7
+ ---
8
+
1
9
  # Task: Build Autonomous
2
10
 
3
11
  > **Command:** `*build-autonomous {story-id}`
@@ -192,8 +200,10 @@ The AutonomousBuildLoop emits these events for monitoring:
192
200
  _Task file for Story 8.1 - Coder Agent Loop_
193
201
 
194
202
  ## Handoff
203
+
195
204
  next_agent: @quality-gate
196
205
  next_command: *review {story-id}
197
206
  condition: Autonomous build completed successfully
198
207
  alternatives:
199
- - agent: @developer, command: *build-resume {story-id}, condition: Build failed, needs resume
208
+
209
+ - agent: @developer, command: *build-resume {story-id}, condition: Build failed, needs resume
@@ -1,3 +1,11 @@
1
+ ---
2
+ task: build-resume
3
+ responsavel: '@developer'
4
+ entrada: '`story-id` — build a retomar'
5
+ saida: 'Build autônomo retomado a partir do último checkpoint'
6
+ atomic_layer: Task
7
+ ---
8
+
1
9
  # Task: Build Resume
2
10
 
3
11
  > **Command:** `*build-resume {story-id}`
@@ -1,3 +1,11 @@
1
+ ---
2
+ task: build-status
3
+ responsavel: '@developer'
4
+ entrada: '`story-id` ou `--all`'
5
+ saida: 'Status, progresso, métricas e indicadores de saúde dos builds'
6
+ atomic_layer: Task
7
+ ---
8
+
1
9
  # Task: Build Status
2
10
 
3
11
  > **Command:** `*build-status {story-id}` or `*build-status --all`
@@ -1,3 +1,11 @@
1
+ ---
2
+ task: build
3
+ responsavel: '@developer'
4
+ entrada: '`story-id` + flags (`--dry-run`, `--no-merge`, `--no-qa`, `--verbose`, `--timeout`)'
5
+ saida: 'Build autônomo completo + relatório em `plan/build-report-{story-id}.md`'
6
+ atomic_layer: Task
7
+ ---
8
+
1
9
  # Task: Build (Autonomous)
2
10
 
3
11
  > **Command:** `*build {story-id}`
@@ -1,3 +1,11 @@
1
+ ---
2
+ task: cleanup-worktrees
3
+ responsavel: '@developer'
4
+ entrada: '`--days` — limite de idade em dias (default: 30)'
5
+ saida: 'Worktrees obsoletas removidas com segurança + resumo da limpeza'
6
+ atomic_layer: Task
7
+ ---
8
+
1
9
  # cleanup-worktrees
2
10
 
3
11
  Remove all stale git worktrees older than specified threshold.
@@ -37,4 +45,3 @@ Clean up abandoned worktrees to maintain repository hygiene.
37
45
  - `*list-worktrees` - List all worktrees
38
46
  - `*remove-worktree` - Remove single worktree
39
47
  - `*create-worktree` - Create new worktree
40
-
@@ -0,0 +1,152 @@
1
+ # delegate-to-external-executor.md
2
+
3
+ **Task**: Delegate Implementation to External Executor
4
+
5
+ **Purpose**: Standardize the orchestrator/executor split for SINAPSE workflows. The active SINAPSE runtime keeps authority over story interpretation, acceptance criteria validation, constitutional gates, review, and story updates while a separate CLI runtime performs only the implementation attempt.
6
+
7
+ **When to use**: Use only for `@developer` implementation work where the story scope is clear enough to hand to another runtime. Do not use for @product-lead, @quality-gate, @sprint-lead, @devops, architecture approval, or release authority.
8
+
9
+ ## Task Definition
10
+
11
+ ```yaml
12
+ task: delegateToExternalExecutor()
13
+ responsavel: Orchestrating agent
14
+ responsavel_type: Agente
15
+ atomic_layer: Organism
16
+
17
+ inputs:
18
+ - campo: prompt
19
+ tipo: string
20
+ obrigatorio: true
21
+ validacao: Must cite acceptance criteria, story path, file scope, and explicit non-goals
22
+ - campo: slug
23
+ tipo: string
24
+ obrigatorio: true
25
+ validacao: Stable filesystem-safe run slug
26
+ - campo: story_id
27
+ tipo: string
28
+ obrigatorio: false
29
+ - campo: story_path
30
+ tipo: string
31
+ obrigatorio: false
32
+ - campo: workdir
33
+ tipo: string
34
+ obrigatorio: false
35
+ default: Current project root
36
+ - campo: provider
37
+ tipo: string
38
+ obrigatorio: false
39
+ default: codex
40
+
41
+ outputs:
42
+ - campo: run_dir
43
+ tipo: string
44
+ destino: Orchestrator
45
+ - campo: output
46
+ tipo: file
47
+ destino: <run_dir>/output.md
48
+ - campo: log
49
+ tipo: file
50
+ destino: <run_dir>/<provider>.log
51
+ - campo: diff
52
+ tipo: git-diff
53
+ destino: Orchestrator review
54
+ ```
55
+
56
+ ## Configuration
57
+
58
+ Delegation is disabled by default.
59
+
60
+ ```yaml
61
+ dev:
62
+ execution_mode: native # native | delegate
63
+ delegate_to: codex
64
+ auto_review: true
65
+
66
+ external_executors:
67
+ enabled: false
68
+ default_sandbox: workspace-write # read-only | workspace-write | full-auto | danger-full-access
69
+ run_dir: .sinapse/external-runs
70
+ ```
71
+
72
+ ## Pre-Conditions
73
+
74
+ ```yaml
75
+ pre_conditions:
76
+ - [ ] External executor provider is installed and available on PATH.
77
+ - [ ] Working tree is clean, or existing intentional changes are already committed.
78
+ - [ ] Prompt cites the story path and acceptance criteria.
79
+ - [ ] Prompt lists allowed file scope and explicit non-goals.
80
+ - [ ] Delegated work is implementation work owned by @developer.
81
+ - [ ] Orchestrator has enough context to review the resulting diff.
82
+ ```
83
+
84
+ ## Execution
85
+
86
+ ### 1. Build the Prompt
87
+
88
+ The orchestrator writes a prompt that contains:
89
+
90
+ - Story ID and story path
91
+ - Acceptance criteria copied or summarized from the story
92
+ - Allowed file paths or modules
93
+ - Testing expectations
94
+ - Constraints from Constitution and project rules
95
+ - Explicit instruction that the executor must not update story status, checkboxes, File List, PRs, or releases
96
+
97
+ ### 2. Start the Delegate Run
98
+
99
+ Use the wrapper:
100
+
101
+ ```bash
102
+ sinapse-delegate codex -t <slug> -f <prompt_file> -d <workdir>
103
+ ```
104
+
105
+ The wrapper prints:
106
+
107
+ ```text
108
+ STATUS=started
109
+ RUN_DIR=.sinapse/external-runs/<timestamp>-<slug>
110
+ PID=<pid>
111
+ LOG=<run_dir>/codex.log
112
+ OUTPUT=<run_dir>/output.md
113
+ PROMPT=<run_dir>/prompt.md
114
+ COMMAND=<provider command>
115
+ ```
116
+
117
+ ### 3. Monitor Completion
118
+
119
+ The orchestrator may tail the log or wait for the PID. Do not mark story progress while the external executor is still running.
120
+
121
+ ### 4. Review Output and Diff
122
+
123
+ The orchestrator must read:
124
+
125
+ - `<run_dir>/output.md`
126
+ - `<run_dir>/<provider>.log`
127
+ - `git diff`
128
+
129
+ Then validate:
130
+
131
+ ```yaml
132
+ review_checklist:
133
+ - [ ] Every acceptance criterion is satisfied.
134
+ - [ ] Diff scope matches the story and prompt.
135
+ - [ ] Article IV No Invention: every change traces to a requirement.
136
+ - [ ] Tests were added or updated when behavior changed.
137
+ - [ ] Lint, typecheck, and relevant tests pass.
138
+ - [ ] No story state was mutated before review approval.
139
+ ```
140
+
141
+ ### 5. Accept or Iterate
142
+
143
+ - **Approved**: orchestrator updates story checkboxes, File List, status, and final validation evidence.
144
+ - **Rejected**: orchestrator writes specific feedback and may start a new run with a new slug or iteration suffix.
145
+
146
+ ## Anti-Patterns
147
+
148
+ - Marking a story done by trusting the executor summary without reading the diff.
149
+ - Delegating @product-lead, @quality-gate, @sprint-lead, or @devops authority to an external runtime.
150
+ - Letting the executor create PRs, push, release, or mutate story state.
151
+ - Delegating vague work without acceptance criteria and file scope.
152
+ - Running with `danger-full-access` unless the surrounding environment is externally sandboxed.