@jaimevalasek/aioson 1.3.0 → 1.5.1

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 (330) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/LICENSE +661 -21
  3. package/README.md +22 -3
  4. package/docs/en/squad-dashboard.md +372 -0
  5. package/docs/openclaw-bridge.md +308 -0
  6. package/docs/pt/README.md +62 -2
  7. package/docs/pt/advisor-spec.md +5 -5
  8. package/docs/pt/agentes-customizados.md +670 -0
  9. package/docs/pt/agentes.md +235 -23
  10. package/docs/pt/automacao-squads.md +407 -0
  11. package/docs/pt/cenarios.md +49 -5
  12. package/docs/pt/clientes-ai.md +62 -0
  13. package/docs/pt/comandos-cli.md +226 -17
  14. package/docs/pt/deyvin.md +115 -0
  15. package/docs/pt/genome-3.0-spec.md +11 -11
  16. package/docs/pt/inicio-rapido.md +63 -2
  17. package/docs/pt/memoria-contexto.md +255 -0
  18. package/docs/pt/output-strategy-delivery.md +655 -0
  19. package/docs/pt/profiler-system.md +17 -17
  20. package/docs/pt/runtime-observability.md +5 -1
  21. package/docs/pt/skills.md +175 -0
  22. package/docs/pt/squad-dashboard.md +373 -0
  23. package/docs/pt/{squad-genoma.md → squad-genome.md} +81 -75
  24. package/docs/testing/genome-2.0-matrix.md +5 -5
  25. package/docs/testing/genome-2.0-rollout.md +10 -10
  26. package/package.json +4 -4
  27. package/src/agents.js +21 -5
  28. package/src/backup-local.js +74 -0
  29. package/src/backup-provider.js +303 -0
  30. package/src/cli.js +276 -2
  31. package/src/commands/agents.js +22 -4
  32. package/src/commands/backup-local-cmd.js +25 -0
  33. package/src/commands/backup.js +533 -0
  34. package/src/commands/cloud.js +17 -17
  35. package/src/commands/context-pack.js +45 -0
  36. package/src/commands/implementation-plan.js +340 -0
  37. package/src/commands/learning.js +134 -0
  38. package/src/commands/live.js +1583 -0
  39. package/src/commands/runtime.js +1075 -2
  40. package/src/commands/scan-project.js +288 -24
  41. package/src/commands/setup-context.js +30 -2
  42. package/src/commands/skill.js +558 -0
  43. package/src/commands/squad-agent-create.js +788 -0
  44. package/src/commands/squad-daemon.js +209 -0
  45. package/src/commands/squad-dashboard.js +39 -0
  46. package/src/commands/squad-deploy.js +64 -0
  47. package/src/commands/squad-doctor.js +103 -1
  48. package/src/commands/squad-investigate.js +261 -0
  49. package/src/commands/squad-learning.js +209 -0
  50. package/src/commands/squad-mcp.js +270 -0
  51. package/src/commands/squad-pipeline.js +247 -1
  52. package/src/commands/squad-plan.js +329 -0
  53. package/src/commands/squad-processes.js +56 -0
  54. package/src/commands/squad-recovery.js +42 -0
  55. package/src/commands/squad-roi.js +291 -0
  56. package/src/commands/squad-score.js +250 -0
  57. package/src/commands/squad-status.js +38 -2
  58. package/src/commands/squad-validate.js +118 -1
  59. package/src/commands/squad-webhook.js +160 -0
  60. package/src/commands/squad-worker.js +191 -0
  61. package/src/commands/squad-worktrees.js +75 -0
  62. package/src/commands/test-agents.js +6 -1
  63. package/src/commands/web-map.js +70 -0
  64. package/src/commands/web-scrape.js +71 -0
  65. package/src/commands/workflow-next.js +8 -1
  66. package/src/commands/workflow-status.js +250 -0
  67. package/src/constants.js +88 -16
  68. package/src/context-memory.js +837 -0
  69. package/src/context-writer.js +47 -1
  70. package/src/delivery-runner.js +319 -0
  71. package/src/genome-files.js +1 -1
  72. package/src/genome-format.js +1 -1
  73. package/src/i18n/messages/en.js +333 -8
  74. package/src/i18n/messages/es.js +240 -6
  75. package/src/i18n/messages/fr.js +239 -5
  76. package/src/i18n/messages/pt-BR.js +330 -12
  77. package/src/installer.js +30 -2
  78. package/src/lib/genomes/compat.js +1 -1
  79. package/src/lib/webhook-server.js +328 -0
  80. package/src/mcp-connectors/registry.js +602 -0
  81. package/src/runtime-store.js +1037 -42
  82. package/src/session-handoff.js +77 -0
  83. package/src/squad/external-session.js +180 -0
  84. package/src/squad/inter-squad.js +74 -0
  85. package/src/squad/recovery-context.js +201 -0
  86. package/src/squad/worktree-manager.js +114 -0
  87. package/src/squad-daemon.js +490 -0
  88. package/src/squad-dashboard/api.js +223 -0
  89. package/src/squad-dashboard/attachment-handler.js +93 -0
  90. package/src/squad-dashboard/context-monitor.js +157 -0
  91. package/src/squad-dashboard/execution-logs.js +115 -0
  92. package/src/squad-dashboard/hunk-review.js +209 -0
  93. package/src/squad-dashboard/metrics.js +133 -0
  94. package/src/squad-dashboard/process-monitor.js +125 -0
  95. package/src/squad-dashboard/renderer.js +858 -0
  96. package/src/squad-dashboard/server.js +232 -0
  97. package/src/squad-dashboard/styles.js +525 -0
  98. package/src/squad-dashboard/token-tracker.js +99 -0
  99. package/src/web.js +284 -0
  100. package/src/worker-runner.js +339 -0
  101. package/template/.aioson/agents/analyst.md +40 -9
  102. package/template/.aioson/agents/architect.md +24 -5
  103. package/template/.aioson/agents/dev.md +254 -25
  104. package/template/.aioson/agents/deyvin.md +174 -0
  105. package/template/.aioson/agents/discovery-design-doc.md +25 -1
  106. package/template/.aioson/agents/{genoma.md → genome.md} +20 -20
  107. package/template/.aioson/agents/neo.md +152 -0
  108. package/template/.aioson/agents/orache.md +388 -0
  109. package/template/.aioson/agents/orchestrator.md +63 -2
  110. package/template/.aioson/agents/pair.md +5 -0
  111. package/template/.aioson/agents/pm.md +17 -5
  112. package/template/.aioson/agents/product.md +113 -29
  113. package/template/.aioson/agents/profiler-enricher.md +1 -1
  114. package/template/.aioson/agents/profiler-forge.md +9 -9
  115. package/template/.aioson/agents/profiler-researcher.md +1 -1
  116. package/template/.aioson/agents/qa.md +18 -5
  117. package/template/.aioson/agents/setup.md +138 -18
  118. package/template/.aioson/agents/sheldon.md +603 -0
  119. package/template/.aioson/agents/squad.md +866 -28
  120. package/template/.aioson/agents/tester.md +254 -0
  121. package/template/.aioson/agents/ux-ui.md +289 -34
  122. package/template/.aioson/config.md +181 -0
  123. package/template/.aioson/context/spec.md.template +17 -0
  124. package/template/.aioson/genomes/.gitkeep +0 -0
  125. package/template/.aioson/installed-skills/.gitkeep +0 -0
  126. package/template/.aioson/locales/en/agents/analyst.md +34 -4
  127. package/template/.aioson/locales/en/agents/architect.md +18 -0
  128. package/template/.aioson/locales/en/agents/dev.md +155 -11
  129. package/template/.aioson/locales/en/agents/deyvin.md +137 -0
  130. package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
  131. package/template/.aioson/locales/en/agents/neo.md +8 -0
  132. package/template/.aioson/locales/en/agents/orchestrator.md +62 -2
  133. package/template/.aioson/locales/en/agents/pair.md +5 -0
  134. package/template/.aioson/locales/en/agents/pm.md +7 -0
  135. package/template/.aioson/locales/en/agents/product.md +35 -17
  136. package/template/.aioson/locales/en/agents/qa.md +56 -0
  137. package/template/.aioson/locales/en/agents/setup.md +53 -6
  138. package/template/.aioson/locales/en/agents/sheldon.md +340 -0
  139. package/template/.aioson/locales/en/agents/squad.md +203 -15
  140. package/template/.aioson/locales/en/agents/ux-ui.md +383 -35
  141. package/template/.aioson/locales/es/agents/analyst.md +24 -4
  142. package/template/.aioson/locales/es/agents/architect.md +18 -0
  143. package/template/.aioson/locales/es/agents/dev.md +136 -9
  144. package/template/.aioson/locales/es/agents/deyvin.md +97 -0
  145. package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
  146. package/template/.aioson/locales/es/agents/neo.md +48 -0
  147. package/template/.aioson/locales/es/agents/orache.md +103 -0
  148. package/template/.aioson/locales/es/agents/orchestrator.md +62 -2
  149. package/template/.aioson/locales/es/agents/pair.md +5 -0
  150. package/template/.aioson/locales/es/agents/pm.md +7 -0
  151. package/template/.aioson/locales/es/agents/product.md +13 -3
  152. package/template/.aioson/locales/es/agents/qa.md +33 -0
  153. package/template/.aioson/locales/es/agents/setup.md +30 -6
  154. package/template/.aioson/locales/es/agents/sheldon.md +192 -0
  155. package/template/.aioson/locales/es/agents/squad.md +284 -15
  156. package/template/.aioson/locales/es/agents/ux-ui.md +34 -25
  157. package/template/.aioson/locales/fr/agents/analyst.md +24 -4
  158. package/template/.aioson/locales/fr/agents/architect.md +18 -0
  159. package/template/.aioson/locales/fr/agents/dev.md +136 -9
  160. package/template/.aioson/locales/fr/agents/deyvin.md +97 -0
  161. package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
  162. package/template/.aioson/locales/fr/agents/neo.md +48 -0
  163. package/template/.aioson/locales/fr/agents/orache.md +104 -0
  164. package/template/.aioson/locales/fr/agents/orchestrator.md +62 -2
  165. package/template/.aioson/locales/fr/agents/pair.md +5 -0
  166. package/template/.aioson/locales/fr/agents/pm.md +7 -0
  167. package/template/.aioson/locales/fr/agents/product.md +13 -3
  168. package/template/.aioson/locales/fr/agents/qa.md +33 -0
  169. package/template/.aioson/locales/fr/agents/setup.md +30 -6
  170. package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
  171. package/template/.aioson/locales/fr/agents/squad.md +279 -10
  172. package/template/.aioson/locales/fr/agents/ux-ui.md +34 -25
  173. package/template/.aioson/locales/pt-BR/agents/analyst.md +45 -4
  174. package/template/.aioson/locales/pt-BR/agents/architect.md +29 -0
  175. package/template/.aioson/locales/pt-BR/agents/dev.md +167 -15
  176. package/template/.aioson/locales/pt-BR/agents/deyvin.md +137 -0
  177. package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
  178. package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
  179. package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
  180. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +62 -2
  181. package/template/.aioson/locales/pt-BR/agents/pair.md +5 -0
  182. package/template/.aioson/locales/pt-BR/agents/pm.md +7 -0
  183. package/template/.aioson/locales/pt-BR/agents/product.md +43 -20
  184. package/template/.aioson/locales/pt-BR/agents/qa.md +67 -0
  185. package/template/.aioson/locales/pt-BR/agents/setup.md +53 -6
  186. package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
  187. package/template/.aioson/locales/pt-BR/agents/squad.md +591 -47
  188. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +369 -22
  189. package/template/.aioson/my-agents/.gitkeep +0 -0
  190. package/template/.aioson/rules/.gitkeep +0 -0
  191. package/template/.aioson/rules/squad/.gitkeep +0 -0
  192. package/template/.aioson/rules/squad/README.md +50 -0
  193. package/template/.aioson/schemas/genome-meta.schema.json +1 -1
  194. package/template/.aioson/schemas/genome.schema.json +1 -1
  195. package/template/.aioson/schemas/squad-blueprint.schema.json +32 -0
  196. package/template/.aioson/schemas/squad-manifest.schema.json +434 -1
  197. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
  198. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
  199. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
  200. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
  201. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
  202. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
  203. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
  204. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
  205. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
  206. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
  207. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
  208. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
  209. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
  210. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
  211. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
  212. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
  213. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +203 -0
  214. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
  215. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +407 -0
  216. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +272 -0
  217. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +524 -0
  218. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +277 -0
  219. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -0
  220. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +437 -0
  221. package/template/.aioson/skills/design/interface-design/SKILL.md +47 -0
  222. package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -0
  223. package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -0
  224. package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -0
  225. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -0
  226. package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -0
  227. package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -0
  228. package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -0
  229. package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -0
  230. package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -0
  231. package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -0
  232. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
  233. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
  234. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
  235. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
  236. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
  237. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
  238. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
  239. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
  240. package/template/.aioson/skills/design-system/SKILL.md +92 -0
  241. package/template/.aioson/skills/design-system/cognitive-core-ui.skill +0 -0
  242. package/template/.aioson/skills/design-system/components/SKILL.md +274 -0
  243. package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
  244. package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -0
  245. package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
  246. package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -0
  247. package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
  248. package/template/.aioson/skills/design-system/motion/SKILL.md +197 -0
  249. package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
  250. package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -0
  251. package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
  252. package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
  253. package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
  254. package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
  255. package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
  256. package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
  257. package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
  258. package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
  259. package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
  260. package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
  261. package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
  262. package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
  263. package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
  264. package/template/.aioson/skills/squad/SKILL.md +58 -0
  265. package/template/.aioson/skills/squad/domains/.gitkeep +0 -0
  266. package/template/.aioson/skills/squad/formats/.gitkeep +0 -0
  267. package/template/.aioson/skills/squad/formats/catalog.json +15 -0
  268. package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
  269. package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
  270. package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
  271. package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
  272. package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
  273. package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
  274. package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
  275. package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
  276. package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
  277. package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
  278. package/template/.aioson/skills/squad/patterns/.gitkeep +0 -0
  279. package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
  280. package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
  281. package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
  282. package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
  283. package/template/.aioson/skills/squad/references/.gitkeep +0 -0
  284. package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
  285. package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
  286. package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
  287. package/template/.aioson/skills/static/debugging-protocol.md +42 -0
  288. package/template/.aioson/skills/static/git-worktrees.md +36 -0
  289. package/template/.aioson/tasks/implementation-plan.md +307 -0
  290. package/template/.aioson/tasks/squad-create.md +1 -1
  291. package/template/.aioson/tasks/squad-design.md +28 -0
  292. package/template/.aioson/tasks/squad-execution-plan.md +279 -0
  293. package/template/.aioson/tasks/squad-export.md +1 -1
  294. package/template/.aioson/tasks/squad-investigate.md +44 -0
  295. package/template/.aioson/tasks/squad-learning-review.md +44 -0
  296. package/template/.aioson/tasks/squad-output-config.md +177 -0
  297. package/template/.aioson/tasks/squad-profile.md +48 -0
  298. package/template/.aioson/tasks/squad-review.md +61 -0
  299. package/template/.aioson/tasks/squad-task-decompose.md +66 -0
  300. package/template/.aioson/tasks/squad-validate.md +1 -1
  301. package/template/.claude/commands/aioson/agent/deyvin.md +5 -0
  302. package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -0
  303. package/template/.claude/commands/aioson/agent/genome.md +5 -0
  304. package/template/.claude/commands/aioson/agent/neo.md +5 -0
  305. package/template/.claude/commands/aioson/agent/product.md +5 -0
  306. package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -0
  307. package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -0
  308. package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -0
  309. package/template/.claude/commands/aioson/agent/squad.md +5 -0
  310. package/template/.claude/commands/aioson/agent/tester.md +5 -0
  311. package/template/.gemini/GEMINI.md +3 -0
  312. package/template/.gemini/commands/aios-deyvin.toml +6 -0
  313. package/template/.gemini/commands/aios-neo.toml +4 -0
  314. package/template/.gemini/commands/aios-pair.toml +6 -0
  315. package/template/.gemini/commands/aios-tester.toml +6 -0
  316. package/template/AGENTS.md +37 -6
  317. package/template/CLAUDE.md +34 -4
  318. package/template/OPENCODE.md +8 -2
  319. package/template/squad-searches/.gitkeep +0 -0
  320. package/template/.aioson/skills/static/interface-design.md +0 -372
  321. package/template/.aioson/skills/static/premium-command-center-ui.md +0 -190
  322. /package/template/.aioson/{genomas → docs}/.gitkeep +0 -0
  323. /package/template/.claude/commands/aioson/{analyst.md → agent/analyst.md} +0 -0
  324. /package/template/.claude/commands/aioson/{architect.md → agent/architect.md} +0 -0
  325. /package/template/.claude/commands/aioson/{dev.md → agent/dev.md} +0 -0
  326. /package/template/.claude/commands/aioson/{orchestrator.md → agent/orchestrator.md} +0 -0
  327. /package/template/.claude/commands/aioson/{pm.md → agent/pm.md} +0 -0
  328. /package/template/.claude/commands/aioson/{qa.md → agent/qa.md} +0 -0
  329. /package/template/.claude/commands/aioson/{setup.md → agent/setup.md} +0 -0
  330. /package/template/.claude/commands/aioson/{ux-ui.md → agent/ux-ui.md} +0 -0
@@ -0,0 +1,136 @@
1
+ # Notification Center Component
2
+
3
+ Bell icon with unread count badge + toggle for the notification panel dropdown.
4
+
5
+ ## Anatomy
6
+
7
+ ```
8
+ 🔔 [3] ← no notifications: 🔔 only
9
+ 🔔 [!] ← critical: red badge
10
+ ```
11
+
12
+ ## States
13
+
14
+ | State | Bell | Badge |
15
+ |-------|------|-------|
16
+ | No notifications | muted color | hidden |
17
+ | Has unread | normal color | accent bg, count |
18
+ | Has critical unread | normal color | red bg, count |
19
+ | Panel open | accent bg | same |
20
+
21
+ ## HTML Structure
22
+
23
+ ```html
24
+ <div class="notif-center">
25
+ <button class="notif-bell" id="notif-bell" aria-label="Notifications" aria-expanded="false">
26
+ <!-- Bell SVG or emoji -->
27
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
28
+ <path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/>
29
+ <path d="M13.73 21a2 2 0 0 1-3.46 0"/>
30
+ </svg>
31
+ </button>
32
+
33
+ <!-- Badge — hidden when count = 0 -->
34
+ <span class="notif-badge" id="notif-badge" hidden>3</span>
35
+
36
+ <!-- Panel wrapper — shown on bell click -->
37
+ <div class="notif-panel-wrapper" id="notif-panel-wrapper">
38
+ <!-- Insert notification-panel.md pattern here -->
39
+ </div>
40
+ </div>
41
+ ```
42
+
43
+ ## CSS
44
+
45
+ ```css
46
+ .notif-center {
47
+ position: relative;
48
+ display: inline-flex;
49
+ }
50
+
51
+ .notif-bell {
52
+ width: 36px;
53
+ height: 36px;
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ border-radius: 6px;
58
+ cursor: pointer;
59
+ color: var(--text-muted);
60
+ background: none;
61
+ border: none;
62
+ transition: background 0.15s, color 0.15s;
63
+ }
64
+
65
+ .notif-bell:hover {
66
+ background: var(--bg-hover);
67
+ color: var(--text);
68
+ }
69
+
70
+ .notif-bell[aria-expanded="true"] {
71
+ background: var(--accent-dim);
72
+ color: var(--accent);
73
+ }
74
+
75
+ .notif-badge {
76
+ position: absolute;
77
+ top: 2px;
78
+ right: 2px;
79
+ min-width: 16px;
80
+ height: 16px;
81
+ border-radius: 8px;
82
+ background: var(--accent);
83
+ color: #fff;
84
+ font-size: 10px;
85
+ font-weight: 700;
86
+ line-height: 16px;
87
+ text-align: center;
88
+ padding: 0 4px;
89
+ pointer-events: none;
90
+ }
91
+
92
+ .notif-badge.critical {
93
+ background: var(--danger);
94
+ }
95
+
96
+ .notif-panel-wrapper {
97
+ position: absolute;
98
+ top: calc(100% + 8px);
99
+ right: 0;
100
+ z-index: 500;
101
+ display: none;
102
+ }
103
+
104
+ .notif-panel-wrapper.open {
105
+ display: block;
106
+ }
107
+ ```
108
+
109
+ ## Interaction (JS spec)
110
+
111
+ ```javascript
112
+ // Toggle panel on bell click
113
+ bellBtn.addEventListener('click', function() {
114
+ const isOpen = wrapper.classList.toggle('open');
115
+ bellBtn.setAttribute('aria-expanded', String(isOpen));
116
+ });
117
+
118
+ // Close on outside click
119
+ document.addEventListener('click', function(e) {
120
+ if (!notifCenter.contains(e.target)) {
121
+ wrapper.classList.remove('open');
122
+ bellBtn.setAttribute('aria-expanded', 'false');
123
+ }
124
+ });
125
+
126
+ // Update badge
127
+ function setNotifCount(count, hasCritical) {
128
+ badge.hidden = count === 0;
129
+ badge.textContent = count > 99 ? '99+' : String(count);
130
+ badge.classList.toggle('critical', hasCritical);
131
+ }
132
+ ```
133
+
134
+ ## Placement
135
+
136
+ Place in the top-right of the dashboard header bar. Keep 8px gap from other header icons.
@@ -0,0 +1,188 @@
1
+ # Review Action Bar Component
2
+
3
+ Approve / Reject / Comment bar shown at the bottom of each diff hunk in the review workflow.
4
+
5
+ ## Anatomy
6
+
7
+ ```
8
+ ┌────────────────────────────────────────────────────────┐
9
+ │ Hunk 2/4 · @@ -45,7 +45,9 @@ [✓ Approve] [✗ Reject] [💬 Comment] │
10
+ └────────────────────────────────────────────────────────┘
11
+ ```
12
+
13
+ ## States
14
+
15
+ | State | Approve btn | Reject btn | Comment btn |
16
+ |-------|------------|-----------|------------|
17
+ | `pending` | outlined | outlined | outlined |
18
+ | `approved` | filled green | dimmed | dimmed |
19
+ | `rejected` | dimmed | filled red | normal (comment may be shown) |
20
+ | `revised` | outlined | outlined | amber tint |
21
+
22
+ ## HTML Structure
23
+
24
+ ```html
25
+ <div class="review-action-bar" data-hunk-id="hunk-2" data-status="pending">
26
+ <span class="review-hunk-label">Hunk 2/4 &nbsp;·&nbsp; @@ -45,7 +45,9 @@</span>
27
+
28
+ <div class="review-actions">
29
+ <button class="review-btn approve" data-action="approve">
30
+ ✓ Approve
31
+ </button>
32
+ <button class="review-btn reject" data-action="reject">
33
+ ✗ Reject
34
+ </button>
35
+ <button class="review-btn comment" data-action="comment">
36
+ 💬 Comment
37
+ </button>
38
+ </div>
39
+ </div>
40
+
41
+ <!-- Comment expansion (hidden by default, shown when comment clicked) -->
42
+ <div class="review-comment-box" hidden>
43
+ <textarea class="review-comment-input" placeholder="Leave a comment..."></textarea>
44
+ <div class="review-comment-actions">
45
+ <button class="review-btn comment active">Send</button>
46
+ <button class="review-btn" data-action="cancel-comment">Cancel</button>
47
+ </div>
48
+ </div>
49
+ ```
50
+
51
+ ## CSS
52
+
53
+ ```css
54
+ .review-action-bar {
55
+ display: flex;
56
+ align-items: center;
57
+ gap: 8px;
58
+ padding: 8px 12px;
59
+ background: var(--bg-hover);
60
+ border-top: 1px solid var(--border);
61
+ border-radius: 0 0 6px 6px;
62
+ }
63
+
64
+ .review-hunk-label {
65
+ flex: 1;
66
+ font-size: 11px;
67
+ font-family: monospace;
68
+ color: var(--text-muted);
69
+ overflow: hidden;
70
+ text-overflow: ellipsis;
71
+ white-space: nowrap;
72
+ }
73
+
74
+ .review-actions {
75
+ display: flex;
76
+ gap: 6px;
77
+ flex-shrink: 0;
78
+ }
79
+
80
+ .review-btn {
81
+ padding: 4px 12px;
82
+ border-radius: 4px;
83
+ font-size: 12px;
84
+ cursor: pointer;
85
+ border: 1px solid var(--border);
86
+ background: none;
87
+ color: var(--text-muted);
88
+ transition: all 0.15s;
89
+ display: flex;
90
+ align-items: center;
91
+ gap: 4px;
92
+ }
93
+
94
+ .review-btn:hover {
95
+ color: var(--text);
96
+ border-color: var(--text-muted);
97
+ }
98
+
99
+ /* Approve */
100
+ .review-btn.approve:hover,
101
+ .review-btn.approve.active {
102
+ background: rgba(74, 222, 128, 0.15);
103
+ color: var(--success);
104
+ border-color: var(--success);
105
+ }
106
+
107
+ /* Reject */
108
+ .review-btn.reject:hover,
109
+ .review-btn.reject.active {
110
+ background: rgba(248, 113, 113, 0.15);
111
+ color: var(--danger);
112
+ border-color: var(--danger);
113
+ }
114
+
115
+ /* Comment */
116
+ .review-btn.comment:hover,
117
+ .review-btn.comment.active {
118
+ background: rgba(192, 132, 252, 0.15);
119
+ color: var(--purple, #c084fc);
120
+ border-color: var(--purple, #c084fc);
121
+ }
122
+
123
+ .review-btn:disabled {
124
+ opacity: 0.35;
125
+ cursor: not-allowed;
126
+ }
127
+
128
+ /* Comment box */
129
+ .review-comment-box {
130
+ padding: 10px 12px;
131
+ background: var(--bg-card);
132
+ border-top: 1px solid var(--border);
133
+ }
134
+
135
+ .review-comment-input {
136
+ width: 100%;
137
+ min-height: 64px;
138
+ background: var(--bg-hover);
139
+ border: 1px solid var(--border);
140
+ border-radius: 4px;
141
+ color: var(--text);
142
+ font-size: 13px;
143
+ padding: 8px 10px;
144
+ resize: vertical;
145
+ font-family: var(--font, monospace);
146
+ }
147
+
148
+ .review-comment-input:focus {
149
+ outline: none;
150
+ border-color: var(--accent);
151
+ }
152
+
153
+ .review-comment-actions {
154
+ display: flex;
155
+ gap: 8px;
156
+ margin-top: 8px;
157
+ justify-content: flex-end;
158
+ }
159
+ ```
160
+
161
+ ## Progress Indicator
162
+
163
+ Show overall review progress above the hunk list:
164
+
165
+ ```html
166
+ <div class="review-progress">
167
+ <span class="review-progress-label">2 / 4 hunks reviewed</span>
168
+ <div class="review-progress-bar">
169
+ <div class="review-progress-fill" style="width: 50%"></div>
170
+ </div>
171
+ </div>
172
+ ```
173
+
174
+ ```css
175
+ .review-progress { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
176
+ .review-progress-label { font-size: 12px; color: var(--text-muted); white-space: nowrap; }
177
+ .review-progress-bar { flex: 1; height: 4px; background: var(--bg-hover); border-radius: 2px; }
178
+ .review-progress-fill { height: 100%; background: var(--accent); border-radius: 2px; transition: width 0.3s; }
179
+ /* All done: green */
180
+ [data-all-done] .review-progress-fill { background: var(--success); }
181
+ ```
182
+
183
+ ## Interaction notes
184
+
185
+ - When `approve` is clicked, add `.active` to approve btn, add `disabled` to reject.
186
+ - When `reject` is clicked, add `.active` to reject btn, optionally auto-open comment box for rejection reason.
187
+ - Click outside comment box or Cancel: collapse it, clear textarea.
188
+ - Sending a comment does NOT change approval state — it's independent.
@@ -0,0 +1,131 @@
1
+ # Team Switcher Component
2
+
3
+ Sidebar squad navigation. Shows all squads, highlights the active one, displays mode badge and agent count.
4
+
5
+ ## Anatomy
6
+
7
+ ```
8
+ ─ Squads ─────────────────
9
+ ● Alpha Squad [software] 3 agents ← active (accent border + bg)
10
+ Bravo Squad [content] 2 agents
11
+ Gamma Squad [research] 1 agent
12
+ ──────────────────────────
13
+ + New Squad
14
+ ```
15
+
16
+ ## HTML Structure
17
+
18
+ ```html
19
+ <nav class="team-switcher">
20
+ <div class="team-switcher-header">Squads</div>
21
+
22
+ <a class="team-item active" href="/squad/alpha">
23
+ <div class="team-name">Alpha Squad</div>
24
+ <div class="team-meta">
25
+ <span class="mode-badge mode-software">software</span>
26
+ <span class="agent-count">3 agents</span>
27
+ </div>
28
+ </a>
29
+
30
+ <a class="team-item" href="/squad/bravo">
31
+ <div class="team-name">Bravo Squad</div>
32
+ <div class="team-meta">
33
+ <span class="mode-badge mode-content">content</span>
34
+ <span class="agent-count">2 agents</span>
35
+ </div>
36
+ </a>
37
+
38
+ <div class="team-switcher-divider"></div>
39
+ <a class="team-item team-item-new" href="/squad/new">+ New Squad</a>
40
+ </nav>
41
+ ```
42
+
43
+ ## CSS
44
+
45
+ ```css
46
+ .team-switcher {
47
+ width: 240px;
48
+ }
49
+
50
+ .team-switcher-header {
51
+ font-size: 11px;
52
+ text-transform: uppercase;
53
+ color: var(--text-muted);
54
+ padding: 0 16px 8px;
55
+ letter-spacing: 0.5px;
56
+ }
57
+
58
+ .team-item {
59
+ display: block;
60
+ padding: 8px 16px;
61
+ border-radius: 6px;
62
+ cursor: pointer;
63
+ text-decoration: none;
64
+ color: var(--text);
65
+ margin: 1px 8px;
66
+ border-left: 2px solid transparent;
67
+ transition: background 0.12s, border-color 0.12s;
68
+ }
69
+
70
+ .team-item:hover {
71
+ background: var(--bg-hover);
72
+ text-decoration: none;
73
+ }
74
+
75
+ .team-item.active {
76
+ background: var(--accent-dim);
77
+ border-left-color: var(--accent);
78
+ color: var(--accent);
79
+ }
80
+
81
+ .team-item.active .team-name { color: var(--accent); }
82
+
83
+ .team-name {
84
+ font-size: 13px;
85
+ font-weight: 500;
86
+ }
87
+
88
+ .team-meta {
89
+ display: flex;
90
+ align-items: center;
91
+ gap: 6px;
92
+ margin-top: 3px;
93
+ }
94
+
95
+ /* Mode badges */
96
+ .mode-badge {
97
+ font-size: 10px;
98
+ padding: 1px 5px;
99
+ border-radius: 3px;
100
+ font-weight: 500;
101
+ }
102
+
103
+ .mode-software { background: rgba(74, 222, 128, 0.15); color: var(--success); }
104
+ .mode-content { background: rgba(108, 138, 255, 0.15); color: var(--accent); }
105
+ .mode-research { background: rgba(251, 191, 36, 0.15); color: var(--warning); }
106
+ .mode-mixed { background: var(--bg-hover); color: var(--text-muted); }
107
+
108
+ .agent-count {
109
+ font-size: 11px;
110
+ color: var(--text-muted);
111
+ }
112
+
113
+ .team-switcher-divider {
114
+ height: 1px;
115
+ background: var(--border);
116
+ margin: 8px 16px;
117
+ }
118
+
119
+ .team-item-new {
120
+ font-size: 12px;
121
+ color: var(--text-muted);
122
+ }
123
+
124
+ .team-item-new:hover { color: var(--accent); }
125
+ ```
126
+
127
+ ## Interaction notes
128
+
129
+ - Active item has `border-left: 2px solid var(--accent)` — requires `margin-left: 8px` on items to preserve alignment.
130
+ - On narrow screens (< 768px) the sidebar hides; team switcher may move to a top dropdown.
131
+ - Optionally show an unread notification dot on squad items: small `6px` circle (accent color) after the agent count.
@@ -0,0 +1,198 @@
1
+ # Agent Message Thread Pattern
2
+
3
+ Inter-squad message feed. Displays communication between agents across squads in a vertical timeline.
4
+
5
+ ## Layout
6
+
7
+ Vertical thread, chronological (oldest at top, newest at bottom). Each message: avatar (agent-badge) on left, message bubble on right. Optional timeline connector line between items.
8
+
9
+ ```
10
+ ⚡ ┌─ writer · alpha-squad · 2m ago ─────────────────────┐
11
+ │ Here's the draft PRD. @planner please review §3. │
12
+ │ Related: #write-prd │
13
+ │ 👍 2 ✅ 1 💬 1 reply │
14
+ └───────────────────────────────────────────────────────┘
15
+
16
+ 👤 ┌─ planner · alpha-squad · 1m ago ─────────────────────┐
17
+ │ Section 3 looks good. Forwarding to @bravo-squad │
18
+ │ for implementation estimates. │
19
+ └───────────────────────────────────────────────────────┘
20
+ ```
21
+
22
+ ## Message Types
23
+
24
+ | Type | Visual treatment |
25
+ |------|-----------------|
26
+ | `message` | Standard bubble |
27
+ | `handoff` | Special card: `→ from → to`, summary, task reference |
28
+ | `decision` | Highlighted with left border (accent), bold label "Decision" |
29
+ | `milestone` | Green left border, italic summary |
30
+
31
+ ## HTML Structure
32
+
33
+ ### Standard message
34
+
35
+ ```html
36
+ <div class="thread">
37
+
38
+ <!-- Standard message -->
39
+ <div class="thread-msg" data-type="message">
40
+ <div class="thread-msg-avatar">
41
+ <span class="agent-badge agent-badge-auto sm">⚡</span>
42
+ </div>
43
+ <div class="thread-msg-bubble">
44
+ <div class="thread-msg-header">
45
+ writer &nbsp;·&nbsp; alpha-squad &nbsp;·&nbsp; 2m ago
46
+ </div>
47
+ <div class="thread-msg-body">
48
+ Here's the draft PRD.
49
+ <span class="mention mention-agent">@planner</span>
50
+ please review §3. Related:
51
+ <span class="mention mention-task">#write-prd</span>
52
+ </div>
53
+ <div class="thread-reactions">
54
+ <button class="reaction-btn">👍 2</button>
55
+ <button class="reaction-btn">✅ 1</button>
56
+ <button class="reaction-btn">💬 1 reply</button>
57
+ </div>
58
+ </div>
59
+ </div>
60
+
61
+ <!-- Handoff message -->
62
+ <div class="thread-msg thread-msg-handoff" data-type="handoff">
63
+ <div class="thread-msg-avatar">
64
+ <span class="agent-badge agent-badge-auto sm">⚡</span>
65
+ </div>
66
+ <div class="thread-msg-bubble">
67
+ <div class="thread-msg-header">orchestrator &nbsp;·&nbsp; 30s ago</div>
68
+ <div class="thread-handoff-card">
69
+ <span class="handoff-from">analyst</span>
70
+ <span class="handoff-arrow">→</span>
71
+ <span class="handoff-to">architect</span>
72
+ <span class="handoff-task">#discovery-phase</span>
73
+ </div>
74
+ <div class="thread-msg-body">Discovery complete. Passing findings to architect.</div>
75
+ </div>
76
+ </div>
77
+
78
+ <!-- Decision message -->
79
+ <div class="thread-msg thread-msg-decision" data-type="decision">
80
+ <div class="thread-msg-avatar">
81
+ <span class="agent-badge agent-badge-human sm">👤</span>
82
+ </div>
83
+ <div class="thread-msg-bubble">
84
+ <div class="thread-msg-header">pm &nbsp;·&nbsp; alpha-squad &nbsp;·&nbsp; 5m ago</div>
85
+ <div class="thread-decision-label">Decision</div>
86
+ <div class="thread-msg-body">Use SQLite for local storage. Rationale: zero infra overhead.</div>
87
+ </div>
88
+ </div>
89
+
90
+ </div>
91
+ ```
92
+
93
+ ## CSS
94
+
95
+ ```css
96
+ .thread {
97
+ display: flex;
98
+ flex-direction: column;
99
+ gap: 12px;
100
+ }
101
+
102
+ .thread-msg {
103
+ display: flex;
104
+ gap: 10px;
105
+ align-items: flex-start;
106
+ }
107
+
108
+ .thread-msg-avatar {
109
+ flex-shrink: 0;
110
+ padding-top: 2px;
111
+ }
112
+
113
+ .thread-msg-bubble {
114
+ background: var(--bg-card);
115
+ border: 1px solid var(--border);
116
+ border-radius: 8px;
117
+ padding: 10px 14px;
118
+ flex: 1;
119
+ min-width: 0;
120
+ }
121
+
122
+ .thread-msg-header {
123
+ font-size: 11px;
124
+ color: var(--text-muted);
125
+ margin-bottom: 5px;
126
+ }
127
+
128
+ .thread-msg-body {
129
+ font-size: 13px;
130
+ line-height: 1.55;
131
+ word-wrap: break-word;
132
+ }
133
+
134
+ /* Mention styles — see mention-autocomplete.md */
135
+ .mention { padding: 1px 4px; border-radius: 3px; font-weight: 500; }
136
+ .mention-agent { background: var(--accent-dim); color: var(--accent); }
137
+ .mention-squad { background: rgba(34,211,238,0.10); color: #22d3ee; }
138
+ .mention-task { background: rgba(192,132,252,0.10); color: #c084fc; }
139
+
140
+ /* Reactions */
141
+ .thread-reactions {
142
+ display: flex;
143
+ gap: 6px;
144
+ margin-top: 8px;
145
+ flex-wrap: wrap;
146
+ }
147
+
148
+ .reaction-btn {
149
+ background: var(--bg-hover);
150
+ border: 1px solid var(--border);
151
+ border-radius: 12px;
152
+ padding: 2px 8px;
153
+ font-size: 12px;
154
+ cursor: pointer;
155
+ color: var(--text-muted);
156
+ transition: border-color 0.15s;
157
+ }
158
+
159
+ .reaction-btn:hover { border-color: var(--accent); color: var(--text); }
160
+
161
+ /* Handoff card */
162
+ .thread-msg-handoff .thread-msg-bubble { border-color: var(--accent); }
163
+ .thread-handoff-card {
164
+ display: flex;
165
+ align-items: center;
166
+ gap: 8px;
167
+ padding: 6px 0;
168
+ margin-bottom: 6px;
169
+ font-size: 13px;
170
+ font-weight: 500;
171
+ }
172
+ .handoff-arrow { color: var(--accent); font-size: 16px; }
173
+ .handoff-from, .handoff-to { font-family: monospace; }
174
+ .handoff-task { font-size: 11px; color: #c084fc; margin-left: 4px; }
175
+
176
+ /* Decision card */
177
+ .thread-msg-decision .thread-msg-bubble {
178
+ border-left: 3px solid var(--accent);
179
+ }
180
+ .thread-decision-label {
181
+ font-size: 10px;
182
+ text-transform: uppercase;
183
+ color: var(--accent);
184
+ letter-spacing: 0.5px;
185
+ margin-bottom: 4px;
186
+ }
187
+
188
+ /* Milestone */
189
+ .thread-msg[data-type="milestone"] .thread-msg-bubble {
190
+ border-left: 3px solid var(--success);
191
+ }
192
+ ```
193
+
194
+ ## Interaction notes
195
+
196
+ - "Reply" button expands an inline thread (nested `.thread` with `margin-left: 36px`).
197
+ - Reactions are togglable: clicking one you already gave removes it (add `active` class + accent fill).
198
+ - For long threads (> 30 messages), virtualize or paginate. Show "Load earlier" at top.