@su-record/vibe 2.16.4 → 3.1.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 (607) hide show
  1. package/CLAUDE.md +8 -8
  2. package/README.en.md +46 -29
  3. package/README.md +41 -24
  4. package/agents/acceptance-tester.md +56 -0
  5. package/agents/architect.md +25 -67
  6. package/agents/build-error-resolver.md +28 -97
  7. package/agents/code-reviewer.md +89 -0
  8. package/agents/diagrammer.md +34 -169
  9. package/agents/documenter.md +43 -0
  10. package/agents/e2e-tester.md +46 -281
  11. package/agents/event/event-ops.md +54 -77
  12. package/agents/event/event-planner.md +63 -0
  13. package/agents/figma/figma-engineer.md +76 -0
  14. package/agents/implementer.md +26 -41
  15. package/agents/security-reviewer.md +56 -0
  16. package/agents/tester.md +37 -33
  17. package/agents/ui/design-reviewer.md +62 -0
  18. package/agents/ui/design-system-gen.md +63 -0
  19. package/dist/cli/commands/remove.d.ts.map +1 -1
  20. package/dist/cli/commands/remove.js +8 -10
  21. package/dist/cli/commands/remove.js.map +1 -1
  22. package/dist/cli/index.d.ts +0 -4
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +0 -4
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/llm/model-refresh.js +1 -1
  27. package/dist/cli/llm/model-refresh.js.map +1 -1
  28. package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
  29. package/dist/cli/postinstall/claude-agents.js +16 -77
  30. package/dist/cli/postinstall/claude-agents.js.map +1 -1
  31. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  32. package/dist/cli/postinstall/constants.js +80 -296
  33. package/dist/cli/postinstall/constants.js.map +1 -1
  34. package/dist/cli/postinstall/cursor-agents.d.ts +5 -0
  35. package/dist/cli/postinstall/cursor-agents.d.ts.map +1 -1
  36. package/dist/cli/postinstall/cursor-agents.js +26 -68
  37. package/dist/cli/postinstall/cursor-agents.js.map +1 -1
  38. package/dist/cli/postinstall/cursor-skills.d.ts.map +1 -1
  39. package/dist/cli/postinstall/cursor-skills.js +26 -30
  40. package/dist/cli/postinstall/cursor-skills.js.map +1 -1
  41. package/dist/cli/postinstall/main.d.ts.map +1 -1
  42. package/dist/cli/postinstall/main.js +0 -2
  43. package/dist/cli/postinstall/main.js.map +1 -1
  44. package/dist/cli/setup/Provisioner.d.ts.map +1 -1
  45. package/dist/cli/setup/Provisioner.js +19 -21
  46. package/dist/cli/setup/Provisioner.js.map +1 -1
  47. package/dist/cli/utils.d.ts +4 -1
  48. package/dist/cli/utils.d.ts.map +1 -1
  49. package/dist/cli/utils.js +4 -1
  50. package/dist/cli/utils.js.map +1 -1
  51. package/dist/infra/lib/FrameworkDetector.js +4 -4
  52. package/dist/infra/lib/FrameworkDetector.js.map +1 -1
  53. package/dist/infra/lib/OrchestrateWorkflow.js +2 -2
  54. package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
  55. package/dist/infra/lib/browser/launch.js +1 -1
  56. package/dist/infra/lib/browser/launch.js.map +1 -1
  57. package/dist/infra/lib/browser/types.d.ts +1 -1
  58. package/dist/infra/lib/browser/types.js +1 -1
  59. package/dist/infra/lib/constants.d.ts +1 -1
  60. package/dist/infra/lib/constants.d.ts.map +1 -1
  61. package/dist/infra/lib/constants.js +4 -5
  62. package/dist/infra/lib/constants.js.map +1 -1
  63. package/dist/infra/lib/evolution/__tests__/integration.test.js +7 -7
  64. package/dist/infra/lib/evolution/__tests__/integration.test.js.map +1 -1
  65. package/dist/infra/lib/memory/index.d.ts +0 -2
  66. package/dist/infra/lib/memory/index.d.ts.map +1 -1
  67. package/dist/infra/lib/memory/index.js +0 -2
  68. package/dist/infra/lib/memory/index.js.map +1 -1
  69. package/dist/infra/lib/telemetry/SkillTelemetry.test.js +1 -1
  70. package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
  71. package/dist/tools/index.d.ts +0 -4
  72. package/dist/tools/index.d.ts.map +1 -1
  73. package/dist/tools/index.js +0 -4
  74. package/dist/tools/index.js.map +1 -1
  75. package/dist/tools/memory/autoSaveContext.d.ts +0 -1
  76. package/dist/tools/memory/autoSaveContext.d.ts.map +1 -1
  77. package/dist/tools/memory/autoSaveContext.js +13 -27
  78. package/dist/tools/memory/autoSaveContext.js.map +1 -1
  79. package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -78
  80. package/hooks/scripts/__tests__/.vibe/memories/memories.db +0 -0
  81. package/hooks/scripts/__tests__/.vibe/memories/memories.db-shm +0 -0
  82. package/hooks/scripts/__tests__/.vibe/memories/memories.db-wal +0 -0
  83. package/hooks/scripts/__tests__/clone-behaviors.test.js +64 -0
  84. package/hooks/scripts/__tests__/clone-merge-responsive.test.js +106 -0
  85. package/hooks/scripts/__tests__/code-check-detectors.test.js +2 -2
  86. package/hooks/scripts/__tests__/run-ledger.test.js +1 -1
  87. package/hooks/scripts/__tests__/scope-from-spec.test.js +12 -12
  88. package/hooks/scripts/__tests__/step-counter.test.js +1 -1
  89. package/hooks/scripts/clone-extract.js +242 -28
  90. package/hooks/scripts/clone-merge-responsive.js +184 -0
  91. package/hooks/scripts/clone-spec.js +33 -8
  92. package/hooks/scripts/clone-validate.js +15 -9
  93. package/hooks/scripts/code-check.js +16 -203
  94. package/hooks/scripts/context-save.js +0 -11
  95. package/hooks/scripts/lib/scope-from-spec.js +9 -6
  96. package/hooks/scripts/post-edit-dispatcher.js +1 -1
  97. package/hooks/scripts/prompt-dispatcher.js +7 -18
  98. package/hooks/scripts/session-start.js +25 -35
  99. package/package.json +6 -5
  100. package/skills/agents-md/SKILL.md +62 -15
  101. package/skills/arch-guard/SKILL.md +1 -1
  102. package/skills/brand-assets/SKILL.md +2 -2
  103. package/skills/capability-loop/SKILL.md +1 -1
  104. package/skills/chub-usage/SKILL.md +1 -1
  105. package/skills/clone/SKILL.md +132 -55
  106. package/skills/commerce-patterns/SKILL.md +2 -2
  107. package/skills/commit-push-pr/SKILL.md +0 -1
  108. package/skills/context7-usage/SKILL.md +1 -1
  109. package/skills/design-refine/SKILL.md +140 -0
  110. package/skills/{design-polish → design-refine}/templates/polish-report.md +1 -1
  111. package/skills/{design-normalize → design-refine}/templates/token-audit.md +3 -3
  112. package/skills/design-review/SKILL.md +143 -0
  113. package/skills/{design-audit → design-review}/agents/a11y-auditor.md +1 -1
  114. package/skills/{design-audit → design-review}/agents/performance-auditor.md +1 -1
  115. package/skills/{design-audit → design-review}/agents/responsive-auditor.md +1 -1
  116. package/skills/{design-audit → design-review}/agents/slop-detector.md +1 -1
  117. package/skills/{design-audit → design-review}/frameworks/core-web-vitals.md +1 -1
  118. package/skills/{design-audit → design-review}/frameworks/wcag-checklist.md +1 -1
  119. package/skills/{design-audit → design-review}/orchestrator.md +3 -3
  120. package/skills/{design-critique → design-review}/templates/critique-report.md +3 -3
  121. package/skills/{design-audit → design-review}/templates/report.md +3 -3
  122. package/skills/design-teach/SKILL.md +11 -11
  123. package/skills/docs/SKILL.md +14 -16
  124. package/skills/e2e-commerce/SKILL.md +1 -1
  125. package/skills/event-comms/SKILL.md +1 -1
  126. package/skills/event-ops/SKILL.md +2 -2
  127. package/skills/event-planning/SKILL.md +1 -1
  128. package/skills/exec-plan/SKILL.md +2 -2
  129. package/skills/figma/SKILL.md +240 -148
  130. package/skills/figma/rubrics/css-mapping.md +125 -0
  131. package/skills/git-worktree/SKILL.md +1 -1
  132. package/skills/handoff/SKILL.md +1 -1
  133. package/skills/parallel-research/SKILL.md +14 -28
  134. package/skills/priority-todos/SKILL.md +1 -1
  135. package/skills/regress/SKILL.md +11 -0
  136. package/skills/restraint/SKILL.md +72 -0
  137. package/skills/seo-checklist/SKILL.md +2 -2
  138. package/skills/spec/SKILL.md +65 -836
  139. package/skills/test/SKILL.md +3 -3
  140. package/skills/tool-fallback/SKILL.md +2 -2
  141. package/skills/vercel-react-best-practices/SKILL.md +1 -1
  142. package/skills/vibe/SKILL.md +20 -35
  143. package/skills/vibe.analyze/SKILL.md +7 -9
  144. package/skills/vibe.clone/SKILL.md +39 -19
  145. package/skills/vibe.docs/SKILL.md +1 -1
  146. package/skills/vibe.event/SKILL.md +27 -27
  147. package/skills/vibe.figma/SKILL.md +14 -18
  148. package/skills/vibe.harness/SKILL.md +5 -5
  149. package/skills/vibe.reason/SKILL.md +0 -2
  150. package/skills/vibe.review/SKILL.md +45 -49
  151. package/skills/vibe.run/SKILL.md +2 -5
  152. package/skills/vibe.run/references/parallel-agents.md +33 -98
  153. package/skills/vibe.spec/SKILL.md +38 -535
  154. package/skills/vibe.utils/SKILL.md +3 -3
  155. package/skills/vibe.verify/SKILL.md +70 -542
  156. package/skills/video-production/SKILL.md +1 -1
  157. package/vibe/rules/orchestrator-contract.md +5 -4
  158. package/vibe/rules/quality/performance.md +1 -1
  159. package/vibe/templates/claudemd-template.md +1 -1
  160. package/vibe/templates/spec-template.md +35 -185
  161. package/agents/architect-low.md +0 -41
  162. package/agents/architect-medium.md +0 -59
  163. package/agents/compounder.md +0 -265
  164. package/agents/docs/api-documenter.md +0 -99
  165. package/agents/docs/changelog-writer.md +0 -93
  166. package/agents/event/event-comms.md +0 -78
  167. package/agents/event/event-content.md +0 -68
  168. package/agents/event/event-image.md +0 -95
  169. package/agents/event/event-scheduler.md +0 -69
  170. package/agents/event/event-speaker.md +0 -86
  171. package/agents/explorer-low.md +0 -42
  172. package/agents/explorer-medium.md +0 -59
  173. package/agents/explorer.md +0 -48
  174. package/agents/figma/figma-analyst.md +0 -56
  175. package/agents/figma/figma-architect.md +0 -116
  176. package/agents/figma/figma-auditor.md +0 -86
  177. package/agents/figma/figma-builder.md +0 -104
  178. package/agents/implementer-low.md +0 -43
  179. package/agents/implementer-medium.md +0 -52
  180. package/agents/junior-mentor.md +0 -141
  181. package/agents/planning/requirements-analyst.md +0 -84
  182. package/agents/planning/ux-advisor.md +0 -83
  183. package/agents/qa/acceptance-tester.md +0 -86
  184. package/agents/qa/edge-case-finder.md +0 -93
  185. package/agents/qa/qa-coordinator.md +0 -131
  186. package/agents/refactor-cleaner.md +0 -143
  187. package/agents/research/best-practices.md +0 -199
  188. package/agents/research/codebase-patterns.md +0 -157
  189. package/agents/research/framework-docs.md +0 -188
  190. package/agents/research/security-advisory.md +0 -213
  191. package/agents/review/architecture-reviewer.md +0 -107
  192. package/agents/review/complexity-reviewer.md +0 -116
  193. package/agents/review/data-integrity-reviewer.md +0 -88
  194. package/agents/review/git-history-reviewer.md +0 -103
  195. package/agents/review/performance-reviewer.md +0 -86
  196. package/agents/review/python-reviewer.md +0 -150
  197. package/agents/review/rails-reviewer.md +0 -139
  198. package/agents/review/react-reviewer.md +0 -144
  199. package/agents/review/security-reviewer.md +0 -80
  200. package/agents/review/simplicity-reviewer.md +0 -140
  201. package/agents/review/test-coverage-reviewer.md +0 -116
  202. package/agents/review/typescript-reviewer.md +0 -127
  203. package/agents/searcher.md +0 -54
  204. package/agents/simplifier.md +0 -124
  205. package/agents/teams/debug-team.md +0 -74
  206. package/agents/teams/dev-team.md +0 -92
  207. package/agents/teams/docs-team.md +0 -84
  208. package/agents/teams/figma-team.md +0 -89
  209. package/agents/teams/fullstack-team.md +0 -87
  210. package/agents/teams/lite-team.md +0 -73
  211. package/agents/teams/migration-team.md +0 -82
  212. package/agents/teams/refactor-team.md +0 -98
  213. package/agents/teams/research-team.md +0 -90
  214. package/agents/teams/review-debate-team.md +0 -129
  215. package/agents/teams/security-team.md +0 -85
  216. package/agents/ui/ui-a11y-auditor.md +0 -93
  217. package/agents/ui/ui-antipattern-detector.md +0 -102
  218. package/agents/ui/ui-dataviz-advisor.md +0 -69
  219. package/agents/ui/ui-design-system-gen.md +0 -57
  220. package/agents/ui/ui-industry-analyzer.md +0 -49
  221. package/agents/ui/ui-layout-architect.md +0 -65
  222. package/agents/ui/ui-stack-implementer.md +0 -68
  223. package/agents/ui/ux-compliance-reviewer.md +0 -81
  224. package/agents/ui-previewer.md +0 -262
  225. package/dist/cli/llm/gemini-commands.d.ts +0 -25
  226. package/dist/cli/llm/gemini-commands.d.ts.map +0 -1
  227. package/dist/cli/llm/gemini-commands.js +0 -143
  228. package/dist/cli/llm/gemini-commands.js.map +0 -1
  229. package/dist/cli/postinstall/codex-agents.d.ts +0 -24
  230. package/dist/cli/postinstall/codex-agents.d.ts.map +0 -1
  231. package/dist/cli/postinstall/codex-agents.js +0 -114
  232. package/dist/cli/postinstall/codex-agents.js.map +0 -1
  233. package/dist/cli/postinstall/codex-instruction.d.ts +0 -10
  234. package/dist/cli/postinstall/codex-instruction.d.ts.map +0 -1
  235. package/dist/cli/postinstall/codex-instruction.js +0 -56
  236. package/dist/cli/postinstall/codex-instruction.js.map +0 -1
  237. package/dist/cli/postinstall/gemini-agents.d.ts +0 -12
  238. package/dist/cli/postinstall/gemini-agents.d.ts.map +0 -1
  239. package/dist/cli/postinstall/gemini-agents.js +0 -80
  240. package/dist/cli/postinstall/gemini-agents.js.map +0 -1
  241. package/dist/cli/postinstall/gemini-instruction.d.ts +0 -10
  242. package/dist/cli/postinstall/gemini-instruction.d.ts.map +0 -1
  243. package/dist/cli/postinstall/gemini-instruction.js +0 -59
  244. package/dist/cli/postinstall/gemini-instruction.js.map +0 -1
  245. package/dist/infra/lib/ContextCompressor.d.ts +0 -104
  246. package/dist/infra/lib/ContextCompressor.d.ts.map +0 -1
  247. package/dist/infra/lib/ContextCompressor.js +0 -297
  248. package/dist/infra/lib/ContextCompressor.js.map +0 -1
  249. package/dist/infra/lib/ContextCompressor.test.d.ts +0 -2
  250. package/dist/infra/lib/ContextCompressor.test.d.ts.map +0 -1
  251. package/dist/infra/lib/ContextCompressor.test.js +0 -25
  252. package/dist/infra/lib/ContextCompressor.test.js.map +0 -1
  253. package/dist/infra/lib/ProgressTracker.d.ts +0 -73
  254. package/dist/infra/lib/ProgressTracker.d.ts.map +0 -1
  255. package/dist/infra/lib/ProgressTracker.js +0 -267
  256. package/dist/infra/lib/ProgressTracker.js.map +0 -1
  257. package/dist/infra/lib/TokenBudgetTracker.d.ts +0 -68
  258. package/dist/infra/lib/TokenBudgetTracker.d.ts.map +0 -1
  259. package/dist/infra/lib/TokenBudgetTracker.js +0 -191
  260. package/dist/infra/lib/TokenBudgetTracker.js.map +0 -1
  261. package/dist/infra/lib/autonomy/AuditStore.d.ts +0 -63
  262. package/dist/infra/lib/autonomy/AuditStore.d.ts.map +0 -1
  263. package/dist/infra/lib/autonomy/AuditStore.js +0 -185
  264. package/dist/infra/lib/autonomy/AuditStore.js.map +0 -1
  265. package/dist/infra/lib/autonomy/AutonomyConfig.d.ts +0 -84
  266. package/dist/infra/lib/autonomy/AutonomyConfig.d.ts.map +0 -1
  267. package/dist/infra/lib/autonomy/AutonomyConfig.js +0 -49
  268. package/dist/infra/lib/autonomy/AutonomyConfig.js.map +0 -1
  269. package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts +0 -78
  270. package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts.map +0 -1
  271. package/dist/infra/lib/autonomy/AutonomyOrchestrator.js +0 -246
  272. package/dist/infra/lib/autonomy/AutonomyOrchestrator.js.map +0 -1
  273. package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts +0 -36
  274. package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts.map +0 -1
  275. package/dist/infra/lib/autonomy/BackgroundMonitor.js +0 -138
  276. package/dist/infra/lib/autonomy/BackgroundMonitor.js.map +0 -1
  277. package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts +0 -56
  278. package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts.map +0 -1
  279. package/dist/infra/lib/autonomy/CollaborationProtocol.js +0 -122
  280. package/dist/infra/lib/autonomy/CollaborationProtocol.js.map +0 -1
  281. package/dist/infra/lib/autonomy/ConfirmationManager.d.ts +0 -42
  282. package/dist/infra/lib/autonomy/ConfirmationManager.d.ts.map +0 -1
  283. package/dist/infra/lib/autonomy/ConfirmationManager.js +0 -200
  284. package/dist/infra/lib/autonomy/ConfirmationManager.js.map +0 -1
  285. package/dist/infra/lib/autonomy/ConfirmationStore.d.ts +0 -55
  286. package/dist/infra/lib/autonomy/ConfirmationStore.d.ts.map +0 -1
  287. package/dist/infra/lib/autonomy/ConfirmationStore.js +0 -130
  288. package/dist/infra/lib/autonomy/ConfirmationStore.js.map +0 -1
  289. package/dist/infra/lib/autonomy/EventBus.d.ts +0 -20
  290. package/dist/infra/lib/autonomy/EventBus.d.ts.map +0 -1
  291. package/dist/infra/lib/autonomy/EventBus.js +0 -119
  292. package/dist/infra/lib/autonomy/EventBus.js.map +0 -1
  293. package/dist/infra/lib/autonomy/EventOutbox.d.ts +0 -32
  294. package/dist/infra/lib/autonomy/EventOutbox.d.ts.map +0 -1
  295. package/dist/infra/lib/autonomy/EventOutbox.js +0 -152
  296. package/dist/infra/lib/autonomy/EventOutbox.js.map +0 -1
  297. package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts +0 -24
  298. package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts.map +0 -1
  299. package/dist/infra/lib/autonomy/NotificationDispatcher.js +0 -112
  300. package/dist/infra/lib/autonomy/NotificationDispatcher.js.map +0 -1
  301. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +0 -76
  302. package/dist/infra/lib/autonomy/PolicyEngine.d.ts.map +0 -1
  303. package/dist/infra/lib/autonomy/PolicyEngine.js +0 -208
  304. package/dist/infra/lib/autonomy/PolicyEngine.js.map +0 -1
  305. package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts +0 -61
  306. package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts.map +0 -1
  307. package/dist/infra/lib/autonomy/ProactiveAnalyzer.js +0 -236
  308. package/dist/infra/lib/autonomy/ProactiveAnalyzer.js.map +0 -1
  309. package/dist/infra/lib/autonomy/RiskClassifier.d.ts +0 -35
  310. package/dist/infra/lib/autonomy/RiskClassifier.d.ts.map +0 -1
  311. package/dist/infra/lib/autonomy/RiskClassifier.js +0 -147
  312. package/dist/infra/lib/autonomy/RiskClassifier.js.map +0 -1
  313. package/dist/infra/lib/autonomy/SecuritySentinel.d.ts +0 -51
  314. package/dist/infra/lib/autonomy/SecuritySentinel.d.ts.map +0 -1
  315. package/dist/infra/lib/autonomy/SecuritySentinel.js +0 -162
  316. package/dist/infra/lib/autonomy/SecuritySentinel.js.map +0 -1
  317. package/dist/infra/lib/autonomy/SuggestionStore.d.ts +0 -54
  318. package/dist/infra/lib/autonomy/SuggestionStore.d.ts.map +0 -1
  319. package/dist/infra/lib/autonomy/SuggestionStore.js +0 -144
  320. package/dist/infra/lib/autonomy/SuggestionStore.js.map +0 -1
  321. package/dist/infra/lib/autonomy/TaskDecomposer.d.ts +0 -38
  322. package/dist/infra/lib/autonomy/TaskDecomposer.d.ts.map +0 -1
  323. package/dist/infra/lib/autonomy/TaskDecomposer.js +0 -175
  324. package/dist/infra/lib/autonomy/TaskDecomposer.js.map +0 -1
  325. package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts +0 -2
  326. package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts.map +0 -1
  327. package/dist/infra/lib/autonomy/__tests__/audit-store.test.js +0 -198
  328. package/dist/infra/lib/autonomy/__tests__/audit-store.test.js.map +0 -1
  329. package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts +0 -2
  330. package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts.map +0 -1
  331. package/dist/infra/lib/autonomy/__tests__/event-bus.test.js +0 -225
  332. package/dist/infra/lib/autonomy/__tests__/event-bus.test.js.map +0 -1
  333. package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts +0 -2
  334. package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts.map +0 -1
  335. package/dist/infra/lib/autonomy/__tests__/event-core.test.js +0 -194
  336. package/dist/infra/lib/autonomy/__tests__/event-core.test.js.map +0 -1
  337. package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts +0 -2
  338. package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts.map +0 -1
  339. package/dist/infra/lib/autonomy/__tests__/governance.test.js +0 -540
  340. package/dist/infra/lib/autonomy/__tests__/governance.test.js.map +0 -1
  341. package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts +0 -2
  342. package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts.map +0 -1
  343. package/dist/infra/lib/autonomy/__tests__/integration.test.js +0 -480
  344. package/dist/infra/lib/autonomy/__tests__/integration.test.js.map +0 -1
  345. package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts +0 -2
  346. package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts.map +0 -1
  347. package/dist/infra/lib/autonomy/__tests__/proactive.test.js +0 -410
  348. package/dist/infra/lib/autonomy/__tests__/proactive.test.js.map +0 -1
  349. package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts +0 -2
  350. package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts.map +0 -1
  351. package/dist/infra/lib/autonomy/__tests__/sentinel.test.js +0 -486
  352. package/dist/infra/lib/autonomy/__tests__/sentinel.test.js.map +0 -1
  353. package/dist/infra/lib/autonomy/index.d.ts +0 -18
  354. package/dist/infra/lib/autonomy/index.d.ts.map +0 -1
  355. package/dist/infra/lib/autonomy/index.js +0 -22
  356. package/dist/infra/lib/autonomy/index.js.map +0 -1
  357. package/dist/infra/lib/autonomy/schemas.d.ts +0 -317
  358. package/dist/infra/lib/autonomy/schemas.d.ts.map +0 -1
  359. package/dist/infra/lib/autonomy/schemas.js +0 -90
  360. package/dist/infra/lib/autonomy/schemas.js.map +0 -1
  361. package/dist/infra/lib/claude/index.d.ts +0 -5
  362. package/dist/infra/lib/claude/index.d.ts.map +0 -1
  363. package/dist/infra/lib/claude/index.js +0 -5
  364. package/dist/infra/lib/claude/index.js.map +0 -1
  365. package/dist/infra/lib/claude/storage.d.ts +0 -12
  366. package/dist/infra/lib/claude/storage.d.ts.map +0 -1
  367. package/dist/infra/lib/claude/storage.js +0 -54
  368. package/dist/infra/lib/claude/storage.js.map +0 -1
  369. package/dist/infra/lib/gemini/auth.d.ts +0 -18
  370. package/dist/infra/lib/gemini/auth.d.ts.map +0 -1
  371. package/dist/infra/lib/gemini/auth.js +0 -32
  372. package/dist/infra/lib/gemini/auth.js.map +0 -1
  373. package/dist/infra/lib/gemini/capabilities.d.ts +0 -28
  374. package/dist/infra/lib/gemini/capabilities.d.ts.map +0 -1
  375. package/dist/infra/lib/gemini/capabilities.js +0 -178
  376. package/dist/infra/lib/gemini/capabilities.js.map +0 -1
  377. package/dist/infra/lib/gemini/chat.d.ts +0 -35
  378. package/dist/infra/lib/gemini/chat.d.ts.map +0 -1
  379. package/dist/infra/lib/gemini/chat.js +0 -161
  380. package/dist/infra/lib/gemini/chat.js.map +0 -1
  381. package/dist/infra/lib/gemini/completion.d.ts +0 -12
  382. package/dist/infra/lib/gemini/completion.d.ts.map +0 -1
  383. package/dist/infra/lib/gemini/completion.js +0 -13
  384. package/dist/infra/lib/gemini/completion.js.map +0 -1
  385. package/dist/infra/lib/gemini/constants.d.ts +0 -8
  386. package/dist/infra/lib/gemini/constants.d.ts.map +0 -1
  387. package/dist/infra/lib/gemini/constants.js +0 -11
  388. package/dist/infra/lib/gemini/constants.js.map +0 -1
  389. package/dist/infra/lib/gemini/index.d.ts +0 -13
  390. package/dist/infra/lib/gemini/index.d.ts.map +0 -1
  391. package/dist/infra/lib/gemini/index.js +0 -12
  392. package/dist/infra/lib/gemini/index.js.map +0 -1
  393. package/dist/infra/lib/gemini/models.d.ts +0 -11
  394. package/dist/infra/lib/gemini/models.d.ts.map +0 -1
  395. package/dist/infra/lib/gemini/models.js +0 -38
  396. package/dist/infra/lib/gemini/models.js.map +0 -1
  397. package/dist/infra/lib/gemini/orchestration.d.ts +0 -33
  398. package/dist/infra/lib/gemini/orchestration.d.ts.map +0 -1
  399. package/dist/infra/lib/gemini/orchestration.js +0 -62
  400. package/dist/infra/lib/gemini/orchestration.js.map +0 -1
  401. package/dist/infra/lib/gemini/types.d.ts +0 -115
  402. package/dist/infra/lib/gemini/types.d.ts.map +0 -1
  403. package/dist/infra/lib/gemini/types.js +0 -5
  404. package/dist/infra/lib/gemini/types.js.map +0 -1
  405. package/dist/infra/orchestrator/AgentAnnouncer.d.ts +0 -64
  406. package/dist/infra/orchestrator/AgentAnnouncer.d.ts.map +0 -1
  407. package/dist/infra/orchestrator/AgentAnnouncer.js +0 -127
  408. package/dist/infra/orchestrator/AgentAnnouncer.js.map +0 -1
  409. package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts +0 -5
  410. package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts.map +0 -1
  411. package/dist/infra/orchestrator/AgentAnnouncer.test.js +0 -119
  412. package/dist/infra/orchestrator/AgentAnnouncer.test.js.map +0 -1
  413. package/dist/infra/orchestrator/AgentExecutor.d.ts +0 -22
  414. package/dist/infra/orchestrator/AgentExecutor.d.ts.map +0 -1
  415. package/dist/infra/orchestrator/AgentExecutor.js +0 -272
  416. package/dist/infra/orchestrator/AgentExecutor.js.map +0 -1
  417. package/dist/infra/orchestrator/AgentManager.d.ts +0 -72
  418. package/dist/infra/orchestrator/AgentManager.d.ts.map +0 -1
  419. package/dist/infra/orchestrator/AgentManager.js +0 -183
  420. package/dist/infra/orchestrator/AgentManager.js.map +0 -1
  421. package/dist/infra/orchestrator/AgentManifestCache.d.ts +0 -54
  422. package/dist/infra/orchestrator/AgentManifestCache.d.ts.map +0 -1
  423. package/dist/infra/orchestrator/AgentManifestCache.js +0 -191
  424. package/dist/infra/orchestrator/AgentManifestCache.js.map +0 -1
  425. package/dist/infra/orchestrator/AgentRegistry.d.ts +0 -76
  426. package/dist/infra/orchestrator/AgentRegistry.d.ts.map +0 -1
  427. package/dist/infra/orchestrator/AgentRegistry.js +0 -217
  428. package/dist/infra/orchestrator/AgentRegistry.js.map +0 -1
  429. package/dist/infra/orchestrator/AgentRegistry.test.d.ts +0 -5
  430. package/dist/infra/orchestrator/AgentRegistry.test.d.ts.map +0 -1
  431. package/dist/infra/orchestrator/AgentRegistry.test.js +0 -122
  432. package/dist/infra/orchestrator/AgentRegistry.test.js.map +0 -1
  433. package/dist/infra/orchestrator/BackgroundManager.d.ts +0 -128
  434. package/dist/infra/orchestrator/BackgroundManager.d.ts.map +0 -1
  435. package/dist/infra/orchestrator/BackgroundManager.js +0 -620
  436. package/dist/infra/orchestrator/BackgroundManager.js.map +0 -1
  437. package/dist/infra/orchestrator/BackgroundManager.test.d.ts +0 -6
  438. package/dist/infra/orchestrator/BackgroundManager.test.d.ts.map +0 -1
  439. package/dist/infra/orchestrator/BackgroundManager.test.js +0 -162
  440. package/dist/infra/orchestrator/BackgroundManager.test.js.map +0 -1
  441. package/dist/infra/orchestrator/CheckpointManager.d.ts +0 -54
  442. package/dist/infra/orchestrator/CheckpointManager.d.ts.map +0 -1
  443. package/dist/infra/orchestrator/CheckpointManager.js +0 -121
  444. package/dist/infra/orchestrator/CheckpointManager.js.map +0 -1
  445. package/dist/infra/orchestrator/CodexAgentRuntime.d.ts +0 -12
  446. package/dist/infra/orchestrator/CodexAgentRuntime.d.ts.map +0 -1
  447. package/dist/infra/orchestrator/CodexAgentRuntime.js +0 -94
  448. package/dist/infra/orchestrator/CodexAgentRuntime.js.map +0 -1
  449. package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts +0 -2
  450. package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts.map +0 -1
  451. package/dist/infra/orchestrator/CodexAgentRuntime.test.js +0 -37
  452. package/dist/infra/orchestrator/CodexAgentRuntime.test.js.map +0 -1
  453. package/dist/infra/orchestrator/LLMCluster.d.ts +0 -82
  454. package/dist/infra/orchestrator/LLMCluster.d.ts.map +0 -1
  455. package/dist/infra/orchestrator/LLMCluster.js +0 -146
  456. package/dist/infra/orchestrator/LLMCluster.js.map +0 -1
  457. package/dist/infra/orchestrator/MultiLlmResearch.d.ts +0 -31
  458. package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +0 -1
  459. package/dist/infra/orchestrator/MultiLlmResearch.js +0 -160
  460. package/dist/infra/orchestrator/MultiLlmResearch.js.map +0 -1
  461. package/dist/infra/orchestrator/PhasePipeline.d.ts +0 -122
  462. package/dist/infra/orchestrator/PhasePipeline.d.ts.map +0 -1
  463. package/dist/infra/orchestrator/PhasePipeline.js +0 -385
  464. package/dist/infra/orchestrator/PhasePipeline.js.map +0 -1
  465. package/dist/infra/orchestrator/PhaseResultStore.d.ts +0 -39
  466. package/dist/infra/orchestrator/PhaseResultStore.d.ts.map +0 -1
  467. package/dist/infra/orchestrator/PhaseResultStore.js +0 -151
  468. package/dist/infra/orchestrator/PhaseResultStore.js.map +0 -1
  469. package/dist/infra/orchestrator/SessionStore.d.ts +0 -40
  470. package/dist/infra/orchestrator/SessionStore.d.ts.map +0 -1
  471. package/dist/infra/orchestrator/SessionStore.js +0 -116
  472. package/dist/infra/orchestrator/SessionStore.js.map +0 -1
  473. package/dist/infra/orchestrator/SmartRouter.d.ts +0 -90
  474. package/dist/infra/orchestrator/SmartRouter.d.ts.map +0 -1
  475. package/dist/infra/orchestrator/SmartRouter.js +0 -277
  476. package/dist/infra/orchestrator/SmartRouter.js.map +0 -1
  477. package/dist/infra/orchestrator/SmartRouter.test.d.ts +0 -5
  478. package/dist/infra/orchestrator/SmartRouter.test.d.ts.map +0 -1
  479. package/dist/infra/orchestrator/SmartRouter.test.js +0 -484
  480. package/dist/infra/orchestrator/SmartRouter.test.js.map +0 -1
  481. package/dist/infra/orchestrator/SwarmOrchestrator.d.ts +0 -143
  482. package/dist/infra/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
  483. package/dist/infra/orchestrator/SwarmOrchestrator.js +0 -378
  484. package/dist/infra/orchestrator/SwarmOrchestrator.js.map +0 -1
  485. package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts +0 -5
  486. package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
  487. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +0 -95
  488. package/dist/infra/orchestrator/SwarmOrchestrator.test.js.map +0 -1
  489. package/dist/infra/orchestrator/agentDiscovery.d.ts +0 -26
  490. package/dist/infra/orchestrator/agentDiscovery.d.ts.map +0 -1
  491. package/dist/infra/orchestrator/agentDiscovery.js +0 -175
  492. package/dist/infra/orchestrator/agentDiscovery.js.map +0 -1
  493. package/dist/infra/orchestrator/backgroundAgent.d.ts +0 -9
  494. package/dist/infra/orchestrator/backgroundAgent.d.ts.map +0 -1
  495. package/dist/infra/orchestrator/backgroundAgent.js +0 -10
  496. package/dist/infra/orchestrator/backgroundAgent.js.map +0 -1
  497. package/dist/infra/orchestrator/index.d.ts +0 -207
  498. package/dist/infra/orchestrator/index.d.ts.map +0 -1
  499. package/dist/infra/orchestrator/index.js +0 -362
  500. package/dist/infra/orchestrator/index.js.map +0 -1
  501. package/dist/infra/orchestrator/orchestrator.d.ts +0 -60
  502. package/dist/infra/orchestrator/orchestrator.d.ts.map +0 -1
  503. package/dist/infra/orchestrator/orchestrator.js +0 -214
  504. package/dist/infra/orchestrator/orchestrator.js.map +0 -1
  505. package/dist/infra/orchestrator/parallelResearch.d.ts +0 -27
  506. package/dist/infra/orchestrator/parallelResearch.d.ts.map +0 -1
  507. package/dist/infra/orchestrator/parallelResearch.js +0 -285
  508. package/dist/infra/orchestrator/parallelResearch.js.map +0 -1
  509. package/dist/infra/orchestrator/types.d.ts +0 -205
  510. package/dist/infra/orchestrator/types.d.ts.map +0 -1
  511. package/dist/infra/orchestrator/types.js +0 -87
  512. package/dist/infra/orchestrator/types.js.map +0 -1
  513. package/dist/infra/orchestrator/types.test.d.ts +0 -2
  514. package/dist/infra/orchestrator/types.test.d.ts.map +0 -1
  515. package/dist/infra/orchestrator/types.test.js +0 -57
  516. package/dist/infra/orchestrator/types.test.js.map +0 -1
  517. package/dist/tools/semantic/analyzeDependencyGraph.d.ts +0 -12
  518. package/dist/tools/semantic/analyzeDependencyGraph.d.ts.map +0 -1
  519. package/dist/tools/semantic/analyzeDependencyGraph.js +0 -359
  520. package/dist/tools/semantic/analyzeDependencyGraph.js.map +0 -1
  521. package/dist/tools/semantic/astGrep.d.ts +0 -25
  522. package/dist/tools/semantic/astGrep.d.ts.map +0 -1
  523. package/dist/tools/semantic/astGrep.js +0 -324
  524. package/dist/tools/semantic/astGrep.js.map +0 -1
  525. package/dist/tools/semantic/astGrep.test.d.ts +0 -2
  526. package/dist/tools/semantic/astGrep.test.d.ts.map +0 -1
  527. package/dist/tools/semantic/astGrep.test.js +0 -74
  528. package/dist/tools/semantic/astGrep.test.js.map +0 -1
  529. package/dist/tools/semantic/findReferences.d.ts +0 -9
  530. package/dist/tools/semantic/findReferences.d.ts.map +0 -1
  531. package/dist/tools/semantic/findReferences.js +0 -200
  532. package/dist/tools/semantic/findReferences.js.map +0 -1
  533. package/dist/tools/semantic/findSymbol.d.ts +0 -8
  534. package/dist/tools/semantic/findSymbol.d.ts.map +0 -1
  535. package/dist/tools/semantic/findSymbol.js +0 -204
  536. package/dist/tools/semantic/findSymbol.js.map +0 -1
  537. package/dist/tools/semantic/index.d.ts +0 -9
  538. package/dist/tools/semantic/index.d.ts.map +0 -1
  539. package/dist/tools/semantic/index.js +0 -11
  540. package/dist/tools/semantic/index.js.map +0 -1
  541. package/dist/tools/semantic/lsp.d.ts +0 -68
  542. package/dist/tools/semantic/lsp.d.ts.map +0 -1
  543. package/dist/tools/semantic/lsp.js +0 -561
  544. package/dist/tools/semantic/lsp.js.map +0 -1
  545. package/dist/tools/spec/e2eTestGenerator.d.ts +0 -61
  546. package/dist/tools/spec/e2eTestGenerator.d.ts.map +0 -1
  547. package/dist/tools/spec/e2eTestGenerator.js +0 -255
  548. package/dist/tools/spec/e2eTestGenerator.js.map +0 -1
  549. package/dist/tools/spec/specVersioning.d.ts +0 -76
  550. package/dist/tools/spec/specVersioning.d.ts.map +0 -1
  551. package/dist/tools/spec/specVersioning.js +0 -236
  552. package/dist/tools/spec/specVersioning.js.map +0 -1
  553. package/hooks/scripts/__tests__/keyword-detector.test.js +0 -242
  554. package/hooks/scripts/keyword-detector.js +0 -226
  555. package/skills/characterization-test/SKILL.md +0 -209
  556. package/skills/characterization-test/agents/behavior-capturer.md +0 -50
  557. package/skills/characterization-test/agents/coverage-checker.md +0 -54
  558. package/skills/characterization-test/agents/reporter.md +0 -50
  559. package/skills/characterization-test/agents/test-writer.md +0 -49
  560. package/skills/characterization-test/rubrics/coverage-criteria.md +0 -53
  561. package/skills/characterization-test/templates/test-template.ts +0 -101
  562. package/skills/claude-md-guide/SKILL.md +0 -353
  563. package/skills/claude-md-guide/rubrics/anti-patterns.md +0 -88
  564. package/skills/design-audit/SKILL.md +0 -154
  565. package/skills/design-critique/SKILL.md +0 -140
  566. package/skills/design-distill/SKILL.md +0 -131
  567. package/skills/design-normalize/SKILL.md +0 -135
  568. package/skills/design-polish/SKILL.md +0 -132
  569. package/skills/figma-convert/SKILL.md +0 -236
  570. package/skills/figma-extract/SKILL.md +0 -242
  571. package/skills/interview/SKILL.md +0 -358
  572. package/skills/interview/checklists/api.md +0 -101
  573. package/skills/interview/checklists/feature.md +0 -88
  574. package/skills/interview/checklists/library.md +0 -95
  575. package/skills/interview/checklists/mobile.md +0 -89
  576. package/skills/interview/checklists/webapp.md +0 -97
  577. package/skills/interview/checklists/website.md +0 -99
  578. package/skills/plan/SKILL.md +0 -254
  579. package/skills/rob-pike/SKILL.md +0 -66
  580. package/skills/spec/references/askuser-examples.md +0 -57
  581. package/skills/spec/references/example-session.md +0 -87
  582. package/skills/spec/references/templates.md +0 -194
  583. package/skills/spec-review/SKILL.md +0 -725
  584. package/skills/systematic-debugging/SKILL.md +0 -142
  585. package/skills/techdebt/SKILL.md +0 -126
  586. package/skills/techdebt/agents/analyzer.md +0 -50
  587. package/skills/techdebt/agents/fixer.md +0 -41
  588. package/skills/techdebt/agents/reviewer.md +0 -47
  589. package/skills/techdebt/agents/scanner.md +0 -44
  590. package/skills/techdebt/orchestrator.md +0 -72
  591. package/skills/techdebt/rubrics/severity.md +0 -51
  592. package/skills/techdebt/scripts/scan.js +0 -90
  593. package/skills/techdebt/templates/report.md +0 -86
  594. package/skills/typescript-advanced-types/SKILL.md +0 -68
  595. package/skills/typescript-advanced-types/rubrics/type-patterns.md +0 -109
  596. package/skills/yagni-ladder/SKILL.md +0 -90
  597. /package/skills/{claude-md-guide → agents-md}/templates/claude-md.md +0 -0
  598. /package/skills/{design-polish → design-refine}/rubrics/polish-checklist.md +0 -0
  599. /package/skills/{design-normalize → design-refine}/rubrics/token-naming.md +0 -0
  600. /package/skills/{design-distill → design-refine}/templates/design-system.md +0 -0
  601. /package/skills/{design-audit → design-review}/agents/scorer.md +0 -0
  602. /package/skills/{design-audit → design-review}/rubrics/ai-slop-patterns.md +0 -0
  603. /package/skills/{design-audit → design-review}/rubrics/scoring.md +0 -0
  604. /package/skills/{design-critique → design-review}/rubrics/ux-heuristics.md +0 -0
  605. /package/skills/{figma-convert → figma}/rubrics/conversion-rules.md +0 -0
  606. /package/skills/{figma-extract → figma}/rubrics/image-rules.md +0 -0
  607. /package/skills/{figma-convert → figma}/templates/component.md +0 -0
@@ -1,298 +1,63 @@
1
- ---
2
- description: End-to-end testing with Closed Loop automation
3
- argument-hint: "test scenario or URL"
4
- ---
1
+ # E2E Tester Agent
5
2
 
6
- # /vibe.e2e
3
+ Closed-loop end-to-end testing — drive the real app in a browser, and when a
4
+ scenario fails, fix and re-verify until it passes.
7
5
 
8
- **Closed Loop E2E Testing** - AI가 직접 브라우저를 조작하여 검증하고, 실패 시 자동 수정을 반복
6
+ ## Role
9
7
 
10
- ## Model
11
-
12
- **Sonnet** Balanced reasoning and quality
13
-
14
- ## Philosophy: Closed Loop
15
-
16
- ```
17
- 구현 → 검증 → 실패 → 수정 → 재검증 → ... → 통과
18
- ↑_________________________________↓
19
-
20
- 사람 개입 없이 AI가 루프를 완주한다.
21
- 검증이 가벼울수록 루프는 더 많이 돈다.
22
- ```
23
-
24
- ## Usage
25
-
26
- ```
27
- /vibe.e2e # Run all E2E tests
28
- /vibe.e2e "login flow" # Test specific scenario
29
- /vibe.e2e http://localhost:3000/login # Test specific URL
30
- /vibe.e2e --visual # Visual regression testing
31
- /vibe.e2e --record # Record test video
32
- ```
33
-
34
- ## Browser Tool Selection (Token Efficiency)
35
-
36
- **검증 비용이 비싸면 루프가 돌지 않는다.**
37
-
38
- | Tool | 클릭 1회 토큰 | 방식 | Closed Loop 적합성 |
39
- |------|-------------|------|-------------------|
40
- | Playwright MCP | ~12,000+ chars | DOM 트리 전체 전달 | Bad - 2~3회 만에 컨텍스트 소진 |
41
- | Agent Browser | ~6 chars | 접근성 트리 (의미만 추출) | Good - 수십 회 루프 가능 |
42
- | Playwright Test Runner | N/A (코드 실행) | 테스트 코드 결과만 반환 | Good - pass/fail만 반환 |
43
-
44
- ### Tool Priority
45
-
46
- ```
47
- 1. Agent Browser (MCP) — AI가 직접 브라우저 조작, 접근성 트리 기반 (최소 토큰)
48
- 2. Playwright Test Runner — 테스트 코드 작성 후 실행, 결과만 수신 (pass/fail)
49
- 3. Playwright MCP — DOM 기반 직접 조작 (토큰 비효율, 최후 수단)
50
- ```
51
-
52
- ### Why Accessibility Tree?
53
-
54
- ```
55
- DOM (Playwright MCP):
56
- div class="nav-wrapper mx-4 flex items-center justify-between..." → 200+ chars
57
-
58
- Accessibility Tree (Agent Browser):
59
- button "Sign In" → 15 chars
60
-
61
- AI에게 필요한 건 후자다.
62
- 시각장애인용 스크린 리더가 쓰는 트리가, AI 에이전트에게도 최적의 웹 표현이다.
63
- ```
64
-
65
- ## Core Features
66
-
67
- - Screenshot Capture - Record UI state
68
- - Console Error Collection - Detect JS errors
69
- - Network Monitoring - Detect API failures
70
- - Visual Regression - Compare screenshots
71
- - Video Recording - Bug reproduction evidence
72
- - Accessibility Check - Detect a11y violations
73
-
74
- ## Process
75
-
76
- ### Phase 1: Environment Detection
77
-
78
- ```
79
- 1. Agent Browser MCP 사용 가능? → 사용 (최우선)
80
- 2. Playwright 설치됨? → npx playwright --version
81
- 3. 없으면 → npx playwright install chromium
82
- ```
83
-
84
- ### Phase 2: Test Scenario Analysis
8
+ - Browser-based E2E verification of Feature scenarios and user flows
9
+ - Auto-fix loop: failure → root cause → minimal fix → re-run failed scenario
10
+ - Visual regression and accessibility (axe/WCAG 2.1 AA) checks
85
11
 
86
- ```
87
- Scenario Detection
88
- ├── .vibe/features/{feature}.feature → Extract BDD scenarios
89
- ├── .vibe/specs/{feature}.md → Check acceptance criteria
90
- └── Analyze existing e2e/*.spec.ts
91
- ```
92
-
93
- **File Reading Policy**: Feature/SPEC 파일은 반드시 Read 도구로 전체 읽을 것.
94
-
95
- ### Phase 3: Closed Loop Execution
96
-
97
- ```
98
- ┌─────────────────────────────────────────────────────────────────┐
99
- │ CLOSED LOOP E2E VERIFICATION │
100
- │ │
101
- │ For each scenario in Feature file: │
102
- │ │
103
- │ ┌──────────────────────────────────────────────────────────┐ │
104
- │ │ Scenario: "User submits notification form" │ │
105
- │ │ │ │
106
- │ │ [Browser] Navigate to URL │ │
107
- │ │ [Browser] Find form (accessibility tree) │ │
108
- │ │ [Browser] Fill inputs │ │
109
- │ │ [Browser] Click submit │ │
110
- │ │ [Browser] Check success message │ │
111
- │ │ │ │ │
112
- │ │ ├─ PASS → Next scenario │ │
113
- │ │ └─ FAIL → Root cause analysis │ │
114
- │ │ → Fix code │ │
115
- │ │ → Re-run scenario (max 3 retries) │ │
116
- │ └──────────────────────────────────────────────────────────┘ │
117
- │ │
118
- │ All scenarios pass → DONE │
119
- │ Max retries exceeded → Report failures │
120
- └─────────────────────────────────────────────────────────────────┘
121
- ```
122
-
123
- **Agent Browser approach (preferred):**
124
-
125
- ```
126
- AI directly controls browser:
127
- 1. navigate("http://localhost:3000/login")
128
- 2. type("email field", "test@example.com")
129
- 3. type("password field", "password123")
130
- 4. click("Sign In")
131
- 5. assert: page contains "Dashboard"
132
-
133
- Each action: ~6-20 chars of context (accessibility tree)
134
- Total scenario: ~100-200 chars
135
- → Can run 50+ scenarios in one session
136
- ```
137
-
138
- **Playwright Test Runner approach (fallback):**
139
-
140
- ```typescript
141
- // Auto-generated lightweight test
142
- import { test, expect } from '@playwright/test';
143
-
144
- test('login flow', async ({ page }) => {
145
- await page.goto('http://localhost:3000/login');
146
- await page.fill('[data-testid="email"]', 'test@example.com');
147
- await page.fill('[data-testid="password"]', 'password123');
148
- await page.click('[data-testid="submit"]');
149
- await page.waitForURL('**/dashboard');
150
- await expect(page.locator('h1')).toContainText('Dashboard');
151
- });
152
- ```
153
-
154
- ```bash
155
- # Run and get pass/fail only (minimal token usage)
156
- npx playwright test --reporter=line 2>&1 | tail -5
157
- ```
158
-
159
- ### Phase 4: Auto-Fix Loop (Closed Loop Core)
160
-
161
- ```
162
- E2E scenario FAILED
163
-
164
-
165
- [Collect evidence]
166
- - Screenshot of failure state
167
- - Console errors
168
- - Network failures
169
- - Accessibility tree snapshot (lightweight)
170
-
171
-
172
- [Root cause analysis]
173
- - Which step failed? (Given/When/Then)
174
- - Error type? (element not found / assertion failed / network error)
175
-
176
-
177
- [Fix implementation]
178
- - Read target source file (FULL, not Grep)
179
- - Apply minimal fix
180
-
181
-
182
- [Re-run ONLY failed scenario]
183
- - Don't re-run passed scenarios (save tokens)
184
-
185
-
186
- PASS → Continue to next scenario
187
- FAIL → Retry (max 3)
188
- 3x FAIL → Report as manual fix needed
189
- ```
190
-
191
- ### Phase 5: Visual Regression (--visual)
192
-
193
- ```
194
- Comparing screenshots:
195
- ├── login-page.png
196
- │ ├── Baseline: .vibe/e2e/baseline/login-page.png
197
- │ ├── Current: .vibe/e2e/current/login-page.png
198
- │ └── Diff: 0.02% (threshold: 1%) → PASS
199
- ├── dashboard.png
200
- │ └── Diff: 5.3% (threshold: 1%) → FAIL → auto-fix loop
201
- ```
202
-
203
- ### Phase 6: Accessibility Check
204
-
205
- ```typescript
206
- import { injectAxe, checkA11y } from 'axe-playwright';
207
-
208
- test('accessibility check', async ({ page }) => {
209
- await page.goto('/login');
210
- await injectAxe(page);
211
- await checkA11y(page, null, {
212
- detailedReport: true,
213
- detailedReportOptions: { html: true }
214
- });
215
- });
216
- ```
217
-
218
- ## Output
219
-
220
- ```
221
- E2E CLOSED LOOP RESULTS
222
-
223
- Test Suite: Login Flow
224
- Duration: 12.3s
225
- Browser Tool: Agent Browser (accessibility tree)
226
- Loop Iterations: 2 (1 auto-fix applied)
227
-
228
- Results:
229
- Passed: 8 (1 after auto-fix)
230
- Failed: 0
231
- Skipped: 0
12
+ ## Model
232
13
 
233
- Auto-Fixes Applied:
234
- 1. Scenario "invalid password error"
235
- Root cause: Missing error message element
236
- Fix: Added error toast in LoginForm.tsx:42
237
- Re-test: PASSED
14
+ **Sonnet** — root-cause analysis inside the fix loop
238
15
 
239
- Console Errors: 0
240
- Accessibility Issues: 0
16
+ ## Goal
241
17
 
242
- Token Usage: ~2,400 chars (vs ~96,000 with DOM-based approach)
243
- ```
18
+ Verify every relevant scenario end-to-end in a real browser. Scenarios come
19
+ from `.vibe/features/{feature}.feature` (Gherkin), `.vibe/specs/{feature}.md`
20
+ acceptance criteria, or existing `e2e/*.spec.ts` — read them fully before
21
+ testing. On failure, collect evidence (screenshot, console errors, network
22
+ failures), find the root cause, apply a minimal code fix, and re-run only the
23
+ failed scenario. The loop, not a human, closes the gap.
244
24
 
245
- ## Configuration
25
+ ## Browser Tooling — verification cost decides how many loops you get
246
26
 
247
- `.vibe/e2e/config.json`:
27
+ Cheap verification is what makes the closed loop viable. Priority order:
248
28
 
249
- ```json
250
- {
251
- "baseURL": "http://localhost:3000",
252
- "browsers": ["chromium"],
253
- "viewport": { "width": 1280, "height": 720 },
254
- "browserTool": "auto",
255
- "closedLoop": {
256
- "enabled": true,
257
- "maxRetries": 3,
258
- "autoFix": true,
259
- "rerunFailedOnly": true
260
- },
261
- "video": "retain-on-failure",
262
- "screenshot": "only-on-failure",
263
- "trace": "retain-on-failure",
264
- "visualRegression": {
265
- "enabled": true,
266
- "threshold": 0.01
267
- },
268
- "accessibility": {
269
- "enabled": true,
270
- "rules": ["wcag2aa"]
271
- }
272
- }
273
- ```
29
+ 1. **Agent Browser MCP** — drives the browser via the accessibility tree
30
+ (`button "Sign In"` ≈ 15 chars vs 200+ for the equivalent DOM). Dozens of
31
+ loop iterations per session.
32
+ 2. **Playwright test runner** — write a spec, run
33
+ `npx playwright test --reporter=line`, consume pass/fail only.
34
+ 3. **Playwright MCP (DOM-based)** — last resort; full DOM trees exhaust
35
+ context in 2–3 interactions.
274
36
 
275
- ## Integration with /vibe.run
37
+ If Playwright is needed and missing: `npx playwright install chromium`.
276
38
 
277
- `/vibe.run` 에서 UI 시나리오 구현 후 자동으로 Closed Loop E2E 검증 트리거:
39
+ ## Verification Scope
278
40
 
279
- ```
280
- /vibe.run "login" ultrawork
281
- ├── Phase 1: Implement login form
282
- ├── Phase 2: Implement validation
283
- ├── [AUTO] E2E Closed Loop verification
284
- │ ├── Scenario 1: valid login PASS
285
- │ ├── Scenario 2: invalid password FAIL auto-fix → PASS
286
- │ └── Scenario 3: email validation → PASS
287
- └── All scenarios verified → Complete
288
- ```
41
+ - Functional: each scenario's Given/When/Then holds against the running app
42
+ - Console errors and failed network requests count as findings even when the
43
+ flow "works"
44
+ - Visual regression (when baselines exist in `.vibe/e2e/baseline/`): diff
45
+ against current render, default threshold 1%
46
+ - Accessibility: axe scan (`wcag2aa` ruleset) on the pages the scenarios touch
47
+ - Config (base URL, thresholds, retries) lives in `.vibe/e2e/config.json` when
48
+ present
289
49
 
290
- ## Related Commands
50
+ ## Constraints
291
51
 
292
- - `/vibe.review` - Code review
293
- - `/vibe.verify` - SPEC verification
294
- - `/vibe.run` - Implementation with auto-verification
52
+ Fixes follow build-error-resolver discipline: minimal diff targeting the root
53
+ cause, no refactoring while fixing. Re-run only the failed scenario, never the
54
+ whole suite, until it passes. Maximum 3 fix attempts per scenario — after
55
+ that, report it as needing manual attention with the collected evidence
56
+ instead of thrashing. Never mark the task complete on the basis of "the code
57
+ looks right"; only observed browser behavior counts.
295
58
 
296
- ---
59
+ ## Done
297
60
 
298
- ARGUMENTS: $ARGUMENTS
61
+ - All scenarios pass in the browser, or unresolved ones are reported with evidence and root-cause analysis
62
+ - Zero unexplained console errors / failed requests on tested flows
63
+ - Applied auto-fixes are listed with scenario, root cause, and re-test result
@@ -1,84 +1,61 @@
1
- # Event Operations Agent
1
+ # Event Ops Agent
2
2
 
3
- Day-of operations support nametags, checklists, operational slides, Slido configuration plans.
3
+ Operations and communications for community events: day-of materials, images,
4
+ and confirmation-gated SMS/email sends.
4
5
 
5
6
  ## Role
6
7
 
7
- - Generate nametag HTML from participant CSV data
8
- - Output D-1 checklist (fixed 4 items for offline events)
9
- - Generate operational PPTX slides with community colors and timetable
10
- - Output Slido configuration plan (manual setup guide)
11
- - Generate settlement report templates
8
+ - Generate day-of materials: nametags, checklists, ops slides, Slido plans, settlement reports
9
+ - Draft and send SMS/email via Aligo/Gmail behind test-send and confirmation gates
10
+ - Generate and smart-resize event images via Gemini
12
11
 
13
12
  ## Model
14
13
 
15
- **Sonnet** — Needs structured document generation (HTML, PPTX specs, markdown)
16
-
17
- ## Usage
18
-
19
- ```
20
- Task(model: "sonnet", prompt: "Generate nametags for MDC 12th from participants CSV")
21
- Task(model: "sonnet", prompt: "Generate D-1 checklist + ops slides for DWK 5th")
22
- Task(model: "sonnet", prompt: "Output Slido configuration plan for webinar")
23
- Task(model: "sonnet", prompt: "Generate settlement report for MDC 12th")
24
- ```
25
-
26
- ## Process
27
-
28
- ### Nametags
29
- 1. Read participant CSV from `data/participants/{event_id}.csv`
30
- 2. Extract: name, company, role
31
- 3. Generate HTML with 85mm×60mm cards, 8 per A4 page
32
- 4. Apply community brand name (bottom-right)
33
- 5. Output: `output/reports/{event_id}_nametags.html`
34
- 6. If no CSV generate blank template
35
-
36
- ### Checklist
37
- 1. Output fixed D-1 checklist (4 items)
38
- 2. Add any event-specific items from state file
39
- 3. Output: `output/reports/{event_id}_checklist.md`
40
-
41
- ### Operational Slides
42
- 1. Read event details (speakers, topics, timetable)
43
- 2. Apply community color scheme
44
- 3. Generate slide specifications for python-pptx:
45
- - Cover slide
46
- - Timetable slide (community pattern)
47
- - Speaker intro slides (1 per speaker)
48
- - Q&A + Networking slide (Slido QR placeholder)
49
- - Thank you + community links slide
50
- 4. Output: `output/reports/{event_id}_slides.pptx` or spec file
51
-
52
- ### Slido
53
- 1. Select community preset (MDC=5, webinar=5, DWK=10 items)
54
- 2. Customize questions for event topic
55
- 3. Output configuration guide for manual setup
56
-
57
- ### Settlement
58
- 1. MDC: Revenue - expenses = markdown report
59
- 2. DWK: Stripe receipts + speaker gifts → Slack message template
60
- 3. Webinar: Skip (free)
61
-
62
- ## Output
63
-
64
- ```markdown
65
- ## Operations: {event_id}
66
-
67
- ### Nametags
68
- 📄 output/reports/{event_id}_nametags.html
69
- - Participants: {count}
70
- - Pages: {pages} (8 per page)
71
-
72
- ### Checklist
73
- 📄 output/reports/{event_id}_checklist.md
74
-
75
- ### Slides
76
- 📄 output/reports/{event_id}_slides_spec.md
77
- - Slides: {count}
78
- - Color: {community_color}
79
-
80
- ### Slido Plan
81
- 📄 output/reports/{event_id}_slido.md
82
- - Items: {count}
83
- - ⚠️ Manual setup required (API read-only)
84
- ```
14
+ **Sonnet** — structured document generation plus send-safety judgement
15
+
16
+ ## Goal
17
+
18
+ Produce everything the event needs to physically run, and handle recipient
19
+ communication safely.
20
+
21
+ **Materials** nametags from `data/participants/{event_id}.csv` (name/
22
+ company/role) as HTML, 85mm×60mm cards, 8 per A4 page, community brand
23
+ bottom-right (blank template when no CSV); the fixed 4-item D-1 checklist plus
24
+ event-specific items; ops slide specs (cover, timetable, per-speaker intro,
25
+ Q&A/networking with Slido QR, thanks + links) in community colors; Slido
26
+ question plans from community presets (MDC=5, webinar=5, DWK=10 — manual
27
+ setup, API is read-only); settlement per community (MDC: revenue−expenses
28
+ markdown, DWK: Stripe receipts + speaker gifts → Slack message, webinar: skip,
29
+ free). Everything lands under `output/reports/`.
30
+
31
+ **Communications** fill the timing-appropriate template (D-7/D-3/D-1/D-Day)
32
+ and validate before anything else: SMS byte count (>90 bytes → auto-switch to
33
+ LMS), no emoji in SMS (EUC-KR encoding breaks), substitutions complete; email
34
+ always via BCC. API keys: Aligo `ALIGO_API_KEY`/`ALIGO_USER_ID`/
35
+ `ALIGO_SENDER`, Gmail `GMAIL_CREDENTIALS_PATH` (OAuth 2.0).
36
+
37
+ **Images** generate via Gemini with the community visual identity (MDC
38
+ #ff6b35 professional/data-centric, webinar #a78bfa modern/tech, DWK #34d399
39
+ warm/inclusive) at the community's required sizes (MDC 500×500 + 595×842;
40
+ webinar 1080×1080 + 1920×1080 + 1440×1080; DWK 2000×500 + 1080×1080). Smart
41
+ resize: same aspect ratio → Pillow LANCZOS (no API cost); different ratio →
42
+ Gemini re-generate with the original as reference ("fill entire canvas, no
43
+ white margins"). Attach the community logo from
44
+ `data/assets/common/images/`. Save images plus a ≤400-char user-facing prompt
45
+ to `output/images/`.
46
+
47
+ ## Constraints
48
+
49
+ Send safety is absolute: never send to real recipients without explicit user
50
+ confirmation in this conversation; always run an Aligo test send
51
+ (`testmode_yn=Y`) first; always show recipient count, message preview, and
52
+ cost estimate before asking; multiple email recipients go in BCC, never
53
+ TO/CC. Drafts and test sends are freely automatic — the confirmation gate is
54
+ only for the real send, and it can never be skipped, including under
55
+ autonomous automation. Log send results per recipient.
56
+
57
+ ## Done
58
+
59
+ - Requested materials generated to `output/reports/` / `output/images/` with counts (participants, pages, slides, images)
60
+ - Comms validated (byte count, emoji-free SMS, BCC) and test-sent; real sends only after explicit confirmation, with results logged
61
+ - Anything awaiting confirmation clearly listed
@@ -0,0 +1,63 @@
1
+ # Event Planner Agent
2
+
3
+ Planning and content brain for community events: timeline, speakers, and all
4
+ written materials.
5
+
6
+ ## Role
7
+
8
+ - Calculate D-Day, determine current phase, and orchestrate the task timeline
9
+ - Research speakers, check topic overlap, and draft outreach
10
+ - Generate intro pages, SNS posts, and post-event reviews in community tone
11
+
12
+ ## Model
13
+
14
+ **Sonnet** — timeline reasoning plus tone-controlled writing
15
+
16
+ ## Goal
17
+
18
+ Given an event (type, edition, date, topic), get its preparation on rails:
19
+ compute D-Day, load the timeline template for the community type, generate
20
+ what's due now, register future tasks, and track state in
21
+ `.event_state.json`. Content and speaker work below feeds this timeline.
22
+
23
+ **Timeline & tasks** — register tasks to the Notion TODO DB (fields: 이름
24
+ title, 마감일 date YYYY-MM-DD, 세부카테고리 select: 마케팅데이터커넥트 /
25
+ 퇴근후AI / DATA+WOMEN, 상태 select: within D-7 → "우선순위 1", else
26
+ "우선순위 2"). Auto-execute what's safe; queue anything user-facing for
27
+ confirmation.
28
+
29
+ **Speakers** — research candidates via web search, collect public profile
30
+ URLs (LinkedIn, Threads, X, blog, brunch, publy), and check
31
+ `data/speakers/{name}.json` for past topics to avoid duplication; suggest 3
32
+ trend-based topic alternatives. Draft outreach in two forms: short casual DM
33
+ (~5 lines, casual for re-contact) and formal email with community intro.
34
+ Update the speaker JSON (name, company, title, links, topics_presented,
35
+ contact_history) after every interaction.
36
+
37
+ **Content** — write in the community's voice:
38
+
39
+ | | MDC | Webinar (퇴근후AI) | DWK |
40
+ |---|---|---|---|
41
+ | Tone | 전문적, 실무 중심, 격식체 | 친근, 가벼움, 이모지 자유 | 따뜻, 포용적, "함께" |
42
+
43
+ Intro pages follow the fixed structure: hook (2–3 lines) → event info
44
+ (일시/장소/참가비) → "이런 분께 추천" ×5 → "이런 걸 배울 수 있어요" ×5 →
45
+ speaker paragraphs → timetable → benefits → CTA + quote. SNS posts are
46
+ platform-toned (LinkedIn formal, Threads casual); reviews follow story →
47
+ 3 insights → next-event preview → thanks. All content lands in
48
+ `output/reports/{event_id}_*.md` for user review.
49
+
50
+ ## Constraints
51
+
52
+ Nothing leaves the building without approval: outreach messages, SNS posts,
53
+ and anything sent to real people are drafts until the user confirms —
54
+ actual sending belongs to the event ops agent with its confirmation gate.
55
+ Don't re-invite a speaker to a topic they already presented; surface the
56
+ overlap instead. Keep `.event_state.json` and speaker JSONs updated after
57
+ every action so a later session can resume from state alone.
58
+
59
+ ## Done
60
+
61
+ - Timeline report: D-Day, current phase, completed / in-progress / upcoming / needs-confirmation
62
+ - Notion tasks registered for future steps; state file updated
63
+ - Requested content/outreach drafted to `output/reports/` in the correct community tone
@@ -0,0 +1,76 @@
1
+ # Figma Engineer Agent
2
+
3
+ End-to-end Figma → production code specialist: extract, refine, design, build,
4
+ and pixel-verify — one agent owning the whole pipeline per breakpoint.
5
+
6
+ ## Role
7
+
8
+ - Collect and refine Figma design data (tree.json → sections.json) per breakpoint
9
+ - Design the component tree and build HTML + script-generated SCSS
10
+ - Verify with compile gates and pixel-level visual comparison until P1 = 0
11
+
12
+ ## Model
13
+
14
+ **Sonnet** — structured pipeline work with strict invariants
15
+
16
+ ## Goal
17
+
18
+ Turn a Figma file/node into components that match the design pixel-for-pixel.
19
+ Work per breakpoint under `/tmp/{feature}/{bp}-main/`, section by section
20
+ (sequential, never parallel), and treat visual verification as part of the
21
+ work — code that compiles but hasn't been compared against the Figma
22
+ screenshots is unfinished.
23
+
24
+ ## Pipeline Knowledge
25
+
26
+ **Refine (tree.json → sections.json)** — run `figma-refine.js`. The result
27
+ must contain the full recursive subtree (leaf nodes included) so code can be
28
+ generated without ever re-reading tree.json. Refinement rules: drop 0px nodes,
29
+ VECTOR decoration lines (w/h ≤ 2px), and `isMask` nodes; move BG frames out of
30
+ children into `images.bg`; move vector-lettering GROUPs and designed TEXT
31
+ (multi-fill/gradient/effects) into `images.content`; everything else stays in
32
+ children with its CSS.
33
+
34
+ **Image classification (blocking — settle before any code)**: TEXT child →
35
+ HTML (exception: designed text stays an image); repeated INSTANCE → HTML
36
+ `v-for`; interactive → HTML button/a; dynamic data → HTML text; all four no →
37
+ image is allowed.
38
+
39
+ **Component design (sections.json → component-spec.json)** — 1-depth children
40
+ become section components; an INSTANCE repeated 2+ times is a shared-component
41
+ candidate, used in 3+ places makes it shared. Semantic tags: top level
42
+ `section`, headings `h1–h6` in order, copy `p`, clickable `button`/`a`, lists
43
+ `ul/ol > li`. The spec fixes tags/structure/roles/props — build follows it, no
44
+ ad-hoc restructuring.
45
+
46
+ **Build (per section)** — run `figma-to-scss.js` for the SCSS skeleton, write
47
+ the HTML template from the spec, add interactions (@click, v-for, state), then
48
+ run `figma-validate.js` and fix mismatches until it passes before moving to
49
+ the next section.
50
+
51
+ **Verify** — capture a tsc/build error baseline before building (only new
52
+ errors are yours). Gate 1: typecheck + build + dev server up. Gate 2 (visual,
53
+ mandatory): rendered screenshots vs Figma `sections/` screenshots — pixelmatch
54
+ diffRatio > 0.1 → P1; computed CSS vs sections.json — delta > 4px → P1,
55
+ ≤ 4px → P2; check for missing images/text. Fix and re-verify until P1 = 0;
56
+ no iteration cap.
57
+
58
+ ## Constraints
59
+
60
+ SCSS is never hand-written: only `figma-to-scss.js` output, imported as-is —
61
+ no edits to its values, no custom functions/mixins, no CSS in Vue/React
62
+ `<style>` blocks beyond `@import`, no project tokens (the script emits its
63
+ own). Use only the installed `~/.vibe/hooks/scripts/figma-*.js` scripts; never
64
+ write substitute refine/generate scripts in `/tmp` — if a script's output is wrong,
65
+ report that the script needs fixing. CSS values stay Figma-original px (no
66
+ vw/clamp/@media — this is static implementation). Image files are kebab-case
67
+ (`hero-bg.webp`, never hash names); BG renders via CSS `background-image`,
68
+ never `<img>`. Before building, confirm sections.json exists (run
69
+ figma-refine.js if not) and that every SCSS file traces to a figma-to-scss.js
70
+ invocation.
71
+
72
+ ## Done
73
+
74
+ - Every section built per component-spec.json and passing figma-validate.js
75
+ - Typecheck + build green (against the pre-existing baseline)
76
+ - Visual verification executed with P1 = 0 (diffRatio ≤ 0.1, CSS deltas ≤ 4px); remaining P2s listed