@devo-bmad-custom/agent-orchestration 1.0.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 (714) hide show
  1. package/bin/bmad.js +36 -0
  2. package/lib/cli.js +137 -0
  3. package/lib/filter.js +73 -0
  4. package/lib/installer.js +787 -0
  5. package/package.json +30 -0
  6. package/src/.agents/skills/audit-website/README.md +20 -0
  7. package/src/.agents/skills/audit-website/SKILL.md +470 -0
  8. package/src/.agents/skills/audit-website/agents/openai.yaml +6 -0
  9. package/src/.agents/skills/audit-website/assets/icon-small.svg +41 -0
  10. package/src/.agents/skills/audit-website/references/OUTPUT-FORMAT.md +250 -0
  11. package/src/.agents/skills/clean-code-standards/SKILL.md +105 -0
  12. package/src/.agents/skills/excalidraw-dark-standard/SKILL.md +282 -0
  13. package/src/.agents/skills/excalidraw-diagram-generator/SKILL.md +613 -0
  14. package/src/.agents/skills/excalidraw-diagram-generator/references/element-types.md +497 -0
  15. package/src/.agents/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +350 -0
  16. package/src/.agents/skills/excalidraw-diagram-generator/scripts/README.md +193 -0
  17. package/src/.agents/skills/excalidraw-diagram-generator/scripts/add-arrow.py +312 -0
  18. package/src/.agents/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +404 -0
  19. package/src/.agents/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +183 -0
  20. package/src/.agents/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +334 -0
  21. package/src/.agents/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +558 -0
  22. package/src/.agents/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +279 -0
  23. package/src/.agents/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +662 -0
  24. package/src/.agents/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +179 -0
  25. package/src/.agents/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +244 -0
  26. package/src/.agents/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +145 -0
  27. package/src/.agents/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +509 -0
  28. package/src/.agents/skills/frontend-responsive-design-standards/SKILL.md +434 -0
  29. package/src/.agents/skills/java-fundamentals/SKILL.md +116 -0
  30. package/src/.agents/skills/java-performance/SKILL.md +119 -0
  31. package/src/.agents/skills/next-best-practices/SKILL.md +153 -0
  32. package/src/.agents/skills/next-best-practices/async-patterns.md +87 -0
  33. package/src/.agents/skills/next-best-practices/bundling.md +180 -0
  34. package/src/.agents/skills/next-best-practices/data-patterns.md +297 -0
  35. package/src/.agents/skills/next-best-practices/debug-tricks.md +105 -0
  36. package/src/.agents/skills/next-best-practices/directives.md +73 -0
  37. package/src/.agents/skills/next-best-practices/error-handling.md +227 -0
  38. package/src/.agents/skills/next-best-practices/file-conventions.md +140 -0
  39. package/src/.agents/skills/next-best-practices/font.md +245 -0
  40. package/src/.agents/skills/next-best-practices/functions.md +108 -0
  41. package/src/.agents/skills/next-best-practices/hydration-error.md +91 -0
  42. package/src/.agents/skills/next-best-practices/image.md +173 -0
  43. package/src/.agents/skills/next-best-practices/metadata.md +301 -0
  44. package/src/.agents/skills/next-best-practices/parallel-routes.md +287 -0
  45. package/src/.agents/skills/next-best-practices/route-handlers.md +146 -0
  46. package/src/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
  47. package/src/.agents/skills/next-best-practices/runtime-selection.md +39 -0
  48. package/src/.agents/skills/next-best-practices/scripts.md +141 -0
  49. package/src/.agents/skills/next-best-practices/self-hosting.md +371 -0
  50. package/src/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
  51. package/src/.agents/skills/nextjs-app-router-patterns/SKILL.md +537 -0
  52. package/src/.agents/skills/postgresql-optimization/SKILL.md +404 -0
  53. package/src/.agents/skills/python-backend/SKILL.md +153 -0
  54. package/src/.agents/skills/python-fundamentals/SKILL.md +234 -0
  55. package/src/.agents/skills/python-performance/SKILL.md +404 -0
  56. package/src/.agents/skills/react-expert/SKILL.md +335 -0
  57. package/src/.agents/skills/redis-best-practices/SKILL.md +438 -0
  58. package/src/.agents/skills/security-best-practices/SKILL.md +288 -0
  59. package/src/.agents/skills/security-review/LICENSE +22 -0
  60. package/src/.agents/skills/security-review/SKILL.md +312 -0
  61. package/src/.agents/skills/security-review/infrastructure/docker.md +432 -0
  62. package/src/.agents/skills/security-review/languages/javascript.md +388 -0
  63. package/src/.agents/skills/security-review/languages/python.md +363 -0
  64. package/src/.agents/skills/security-review/references/api-security.md +519 -0
  65. package/src/.agents/skills/security-review/references/authentication.md +353 -0
  66. package/src/.agents/skills/security-review/references/authorization.md +372 -0
  67. package/src/.agents/skills/security-review/references/business-logic.md +443 -0
  68. package/src/.agents/skills/security-review/references/cryptography.md +329 -0
  69. package/src/.agents/skills/security-review/references/csrf.md +398 -0
  70. package/src/.agents/skills/security-review/references/data-protection.md +378 -0
  71. package/src/.agents/skills/security-review/references/deserialization.md +410 -0
  72. package/src/.agents/skills/security-review/references/error-handling.md +436 -0
  73. package/src/.agents/skills/security-review/references/file-security.md +457 -0
  74. package/src/.agents/skills/security-review/references/injection.md +259 -0
  75. package/src/.agents/skills/security-review/references/logging.md +433 -0
  76. package/src/.agents/skills/security-review/references/misconfiguration.md +435 -0
  77. package/src/.agents/skills/security-review/references/modern-threats.md +475 -0
  78. package/src/.agents/skills/security-review/references/ssrf.md +415 -0
  79. package/src/.agents/skills/security-review/references/supply-chain.md +405 -0
  80. package/src/.agents/skills/security-review/references/xss.md +336 -0
  81. package/src/.agents/skills/subagent-driven-development/SKILL.md +275 -0
  82. package/src/.agents/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  83. package/src/.agents/skills/subagent-driven-development/implementer-prompt.md +113 -0
  84. package/src/.agents/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  85. package/src/.agents/skills/systematic-debugging/CREATION-LOG.md +119 -0
  86. package/src/.agents/skills/systematic-debugging/SKILL.md +296 -0
  87. package/src/.agents/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  88. package/src/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
  89. package/src/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
  90. package/src/.agents/skills/systematic-debugging/find-polluter.sh +63 -0
  91. package/src/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
  92. package/src/.agents/skills/systematic-debugging/test-academic.md +14 -0
  93. package/src/.agents/skills/systematic-debugging/test-pressure-1.md +58 -0
  94. package/src/.agents/skills/systematic-debugging/test-pressure-2.md +68 -0
  95. package/src/.agents/skills/systematic-debugging/test-pressure-3.md +69 -0
  96. package/src/.agents/skills/typescript-best-practices/SKILL.md +373 -0
  97. package/src/.agents/skills/ui-ux-pro-custom/SKILL.md +348 -0
  98. package/src/.agents/skills/ui-ux-pro-custom/data/charts.csv +26 -0
  99. package/src/.agents/skills/ui-ux-pro-custom/data/colors.csv +97 -0
  100. package/src/.agents/skills/ui-ux-pro-custom/data/icons.csv +101 -0
  101. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/SKILL.md +106 -0
  102. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/accessibility.md +475 -0
  103. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/animation.md +466 -0
  104. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/composition-locals.md +231 -0
  105. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/deprecated-patterns.md +323 -0
  106. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/lists-scrolling.md +400 -0
  107. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/modifiers.md +331 -0
  108. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/navigation.md +416 -0
  109. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/performance.md +446 -0
  110. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/side-effects.md +516 -0
  111. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/foundation-source.md +13327 -0
  112. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/material3-source.md +19097 -0
  113. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/navigation-source.md +2947 -0
  114. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/runtime-source.md +11316 -0
  115. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/ui-source.md +7896 -0
  116. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/state-management.md +377 -0
  117. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/styles-experimental.md +470 -0
  118. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/theming-material3.md +349 -0
  119. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/view-composition.md +595 -0
  120. package/src/.agents/skills/ui-ux-pro-custom/data/landing.csv +31 -0
  121. package/src/.agents/skills/ui-ux-pro-custom/data/mobile-ui-layout.md +654 -0
  122. package/src/.agents/skills/ui-ux-pro-custom/data/products.csv +97 -0
  123. package/src/.agents/skills/ui-ux-pro-custom/data/react-performance.csv +45 -0
  124. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/astro.csv +54 -0
  125. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/flutter.csv +53 -0
  126. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/html-tailwind.csv +56 -0
  127. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/jetpack-compose.csv +53 -0
  128. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/nextjs.csv +53 -0
  129. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/nuxt-ui.csv +51 -0
  130. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/nuxtjs.csv +59 -0
  131. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/react-native.csv +56 -0
  132. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/react.csv +54 -0
  133. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/shadcn.csv +61 -0
  134. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/svelte.csv +54 -0
  135. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/swiftui.csv +51 -0
  136. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/vue.csv +50 -0
  137. package/src/.agents/skills/ui-ux-pro-custom/data/styles.csv +68 -0
  138. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/alarmkit/SKILL.md +438 -0
  139. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/alarmkit/references/alarmkit-patterns.md +584 -0
  140. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-clips/SKILL.md +436 -0
  141. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-intents/SKILL.md +489 -0
  142. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-intents/references/appintents-advanced.md +1076 -0
  143. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-store-review/SKILL.md +340 -0
  144. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-store-review/references/privacy-manifest.md +90 -0
  145. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-store-review/references/review-checklists.md +106 -0
  146. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/SKILL.md +500 -0
  147. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/coreml-conversion.md +425 -0
  148. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/coreml-optimization.md +344 -0
  149. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/foundation-models.md +508 -0
  150. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/mlx-swift.md +285 -0
  151. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/authentication/SKILL.md +496 -0
  152. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/authentication/references/keychain-biometric.md +211 -0
  153. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/background-processing/SKILL.md +499 -0
  154. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/background-processing/references/background-task-patterns.md +390 -0
  155. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/callkit-voip/SKILL.md +461 -0
  156. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/callkit-voip/references/callkit-patterns.md +425 -0
  157. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/cloudkit-sync/SKILL.md +492 -0
  158. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/cloudkit-sync/references/cloudkit-patterns.md +461 -0
  159. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/codable-patterns/SKILL.md +467 -0
  160. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/contacts-framework/SKILL.md +425 -0
  161. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/contacts-framework/references/contacts-patterns.md +409 -0
  162. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-bluetooth/SKILL.md +491 -0
  163. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-bluetooth/references/ble-patterns.md +435 -0
  164. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-motion/SKILL.md +388 -0
  165. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-motion/references/motion-patterns.md +405 -0
  166. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-nfc/SKILL.md +495 -0
  167. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-nfc/references/nfc-patterns.md +420 -0
  168. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/coreml/SKILL.md +459 -0
  169. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/coreml/references/coreml-swift-integration.md +765 -0
  170. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/debugging-instruments/SKILL.md +422 -0
  171. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/debugging-instruments/references/instruments-guide.md +387 -0
  172. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/debugging-instruments/references/lldb-patterns.md +298 -0
  173. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/device-integrity/SKILL.md +477 -0
  174. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/energykit/SKILL.md +460 -0
  175. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/energykit/references/energykit-patterns.md +541 -0
  176. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/eventkit-calendar/SKILL.md +483 -0
  177. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/eventkit-calendar/references/eventkit-patterns.md +326 -0
  178. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/healthkit/SKILL.md +498 -0
  179. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/healthkit/references/healthkit-patterns.md +602 -0
  180. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/homekit-matter/SKILL.md +496 -0
  181. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/homekit-matter/references/matter-commissioning.md +455 -0
  182. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-accessibility/SKILL.md +301 -0
  183. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-accessibility/references/a11y-patterns.md +140 -0
  184. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-localization/SKILL.md +418 -0
  185. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-localization/references/formatstyle-locale.md +627 -0
  186. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-localization/references/string-catalogs.md +462 -0
  187. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/SKILL.md +441 -0
  188. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/background-websocket.md +862 -0
  189. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/lightweight-clients.md +93 -0
  190. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/network-framework.md +563 -0
  191. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/urlsession-patterns.md +1116 -0
  192. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/SKILL.md +496 -0
  193. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/app-review-guidelines.md +174 -0
  194. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/cryptokit-advanced.md +297 -0
  195. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/file-storage-patterns.md +354 -0
  196. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/privacy-manifest.md +117 -0
  197. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/live-activities/SKILL.md +500 -0
  198. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/live-activities/references/live-activity-patterns.md +868 -0
  199. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/mapkit-location/SKILL.md +485 -0
  200. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/mapkit-location/references/corelocation-patterns.md +730 -0
  201. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/mapkit-location/references/mapkit-patterns.md +748 -0
  202. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/metrickit-diagnostics/SKILL.md +479 -0
  203. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/musickit-audio/SKILL.md +395 -0
  204. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/musickit-audio/references/musickit-patterns.md +363 -0
  205. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/natural-language/SKILL.md +412 -0
  206. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/natural-language/references/translation-patterns.md +311 -0
  207. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/passkit-wallet/SKILL.md +398 -0
  208. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/passkit-wallet/references/wallet-passes.md +254 -0
  209. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/pencilkit-drawing/SKILL.md +387 -0
  210. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/pencilkit-drawing/references/paperkit-integration.md +376 -0
  211. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/pencilkit-drawing/references/pencilkit-patterns.md +302 -0
  212. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/permissionkit/SKILL.md +446 -0
  213. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/permissionkit/references/permissionkit-patterns.md +435 -0
  214. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/SKILL.md +501 -0
  215. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/av-playback.md +701 -0
  216. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/camera-capture.md +774 -0
  217. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/image-loading-caching.md +869 -0
  218. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/photospicker-patterns.md +597 -0
  219. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/push-notifications/SKILL.md +501 -0
  220. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/push-notifications/references/notification-patterns.md +677 -0
  221. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/push-notifications/references/rich-notifications.md +745 -0
  222. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/realitykit-ar/SKILL.md +479 -0
  223. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/realitykit-ar/references/realitykit-patterns.md +480 -0
  224. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/shareplay-activities/SKILL.md +483 -0
  225. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/shareplay-activities/references/shareplay-patterns.md +544 -0
  226. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/speech-recognition/SKILL.md +485 -0
  227. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/storekit/SKILL.md +478 -0
  228. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/storekit/references/app-review-guidelines.md +58 -0
  229. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/storekit/references/storekit-advanced.md +755 -0
  230. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-charts/SKILL.md +487 -0
  231. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-charts/references/charts-patterns.md +895 -0
  232. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/SKILL.md +408 -0
  233. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/approachable-concurrency.md +80 -0
  234. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/swift-6-2-concurrency.md +233 -0
  235. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/swiftui-concurrency.md +187 -0
  236. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/synchronization-primitives.md +341 -0
  237. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-language/SKILL.md +498 -0
  238. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-language/references/swift-patterns-extended.md +505 -0
  239. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-testing/SKILL.md +467 -0
  240. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-testing/references/testing-patterns.md +504 -0
  241. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/SKILL.md +334 -0
  242. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/references/core-data-coexistence.md +504 -0
  243. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/references/swiftdata-advanced.md +975 -0
  244. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/references/swiftdata-queries.md +675 -0
  245. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-animation/SKILL.md +481 -0
  246. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-animation/references/animation-advanced.md +804 -0
  247. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-animation/references/core-animation-bridge.md +553 -0
  248. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-gestures/SKILL.md +450 -0
  249. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-gestures/references/gesture-patterns.md +425 -0
  250. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/SKILL.md +336 -0
  251. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/form.md +97 -0
  252. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/grids.md +69 -0
  253. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/list.md +99 -0
  254. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/scrollview.md +147 -0
  255. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-liquid-glass/SKILL.md +325 -0
  256. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-liquid-glass/references/liquid-glass.md +387 -0
  257. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/SKILL.md +262 -0
  258. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/deeplinks.md +207 -0
  259. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/navigationstack.md +177 -0
  260. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/sheets.md +169 -0
  261. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/tabview.md +178 -0
  262. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/SKILL.md +381 -0
  263. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/architecture-patterns.md +486 -0
  264. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/deprecated-migration.md +1097 -0
  265. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/design-polish.md +780 -0
  266. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/platform-and-sharing.md +696 -0
  267. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/SKILL.md +491 -0
  268. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +46 -0
  269. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +29 -0
  270. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/understanding-hangs-in-your-app.md +33 -0
  271. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/understanding-improving-swiftui-performance.md +52 -0
  272. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-uikit-interop/SKILL.md +428 -0
  273. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-uikit-interop/references/hosting-migration.md +534 -0
  274. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-uikit-interop/references/representable-recipes.md +1133 -0
  275. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/tipkit/SKILL.md +494 -0
  276. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/tipkit/references/tipkit-patterns.md +782 -0
  277. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/SKILL.md +475 -0
  278. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/references/vision-requests.md +736 -0
  279. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/references/visionkit-scanner.md +738 -0
  280. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/weatherkit/SKILL.md +410 -0
  281. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/weatherkit/references/weatherkit-patterns.md +567 -0
  282. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/widgetkit/SKILL.md +497 -0
  283. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/widgetkit/references/widgetkit-advanced.md +871 -0
  284. package/src/.agents/skills/ui-ux-pro-custom/data/typography.csv +58 -0
  285. package/src/.agents/skills/ui-ux-pro-custom/data/ui-reasoning.csv +101 -0
  286. package/src/.agents/skills/ui-ux-pro-custom/data/ux-guidelines.csv +100 -0
  287. package/src/.agents/skills/ui-ux-pro-custom/data/web-interface.csv +31 -0
  288. package/src/.agents/skills/ui-ux-pro-custom/scripts/core.py +253 -0
  289. package/src/.agents/skills/ui-ux-pro-custom/scripts/design_system.py +1067 -0
  290. package/src/.agents/skills/ui-ux-pro-custom/scripts/search.py +114 -0
  291. package/src/.agents/skills/ux-audit/SKILL.md +151 -0
  292. package/src/.agents/skills/websocket-engineer/SKILL.md +168 -0
  293. package/src/.agents/skills/websocket-engineer/references/alternatives.md +391 -0
  294. package/src/.agents/skills/websocket-engineer/references/patterns.md +400 -0
  295. package/src/.agents/skills/websocket-engineer/references/protocol.md +195 -0
  296. package/src/.agents/skills/websocket-engineer/references/scaling.md +333 -0
  297. package/src/.agents/skills/websocket-engineer/references/security.md +474 -0
  298. package/src/.agents/skills/writing-skills/SKILL.md +655 -0
  299. package/src/.agents/skills/writing-skills/anthropic-best-practices.md +1150 -0
  300. package/src/.agents/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  301. package/src/.agents/skills/writing-skills/graphviz-conventions.dot +172 -0
  302. package/src/.agents/skills/writing-skills/persuasion-principles.md +187 -0
  303. package/src/.agents/skills/writing-skills/render-graphs.js +168 -0
  304. package/src/.agents/skills/writing-skills/testing-skills-with-subagents.md +384 -0
  305. package/src/.claude/commands/bmad-track-compact.md +19 -0
  306. package/src/.claude/commands/bmad-track-extended.md +19 -0
  307. package/src/.claude/commands/bmad-track-large.md +19 -0
  308. package/src/.claude/commands/bmad-track-medium.md +19 -0
  309. package/src/.claude/commands/bmad-track-nano.md +19 -0
  310. package/src/.claude/commands/bmad-track-rv.md +18 -0
  311. package/src/.claude/commands/bmad-track-small.md +19 -0
  312. package/src/_memory/config.yaml +11 -0
  313. package/src/_memory/master-orchestrator-sidecar/docs-index.md +3 -0
  314. package/src/_memory/master-orchestrator-sidecar/instructions.md +2566 -0
  315. package/src/_memory/master-orchestrator-sidecar/memories.md +8 -0
  316. package/src/_memory/master-orchestrator-sidecar/session-state.md +15 -0
  317. package/src/_memory/master-orchestrator-sidecar/triage-history.md +3 -0
  318. package/src/_memory/master-orchestrator-sidecar/workflows-overview.html +1230 -0
  319. package/src/_memory/skills/excalidraw/SKILL.md +78 -0
  320. package/src/_memory/skills/excalidraw/diagram-patterns.md +53 -0
  321. package/src/_memory/skills/nimbalyst-tracking/SKILL.md +103 -0
  322. package/src/_memory/skills/writing-skills/SKILL.md +655 -0
  323. package/src/bmb/agents/agent-builder.md +59 -0
  324. package/src/bmb/agents/module-builder.md +60 -0
  325. package/src/bmb/agents/workflow-builder.md +61 -0
  326. package/src/bmb/config.yaml +12 -0
  327. package/src/bmb/module-help.csv +13 -0
  328. package/src/bmb/workflows/agent/data/agent-architecture.md +258 -0
  329. package/src/bmb/workflows/agent/data/agent-compilation.md +185 -0
  330. package/src/bmb/workflows/agent/data/agent-menu-patterns.md +189 -0
  331. package/src/bmb/workflows/agent/data/agent-metadata.md +133 -0
  332. package/src/bmb/workflows/agent/data/agent-validation.md +111 -0
  333. package/src/bmb/workflows/agent/data/brainstorm-context.md +96 -0
  334. package/src/bmb/workflows/agent/data/communication-presets.csv +61 -0
  335. package/src/bmb/workflows/agent/data/critical-actions.md +75 -0
  336. package/src/bmb/workflows/agent/data/persona-properties.md +252 -0
  337. package/src/bmb/workflows/agent/data/principles-crafting.md +142 -0
  338. package/src/bmb/workflows/agent/data/reference/module-examples/architect.md +68 -0
  339. package/src/bmb/workflows/agent/data/reference/with-sidecar/journal-keeper/journal-keeper-sidecar/entries/yy-mm-dd-entry-template.md +17 -0
  340. package/src/bmb/workflows/agent/data/understanding-agent-types.md +126 -0
  341. package/src/bmb/workflows/agent/steps-c/step-01-brainstorm.md +129 -0
  342. package/src/bmb/workflows/agent/steps-c/step-02-discovery.md +170 -0
  343. package/src/bmb/workflows/agent/steps-c/step-03-sidecar-metadata.md +309 -0
  344. package/src/bmb/workflows/agent/steps-c/step-04-persona.md +213 -0
  345. package/src/bmb/workflows/agent/steps-c/step-05-commands-menu.md +179 -0
  346. package/src/bmb/workflows/agent/steps-c/step-06-activation.md +278 -0
  347. package/src/bmb/workflows/agent/steps-c/step-07-build-agent.md +316 -0
  348. package/src/bmb/workflows/agent/steps-c/step-08-celebrate.md +247 -0
  349. package/src/bmb/workflows/agent/steps-e/e-01-load-existing.md +221 -0
  350. package/src/bmb/workflows/agent/steps-e/e-02-discover-edits.md +195 -0
  351. package/src/bmb/workflows/agent/steps-e/e-03-placeholder.md +1 -0
  352. package/src/bmb/workflows/agent/steps-e/e-04-sidecar-metadata.md +126 -0
  353. package/src/bmb/workflows/agent/steps-e/e-05-persona.md +135 -0
  354. package/src/bmb/workflows/agent/steps-e/e-06-commands-menu.md +123 -0
  355. package/src/bmb/workflows/agent/steps-e/e-07-activation.md +124 -0
  356. package/src/bmb/workflows/agent/steps-e/e-08-edit-agent.md +197 -0
  357. package/src/bmb/workflows/agent/steps-e/e-09-celebrate.md +155 -0
  358. package/src/bmb/workflows/agent/steps-v/v-01-load-review.md +137 -0
  359. package/src/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +116 -0
  360. package/src/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +124 -0
  361. package/src/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +127 -0
  362. package/src/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +134 -0
  363. package/src/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +134 -0
  364. package/src/bmb/workflows/agent/steps-v/v-03-summary.md +104 -0
  365. package/src/bmb/workflows/agent/templates/agent-plan.template.md +5 -0
  366. package/src/bmb/workflows/agent/templates/agent-template.md +89 -0
  367. package/src/bmb/workflows/agent/workflow-create-agent.md +72 -0
  368. package/src/bmb/workflows/agent/workflow-edit-agent.md +75 -0
  369. package/src/bmb/workflows/agent/workflow-validate-agent.md +73 -0
  370. package/src/bmb/workflows/module/data/agent-architecture.md +179 -0
  371. package/src/bmb/workflows/module/data/agent-spec-template.md +79 -0
  372. package/src/bmb/workflows/module/data/module-standards.md +263 -0
  373. package/src/bmb/workflows/module/data/module-yaml-conventions.md +392 -0
  374. package/src/bmb/workflows/module/module-help-generate.md +254 -0
  375. package/src/bmb/workflows/module/steps-b/step-01-welcome.md +148 -0
  376. package/src/bmb/workflows/module/steps-b/step-02-spark.md +141 -0
  377. package/src/bmb/workflows/module/steps-b/step-03-module-type.md +149 -0
  378. package/src/bmb/workflows/module/steps-b/step-04-vision.md +83 -0
  379. package/src/bmb/workflows/module/steps-b/step-05-identity.md +97 -0
  380. package/src/bmb/workflows/module/steps-b/step-06-users.md +86 -0
  381. package/src/bmb/workflows/module/steps-b/step-07-value.md +76 -0
  382. package/src/bmb/workflows/module/steps-b/step-08-agents.md +97 -0
  383. package/src/bmb/workflows/module/steps-b/step-09-workflows.md +83 -0
  384. package/src/bmb/workflows/module/steps-b/step-10-tools.md +91 -0
  385. package/src/bmb/workflows/module/steps-b/step-11-scenarios.md +84 -0
  386. package/src/bmb/workflows/module/steps-b/step-12-creative.md +95 -0
  387. package/src/bmb/workflows/module/steps-b/step-13-review.md +105 -0
  388. package/src/bmb/workflows/module/steps-b/step-14-finalize.md +117 -0
  389. package/src/bmb/workflows/module/steps-c/step-01-load-brief.md +179 -0
  390. package/src/bmb/workflows/module/steps-c/step-01b-continue.md +82 -0
  391. package/src/bmb/workflows/module/steps-c/step-02-structure.md +105 -0
  392. package/src/bmb/workflows/module/steps-c/step-03-config.md +119 -0
  393. package/src/bmb/workflows/module/steps-c/step-04-agents.md +168 -0
  394. package/src/bmb/workflows/module/steps-c/step-05-workflows.md +184 -0
  395. package/src/bmb/workflows/module/steps-c/step-06-docs.md +401 -0
  396. package/src/bmb/workflows/module/steps-c/step-07-complete.md +152 -0
  397. package/src/bmb/workflows/module/steps-e/step-01-load-target.md +81 -0
  398. package/src/bmb/workflows/module/steps-e/step-02-select-edit.md +77 -0
  399. package/src/bmb/workflows/module/steps-e/step-03-apply-edit.md +77 -0
  400. package/src/bmb/workflows/module/steps-e/step-04-review.md +80 -0
  401. package/src/bmb/workflows/module/steps-e/step-05-confirm.md +75 -0
  402. package/src/bmb/workflows/module/steps-v/step-01-load-target.md +96 -0
  403. package/src/bmb/workflows/module/steps-v/step-02-file-structure.md +93 -0
  404. package/src/bmb/workflows/module/steps-v/step-03-module-yaml.md +99 -0
  405. package/src/bmb/workflows/module/steps-v/step-04-agent-specs.md +152 -0
  406. package/src/bmb/workflows/module/steps-v/step-05-workflow-specs.md +152 -0
  407. package/src/bmb/workflows/module/steps-v/step-06-documentation.md +143 -0
  408. package/src/bmb/workflows/module/steps-v/step-07-installation.md +102 -0
  409. package/src/bmb/workflows/module/steps-v/step-08-report.md +197 -0
  410. package/src/bmb/workflows/module/templates/brief-template.md +154 -0
  411. package/src/bmb/workflows/module/templates/workflow-spec-template.md +96 -0
  412. package/src/bmb/workflows/module/workflow-create-module-brief.md +71 -0
  413. package/src/bmb/workflows/module/workflow-create-module.md +86 -0
  414. package/src/bmb/workflows/module/workflow-edit-module.md +66 -0
  415. package/src/bmb/workflows/module/workflow-validate-module.md +66 -0
  416. package/src/bmb/workflows/workflow/data/architecture.md +150 -0
  417. package/src/bmb/workflows/workflow/data/common-workflow-tools.csv +19 -0
  418. package/src/bmb/workflows/workflow/data/csv-data-file-standards.md +53 -0
  419. package/src/bmb/workflows/workflow/data/frontmatter-standards.md +184 -0
  420. package/src/bmb/workflows/workflow/data/input-discovery-standards.md +191 -0
  421. package/src/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +44 -0
  422. package/src/bmb/workflows/workflow/data/menu-handling-standards.md +133 -0
  423. package/src/bmb/workflows/workflow/data/output-format-standards.md +135 -0
  424. package/src/bmb/workflows/workflow/data/step-file-rules.md +235 -0
  425. package/src/bmb/workflows/workflow/data/step-type-patterns.md +257 -0
  426. package/src/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +188 -0
  427. package/src/bmb/workflows/workflow/data/trimodal-workflow-structure.md +164 -0
  428. package/src/bmb/workflows/workflow/data/workflow-chaining-standards.md +222 -0
  429. package/src/bmb/workflows/workflow/data/workflow-examples.md +232 -0
  430. package/src/bmb/workflows/workflow/data/workflow-type-criteria.md +134 -0
  431. package/src/bmb/workflows/workflow/steps-c/step-00-conversion.md +263 -0
  432. package/src/bmb/workflows/workflow/steps-c/step-01-discovery.md +194 -0
  433. package/src/bmb/workflows/workflow/steps-c/step-01b-continuation.md +3 -0
  434. package/src/bmb/workflows/workflow/steps-c/step-02-classification.md +270 -0
  435. package/src/bmb/workflows/workflow/steps-c/step-03-requirements.md +283 -0
  436. package/src/bmb/workflows/workflow/steps-c/step-04-tools.md +282 -0
  437. package/src/bmb/workflows/workflow/steps-c/step-05-plan-review.md +243 -0
  438. package/src/bmb/workflows/workflow/steps-c/step-06-design.md +330 -0
  439. package/src/bmb/workflows/workflow/steps-c/step-07-foundation.md +239 -0
  440. package/src/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +379 -0
  441. package/src/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +350 -0
  442. package/src/bmb/workflows/workflow/steps-c/step-10-confirmation.md +322 -0
  443. package/src/bmb/workflows/workflow/steps-c/step-11-completion.md +191 -0
  444. package/src/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +237 -0
  445. package/src/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +251 -0
  446. package/src/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +254 -0
  447. package/src/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +277 -0
  448. package/src/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +154 -0
  449. package/src/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +190 -0
  450. package/src/bmb/workflows/workflow/steps-e/step-e-07-complete.md +206 -0
  451. package/src/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +109 -0
  452. package/src/bmb/workflows/workflow/steps-v/step-01-validate.md +221 -0
  453. package/src/bmb/workflows/workflow/steps-v/step-01b-structure.md +152 -0
  454. package/src/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +199 -0
  455. package/src/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +265 -0
  456. package/src/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +164 -0
  457. package/src/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +211 -0
  458. package/src/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +200 -0
  459. package/src/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +195 -0
  460. package/src/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +209 -0
  461. package/src/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +199 -0
  462. package/src/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +179 -0
  463. package/src/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +186 -0
  464. package/src/bmb/workflows/workflow/steps-v/step-10-report-complete.md +154 -0
  465. package/src/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +237 -0
  466. package/src/bmb/workflows/workflow/templates/minimal-output-template.md +11 -0
  467. package/src/bmb/workflows/workflow/templates/step-01-init-continuable-template.md +241 -0
  468. package/src/bmb/workflows/workflow/templates/step-1b-template.md +224 -0
  469. package/src/bmb/workflows/workflow/templates/step-template.md +294 -0
  470. package/src/bmb/workflows/workflow/templates/workflow-template.md +102 -0
  471. package/src/bmb/workflows/workflow/workflow-create-workflow.md +79 -0
  472. package/src/bmb/workflows/workflow/workflow-edit-workflow.md +65 -0
  473. package/src/bmb/workflows/workflow/workflow-rework-workflow.md +65 -0
  474. package/src/bmb/workflows/workflow/workflow-validate-max-parallel-workflow.md +66 -0
  475. package/src/bmb/workflows/workflow/workflow-validate-workflow.md +65 -0
  476. package/src/bmm/agents/analyst.md +104 -0
  477. package/src/bmm/agents/architect.md +85 -0
  478. package/src/bmm/agents/dev.md +100 -0
  479. package/src/bmm/agents/pm.md +98 -0
  480. package/src/bmm/agents/qa.md +90 -0
  481. package/src/bmm/agents/quick-flow-solo-dev.md +92 -0
  482. package/src/bmm/agents/review-agent.md +129 -0
  483. package/src/bmm/agents/sm.md +90 -0
  484. package/src/bmm/agents/tech-writer/tech-writer.md +94 -0
  485. package/src/bmm/agents/ux-designer.md +124 -0
  486. package/src/bmm/data/project-context-template.md +26 -0
  487. package/src/bmm/module-help.csv +31 -0
  488. package/src/bmm/teams/default-party.csv +20 -0
  489. package/src/bmm/teams/team-fullstack.yaml +12 -0
  490. package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  491. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +115 -0
  492. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +107 -0
  493. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +141 -0
  494. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +144 -0
  495. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +147 -0
  496. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +161 -0
  497. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +99 -0
  498. package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +57 -0
  499. package/src/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +87 -0
  500. package/src/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +156 -0
  501. package/src/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +165 -0
  502. package/src/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +140 -0
  503. package/src/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +152 -0
  504. package/src/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +345 -0
  505. package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +92 -0
  506. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +164 -0
  507. package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +174 -0
  508. package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +184 -0
  509. package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +105 -0
  510. package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +360 -0
  511. package/src/bmm/workflows/1-analysis/research/research.template.md +29 -0
  512. package/src/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +87 -0
  513. package/src/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +165 -0
  514. package/src/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +174 -0
  515. package/src/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +141 -0
  516. package/src/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +159 -0
  517. package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +387 -0
  518. package/src/bmm/workflows/1-analysis/research/workflow-domain-research.md +54 -0
  519. package/src/bmm/workflows/1-analysis/research/workflow-market-research.md +54 -0
  520. package/src/bmm/workflows/1-analysis/research/workflow-technical-research.md +54 -0
  521. package/src/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +15 -0
  522. package/src/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  523. package/src/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  524. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +139 -0
  525. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +100 -0
  526. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +160 -0
  527. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +88 -0
  528. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +99 -0
  529. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +169 -0
  530. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +156 -0
  531. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +136 -0
  532. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +176 -0
  533. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +184 -0
  534. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +174 -0
  535. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +175 -0
  536. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +189 -0
  537. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +162 -0
  538. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +79 -0
  539. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +183 -0
  540. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +149 -0
  541. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +187 -0
  542. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +192 -0
  543. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +108 -0
  544. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +166 -0
  545. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +131 -0
  546. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +150 -0
  547. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +118 -0
  548. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +155 -0
  549. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +170 -0
  550. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +158 -0
  551. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +147 -0
  552. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +182 -0
  553. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +202 -0
  554. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +148 -0
  555. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +201 -0
  556. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +179 -0
  557. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +164 -0
  558. package/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
  559. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +65 -0
  560. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +65 -0
  561. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +63 -0
  562. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +63 -0
  563. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +63 -0
  564. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +106 -0
  565. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +111 -0
  566. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +115 -0
  567. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +127 -0
  568. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +167 -0
  569. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +143 -0
  570. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +118 -0
  571. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +154 -0
  572. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +136 -0
  573. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +165 -0
  574. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +135 -0
  575. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +192 -0
  576. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +101 -0
  577. package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  578. package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +45 -0
  579. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +185 -0
  580. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +129 -0
  581. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +130 -0
  582. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +93 -0
  583. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +196 -0
  584. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +129 -0
  585. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  586. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +54 -0
  587. package/src/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  588. package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +13 -0
  589. package/src/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  590. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +89 -0
  591. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +82 -0
  592. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +106 -0
  593. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +138 -0
  594. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +129 -0
  595. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +166 -0
  596. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +186 -0
  597. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +163 -0
  598. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +38 -0
  599. package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +49 -0
  600. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +129 -0
  601. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +124 -0
  602. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +122 -0
  603. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +84 -0
  604. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  605. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
  606. package/src/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  607. package/src/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  608. package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +43 -0
  609. package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  610. package/src/bmm/workflows/4-implementation/correct-course/instructions.md +207 -0
  611. package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +53 -0
  612. package/src/bmm/workflows/4-implementation/create-story/checklist.md +159 -0
  613. package/src/bmm/workflows/4-implementation/create-story/instructions.xml +574 -0
  614. package/src/bmm/workflows/4-implementation/create-story/template.md +79 -0
  615. package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +52 -0
  616. package/src/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  617. package/src/bmm/workflows/4-implementation/dev-story/instructions.xml +493 -0
  618. package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +20 -0
  619. package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1444 -0
  620. package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +52 -0
  621. package/src/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  622. package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +232 -0
  623. package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  624. package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +52 -0
  625. package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +230 -0
  626. package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +25 -0
  627. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +158 -0
  628. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +122 -0
  629. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +93 -0
  630. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +93 -0
  631. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +87 -0
  632. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +146 -0
  633. package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
  634. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +204 -0
  635. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +152 -0
  636. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +123 -0
  637. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +201 -0
  638. package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  639. package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  640. package/src/bmm/workflows/document-project/checklist.md +245 -0
  641. package/src/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  642. package/src/bmm/workflows/document-project/instructions.md +130 -0
  643. package/src/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  644. package/src/bmm/workflows/document-project/templates/index-template.md +169 -0
  645. package/src/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  646. package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  647. package/src/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  648. package/src/bmm/workflows/document-project/workflow.yaml +22 -0
  649. package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  650. package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  651. package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  652. package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  653. package/src/bmm/workflows/generate-project-context/project-context-template.md +21 -0
  654. package/src/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
  655. package/src/bmm/workflows/generate-project-context/steps/step-02-generate.md +322 -0
  656. package/src/bmm/workflows/generate-project-context/steps/step-03-complete.md +235 -0
  657. package/src/bmm/workflows/generate-project-context/workflow.md +49 -0
  658. package/src/bmm/workflows/qa/automate/workflow.yaml +233 -0
  659. package/src/bmm/workflows/qa-generate-e2e-tests/checklist.md +33 -0
  660. package/src/bmm/workflows/qa-generate-e2e-tests/instructions.md +110 -0
  661. package/src/bmm/workflows/qa-generate-e2e-tests/workflow.yaml +42 -0
  662. package/src/core/agents/bmad-master.md +56 -0
  663. package/src/core/agents/master-orchestrator.md +54 -0
  664. package/src/core/config.yaml +9 -0
  665. package/src/core/module-help.csv +10 -0
  666. package/src/core/scripts/generate-loop-report.py +72 -0
  667. package/src/core/skills/prepare-to-merge/SKILL.md +77 -0
  668. package/src/core/tasks/editorial-review-prose.xml +102 -0
  669. package/src/core/tasks/editorial-review-structure.xml +208 -0
  670. package/src/core/tasks/help.md +86 -0
  671. package/src/core/tasks/index-docs.xml +65 -0
  672. package/src/core/tasks/review-adversarial-general.xml +66 -0
  673. package/src/core/tasks/review-adversarial-loop.xml +46 -0
  674. package/src/core/tasks/review-edge-case-hunter.xml +63 -0
  675. package/src/core/tasks/review-party-loop.xml +46 -0
  676. package/src/core/tasks/shard-doc.xml +108 -0
  677. package/src/core/tasks/workflow.xml +236 -0
  678. package/src/core/templates/review-loop-report.html +88 -0
  679. package/src/core/templates/review-loop-report.md +5 -0
  680. package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
  681. package/src/core/workflows/advanced-elicitation/workflow.xml +118 -0
  682. package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
  683. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +212 -0
  684. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  685. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  686. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  687. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  688. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  689. package/src/core/workflows/brainstorming/steps/step-02e-deep-dive.md +68 -0
  690. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +403 -0
  691. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  692. package/src/core/workflows/brainstorming/template.md +15 -0
  693. package/src/core/workflows/brainstorming/workflow.md +60 -0
  694. package/src/core/workflows/extract-trackers/workflow.md +45 -0
  695. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +142 -0
  696. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  697. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +168 -0
  698. package/src/core/workflows/party-mode/workflow.md +194 -0
  699. package/src/docs/dev/tmux/actions_popup.py +291 -0
  700. package/src/docs/dev/tmux/actions_popup.sh +110 -0
  701. package/src/docs/dev/tmux/claude_usage.sh +15 -0
  702. package/src/docs/dev/tmux/colors.conf +34 -0
  703. package/src/docs/dev/tmux/cpu_usage.sh +7 -0
  704. package/src/docs/dev/tmux/dispatch.sh +10 -0
  705. package/src/docs/dev/tmux/float_init.sh +13 -0
  706. package/src/docs/dev/tmux/float_term.sh +23 -0
  707. package/src/docs/dev/tmux/open_clip.sh +14 -0
  708. package/src/docs/dev/tmux/paste_clipboard.sh +13 -0
  709. package/src/docs/dev/tmux/paste_image_wrapper.sh +83 -0
  710. package/src/docs/dev/tmux/ram_usage.sh +3 -0
  711. package/src/docs/dev/tmux/title_sync.sh +54 -0
  712. package/src/docs/dev/tmux/tmux-setup.md +806 -0
  713. package/src/docs/dev/tmux/tmux.conf +127 -0
  714. package/src/docs/dev/tmux/xclip +18 -0
@@ -0,0 +1,806 @@
1
+ # TMUX Setup
2
+
3
+ WSL2 / Windows Terminal tmux config — Catppuccin Frappe theme, color emoji icons,
4
+ Powerline-style single status bar with clickable buttons and live stats.
5
+
6
+ ---
7
+
8
+ ## Shell Commands
9
+
10
+ ```bash
11
+ squid # open a new tmux session in the Squidhub project directory
12
+ squid-claude # same, but immediately launches Claude with --dangerously-skip-permissions
13
+ ```
14
+
15
+ Defined in `~/.bashrc`:
16
+ ```bash
17
+ alias squid='tmux new-session -c /mnt/c/Users/White/Documents/Squidhub/Squidhub'
18
+ alias squid-claude='tmux new-session -c /mnt/c/Users/White/Documents/Squidhub/Squidhub "claude --dangerously-skip-permissions"'
19
+ ```
20
+
21
+ ---
22
+
23
+ ## Prerequisites (Fresh Machine)
24
+
25
+ ### 1. Enable WSL2 and install Ubuntu
26
+
27
+ Run in PowerShell (Admin):
28
+ ```powershell
29
+ wsl --install
30
+ ```
31
+ This installs WSL2 and Ubuntu in one step. Reboot when prompted.
32
+
33
+ On first Ubuntu launch, create a UNIX username and password.
34
+
35
+ ### 2. Update packages
36
+
37
+ Before installing anything, bring Ubuntu's package index and installed packages up to date. Many packages (especially `wl-clipboard`, `wslu`, and `imagemagick`) will fail or install outdated versions without this step.
38
+
39
+ ```bash
40
+ sudo apt-get update && sudo apt-get upgrade -y
41
+ ```
42
+
43
+ ### 3. Install tmux
44
+
45
+ ```bash
46
+ sudo apt-get install -y tmux
47
+ ```
48
+
49
+ ### 4. Install NVM + Node (required for Node-based MCP servers)
50
+
51
+ ```bash
52
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
53
+ source ~/.bashrc
54
+ nvm install --lts
55
+ ```
56
+
57
+ ### 5. Enable Docker Desktop WSL integration (required for docker-exec MCP servers)
58
+
59
+ Open **Docker Desktop → Settings → Resources → WSL Integration**, toggle on your Ubuntu distro, click **Apply & Restart**.
60
+
61
+ > ⚠️ Without this, the `n8n-unnportal` and `dokploy` MCP servers will fail to connect even though Docker is installed on Windows.
62
+
63
+ ---
64
+
65
+ ## Git Configuration
66
+
67
+ ### Identity
68
+
69
+ ```bash
70
+ git config --global user.name "Your Name"
71
+ git config --global user.email "you@example.com"
72
+ ```
73
+
74
+ ### Authentication (recommended — Windows Credential Manager bridge)
75
+
76
+ This reuses whatever GitHub/Azure auth you already have on Windows. Requires **Git for Windows** installed.
77
+
78
+ ```bash
79
+ git config --global credential.helper "/mnt/c/Program Files/Git/mingw64/bin/git-credential-manager.exe"
80
+ ```
81
+
82
+ First `git push` or `git pull` to a private repo will open a browser OAuth flow and cache the token permanently — no PAT management needed.
83
+
84
+ **Verify it works:**
85
+ ```bash
86
+ git fetch origin
87
+ ```
88
+
89
+ ### SSH alternative
90
+
91
+ If you prefer SSH keys instead:
92
+ ```bash
93
+ ssh-keygen -t ed25519 -C "you@example.com"
94
+ cat ~/.ssh/id_ed25519.pub # paste this into GitHub → Settings → SSH Keys
95
+ git remote set-url origin git@github.com:unn-corp/Squidhub.git
96
+ ```
97
+
98
+ ---
99
+
100
+ ## Installation
101
+
102
+ ### What Claude can install for you
103
+ Tell Claude to "set up my tmux config" and it will:
104
+ - Write `~/.tmux.conf` (full config below)
105
+ - Write all scripts in `~/.config/tmux/bin/`
106
+ - Write the WSL2 `~/.local/bin/xclip` shim
107
+ - Update `~/.bashrc` with the `squid` alias
108
+ - Download `fzf` binary to `~/.local/bin/fzf`
109
+ - Clone TPM if not present
110
+ - Create `~/.local/bin/xdg-open` symlink → `wslview`
111
+
112
+ ### What must be done manually (requires sudo or GUI)
113
+
114
+ | Step | Command / Notes |
115
+ |------|-----------------|
116
+ | Install JetBrainsMono NFM (see §3) | Windows font install — double-click in Explorer |
117
+ | Set font in terminal emulator (see §3) | Edit `settings.json` in Cursor / VS Code / WT |
118
+ | `sudo apt-get install -y wl-clipboard` | Wayland clipboard access for `Alt+V` paste (`wl-paste`) |
119
+ | `sudo apt-get install -y imagemagick` | BMP/JPEG/WEBP → PNG conversion for `Alt+V` paste |
120
+ | `sudo apt-get install -y wslu` | Provides `wslview` — required for tmux-open URL opening in WSL2 |
121
+ | Press `Ctrl+B I` inside tmux after first launch | TPM plugin install — requires interactive session |
122
+
123
+ After installing `wslu`, create the `xdg-open` shim (no sudo):
124
+ ```bash
125
+ ln -sf /usr/bin/wslview ~/.local/bin/xdg-open
126
+ ```
127
+ This is needed because `tmux-open` hard-codes a check for `xdg-open` and errors if not found.
128
+
129
+ ---
130
+
131
+ ## Full `~/.tmux.conf`
132
+
133
+ See [`tmux.conf`](tmux.conf) in this directory for the exact current config.
134
+
135
+ > ⚠️ This file contains Unicode emoji (status bar icons). Always write it via Python with
136
+ > `open(..., encoding='utf-8', newline='\n')` — standard shell tools strip non-ASCII.
137
+
138
+ ---
139
+
140
+ ## One-Time Setup
141
+
142
+ ### 1. Install TPM
143
+ ```bash
144
+ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
145
+ ```
146
+ Start tmux, then press `Ctrl+B I` (capital I) to install all plugins.
147
+
148
+ ### 2. Install system packages
149
+ ```bash
150
+ sudo apt-get install -y wl-clipboard imagemagick wslu
151
+ ln -sf /usr/bin/wslview ~/.local/bin/xdg-open
152
+ ```
153
+ - `wl-clipboard` — Wayland clipboard access (`wl-paste`) for `Alt+V` paste
154
+ - `imagemagick` — converts BMP/JPEG/WEBP → PNG for `Alt+V` paste
155
+ - `wslu` / `wslview` — opens URLs/files in Windows from WSL2 (tmux-open)
156
+
157
+ ### 3. Nerd Fonts
158
+
159
+ Required for Powerline separator characters in the status bar.
160
+
161
+ **Step 1 — Install JetBrainsMono NFM**
162
+
163
+ Download from [nerdfonts.com](https://www.nerdfonts.com/). Install `JetBrainsMonoNerdFontMono-Regular.ttf` (and Bold) to Windows by double-clicking → "Install for all users". Use the **NFM (Mono)** variant — single-width glyphs required for correct terminal cell alignment.
164
+
165
+ **Step 2 — Set font in your terminal emulator**
166
+
167
+ > ⚠️ Icons only render if the **terminal emulator** uses the Nerd Font.
168
+ > Windows Terminal settings have **no effect** if you are inside Cursor, VS Code, or another editor's integrated terminal.
169
+
170
+ **Cursor / VS Code** (`Ctrl+Shift+P` → Open User Settings JSON):
171
+ ```json
172
+ "terminal.integrated.fontFamily": "JetBrainsMono NFM",
173
+ "terminal.integrated.fontSize": 13
174
+ ```
175
+
176
+ **Windows Terminal** (each profile in `settings.json`):
177
+ ```json
178
+ "font": {
179
+ "face": "JetBrainsMono NFM",
180
+ "size": 11,
181
+ "builtinGlyphs": false
182
+ }
183
+ ```
184
+
185
+ ### 4. fzf (for Actions menu)
186
+ ```bash
187
+ mkdir -p ~/.local/bin
188
+ curl -Lo /tmp/fzf.tar.gz https://github.com/junegunn/fzf/releases/download/v0.54.3/fzf-0.54.3-linux_amd64.tar.gz
189
+ tar -xzf /tmp/fzf.tar.gz -C ~/.local/bin
190
+ ```
191
+
192
+ ---
193
+
194
+ ## Files
195
+
196
+ | File | Purpose |
197
+ |------|---------|
198
+ | `~/.tmux.conf` | Main tmux config |
199
+ | `~/.config/tmux/colors.conf` | Catppuccin Frappe palette variables |
200
+ | `~/.config/tmux/bin/dispatch.sh` | Mouse click handler for status bar buttons |
201
+ | `~/.config/tmux/bin/actions_popup.py` | Python Actions popup menu (grid layout, mouse + keyboard) |
202
+ | `~/.config/tmux/bin/actions_popup.sh` | Shell fallback for Actions menu (fzf-powered) |
203
+ | `~/.config/tmux/bin/title_sync.sh` | Syncs pane title → window/session name; respects manual-rename locks |
204
+ | `~/.config/tmux/bin/float_term.sh` | Resizable float terminal wrapper loop |
205
+ | `~/.config/tmux/bin/float_init.sh` | Bash init file for float terminal (resize bindings) |
206
+ | `~/.config/tmux/bin/open_clip.sh` | Open Windows clipboard content as URL or browser search |
207
+ | `~/.config/tmux/bin/paste_image_wrapper.sh` | Reads clipboard via `wl-paste`, saves to `/tmp`, types `@path` into pane instantly |
208
+ | `~/.config/tmux/bin/paste_clipboard.sh` | Paste plain text from Windows clipboard into tmux buffer |
209
+ | `~/.config/tmux/bin/cpu_usage.sh` | CPU usage % for status bar |
210
+ | `~/.config/tmux/bin/ram_usage.sh` | RAM usage % for status bar |
211
+ | `~/.config/tmux/bin/claude_usage.sh` | Claude context usage % bar for status bar |
212
+ | `~/.local/bin/xclip` | WSL2 shim routing xclip calls to Windows clipboard (text + images) |
213
+ | `~/.local/bin/xdg-open` | Symlink → `/usr/bin/wslview` (required by tmux-open) |
214
+
215
+ ---
216
+
217
+ ## Status Bar Layout
218
+
219
+ Single bar at bottom:
220
+
221
+ ```
222
+ ┌──────────────────────────────────────────────────────────────────────────────────────────┐
223
+ │ terminal content │
224
+ │ │
225
+ │ ▶ │⚙ Actions│🔄 Reload│ 💻session│🪟window│📁path│🧮CPU│💾RAM│⏰time │
226
+ └──────────────────────────────────────────────────────────────────────────────────────────┘
227
+ ```
228
+
229
+ **Left side** — two clickable pills: Actions (opens full menu) + Reload
230
+ **Right side** — Powerline slant segments chained: session ID → window ID → CPU → RAM → time
231
+
232
+ > ⚠️ The directory/git segment has been intentionally removed. It called `git branch --show-current` on every status refresh, causing `index.lock` collisions when Claude or other tools ran git operations concurrently. Do not re-add any git status display to the status bar.
233
+
234
+ > Session and window segments show numeric IDs only (e.g. `💻 ID 3`, `🪟 ID 7`) — no names. Pane borders show title + pane ID (e.g. `✳ Claude Code ID 27`).
235
+
236
+ ### Prefix Indicator (far left)
237
+ | State | Display |
238
+ |-------|---------|
239
+ | Idle | `▶` solid triangle in dim pill |
240
+ | Prefix active | `⌨ CTRL+B` in red pill |
241
+
242
+ ### Status Bar Color Palette
243
+
244
+ | Segment | Pill Color | Purpose |
245
+ |---------|-----------|---------|
246
+ | Actions | `#3d6095` | Navy blue |
247
+ | New | `#4a6e38` | Forest green |
248
+ | SpH | `#316862` | Dark teal |
249
+ | SpV | `#306075` | Slate blue |
250
+ | Kill | `#783a3c` | Crimson |
251
+ | Name | `#5c3c78` | Purple |
252
+ | Sess | `#784828` | Rust |
253
+ | Reload | `#685820` | Dark gold |
254
+ | Session (right) | `#3d6095` | Navy blue |
255
+ | Window (right) | `#685820` | Dark gold |
256
+ | CPU (right) | `#784828` | Rust |
257
+ | RAM (right) | `#783a3c` | Crimson |
258
+ | Clock (right) | `#5c3c78` | Purple |
259
+
260
+ All pill text uses `#d8ddf0` (light). Bar background is `#232634`.
261
+
262
+ ---
263
+
264
+ ## Status Bar Buttons
265
+
266
+ | Button | Action |
267
+ |--------|--------|
268
+ | ⚙ Actions | Opens the full Actions fzf menu |
269
+ | 🔄 Reload | Reloads `~/.tmux.conf` |
270
+
271
+ All window/pane/session operations are inside the Actions menu.
272
+
273
+ ---
274
+
275
+ ## Actions Menu
276
+
277
+ Opened via the **Actions** button or click. Type to filter, scroll with arrows, click or Enter to select. `Esc` to cancel.
278
+
279
+ ### Window & Session
280
+ | Key | Action |
281
+ |-----|--------|
282
+ | `z` | Zoom / unzoom pane |
283
+ | `p` | Previous window |
284
+ | `n` | Next window |
285
+ | `w` | List windows & sessions |
286
+ | `W` | New window (in current directory) |
287
+ | `K` | Kill window (confirm) |
288
+ | `N` | Rename session |
289
+ | `X` | Kill session (confirm) |
290
+ | `d` | Detach session (confirm) |
291
+
292
+ ### Pane Controls
293
+ | Key | Action |
294
+ |-----|--------|
295
+ | `H` | Split top / bottom (in current directory) |
296
+ | `V` | Split left / right (in current directory) |
297
+ | `k` | Kill pane (confirm) |
298
+ | `,` | Rename window |
299
+ | `s` | Session chooser |
300
+
301
+ ### Pane Movement
302
+ | Key | Action |
303
+ |-----|--------|
304
+ | `u` | Swap pane ↑ (within window) |
305
+ | `v` | Swap pane ↓ (within window) |
306
+ | `e` | Break pane → new window |
307
+ | `J` | Move pane TO a window — opens tmux tree chooser (scrollable, clickable, Enter to confirm) |
308
+ | `L` | Pull pane FROM a window — opens tmux tree chooser |
309
+
310
+ ### Tools
311
+ | Key | Action |
312
+ |-----|--------|
313
+ | `f` | Float terminal (resizable) |
314
+ | `t` | Scratch terminal — persistent floating session (`M-i`) |
315
+ | `M` | Share session via Muxile |
316
+ | `S` | Save session (tmux-resurrect) |
317
+ | `R` | Restore session (tmux-resurrect) |
318
+
319
+ ### Clipboard & Copy
320
+ | Key | Action |
321
+ |-----|--------|
322
+ | `r` | Reload tmux config |
323
+ | `c` | Enter copy mode (`o`=open file/URL, `S`=web search) |
324
+ | `i` | Paste image/file from Windows clipboard |
325
+ | `o` | Open clipboard content as URL/file (Windows default handler) |
326
+ | `g` | Google-search clipboard text in browser |
327
+
328
+ ---
329
+
330
+ ## Float Terminal
331
+
332
+ Opened via Actions → `f` or `Alt+F`. A resizable popup shell that opens in the current pane's directory.
333
+
334
+ | Key (inside float) | Action |
335
+ |--------------------|--------|
336
+ | `Alt+=` | Make terminal bigger (+10%) |
337
+ | `Alt+-` | Make terminal smaller (-10%) |
338
+ | `Ctrl+D` | Close float terminal |
339
+
340
+ Size persists in `/tmp/tmux_float_size` (default 80%, range 30–96%).
341
+
342
+ ---
343
+
344
+ ## Keyboard Shortcuts
345
+
346
+ ### Navigation
347
+ | Key | Action |
348
+ |-----|--------|
349
+ | `Ctrl+B c` | New window |
350
+ | `Ctrl+B n` / `p` | Next / previous window |
351
+ | `Ctrl+B w` | Window list |
352
+ | `Ctrl+B s` | Session chooser |
353
+ | `Ctrl+B -` | Split horizontal |
354
+ | `Ctrl+B \|` | Split vertical |
355
+ | `Ctrl+B z` | Zoom pane |
356
+ | `Ctrl+B x` | Kill pane |
357
+ | `Ctrl+B ,` | Rename window |
358
+ | `Ctrl+B d` | Detach |
359
+ | `Alt+N` / `Alt+n` | New window |
360
+
361
+ ### Clipboard & Paste
362
+ | Key | Action |
363
+ |-----|--------|
364
+ | `Ctrl+V` | Paste plain text from Windows clipboard into active pane (no trailing newline — uses `paste-buffer -p`) |
365
+ | `Alt+V` | Paste image/file/text from Windows clipboard → types path into pane |
366
+ | `Alt+F` | Open resizable float terminal |
367
+ | `y` | Copy selection to Windows clipboard (copy mode) |
368
+ | `C-c` | Copy selection + exit copy mode |
369
+ | Mouse drag | Copy to tmux buffer (does NOT go to Windows clipboard) |
370
+
371
+ ### Copy Mode (`Ctrl+B [` to enter, or Actions → `c`)
372
+ | Key | Action |
373
+ |-----|--------|
374
+ | `v` | Begin selection |
375
+ | `C-v` | Block/rectangle selection |
376
+ | `y` or `C-c` | Copy to Windows clipboard, exit |
377
+ | `o` | Open file/URL under cursor (tmux-open) |
378
+ | `Ctrl+O` | Open in `$EDITOR` (tmux-open) |
379
+ | `S` | Web search selection (tmux-open) |
380
+ | `/` / `?` | Search forward / backward |
381
+ | `n` / `N` | Next / previous match |
382
+ | `q` or `Esc` | Exit copy mode |
383
+
384
+ ### Plugin Keys
385
+ | Key | Action |
386
+ |-----|--------|
387
+ | `Alt+I` | Toggle persistent scratch terminal (tmux-floating-terminal) |
388
+ | `Alt+F` | Float terminal (custom, resizable) |
389
+ | `Ctrl+B T` | Share session (Muxile) |
390
+ | `Ctrl+B I` | Install plugins (TPM) |
391
+ | `Ctrl+B U` | Update plugins (TPM) |
392
+
393
+ ### Right-click pane border
394
+ Opens a context menu: Split Vertical, Split Horizontal, Break to Window, Swap Up/Down, Kill Pane.
395
+
396
+ ---
397
+
398
+ ## Pane Borders & Agent Labels
399
+
400
+ Pane borders are **hidden when only one pane is open** and appear automatically when a second pane is created.
401
+
402
+ ### How it works
403
+
404
+ Hooks in `~/.tmux.conf` manage borders and naming:
405
+
406
+ ```
407
+ after-split-window → if panes > 1: show top border; set pane hash placeholder
408
+ pane-exited → if panes ≤ 1: hide border
409
+ pane-title-changed → runs title_sync.sh: clears hash, renames window + session
410
+ session-created → rename session to cwd basename as initial placeholder
411
+ after-new-window → set pane hash (stripped pane_id) as placeholder
412
+ ```
413
+
414
+ ### Automatic title tracking
415
+
416
+ Claude Code sets its pane title via OSC 2 (`✳ Claude Code` = busy, `⠂ Claude Code` = idle). The `pane-title-changed` hook fires on every OSC 2 update and calls `title_sync.sh`, which:
417
+ 1. Clears the placeholder hash from the pane border
418
+ 2. Renames the **window** to the new pane title
419
+ 3. Renames the **session** to `"<pane title> · <cwd basename>"` (window 1 only)
420
+
421
+ This keeps all sessions uniquely named even when multiple Claude instances run in the same directory.
422
+
423
+ ### Manual rename locking
424
+
425
+ When you rename a session or window via the Actions menu (`s` / `,`), a lock flag is set:
426
+ - `@session-name-locked` — prevents `title_sync.sh` from overriding the session name
427
+ - `@window-name-locked` — prevents `title_sync.sh` from overriding the window name
428
+
429
+ To manually clear a lock (re-enable auto-naming):
430
+ ```bash
431
+ tmux set-option -u @session-name-locked # unlock session
432
+ tmux set-option -wu @window-name-locked # unlock window
433
+ ```
434
+
435
+ ### Setting a pane label for non-Claude panes
436
+
437
+ From inside the pane:
438
+ ```bash
439
+ printf '\033]2;My Label\033\\'
440
+ ```
441
+
442
+ Or targeting a pane by ID:
443
+ ```bash
444
+ tmux select-pane -t "$TMUX_PANE" -T "My Label"
445
+ ```
446
+
447
+ ### Spawning agents
448
+
449
+ When spawning a dedicated agent, pass its role as the task description so the session file registration is clear:
450
+ ```bash
451
+ tmux split-window -h -c "#{pane_current_path}" \
452
+ "claude --dangerously-skip-permissions 'You are the backend agent. Read .agents/orchestration/ and register yourself, then work through assigned tasks.'"
453
+ ```
454
+
455
+ The spawned agent registers its own pane ID and role in the orchestration session file on startup — no pane title sniffing needed.
456
+
457
+ ### Cap styles
458
+
459
+ The border title uses **rounded caps** by default. To switch to **pointed caps**, swap the Nerd Font characters in `pane-border-format` in `~/.tmux.conf`:
460
+
461
+ | Style | Left cap | Right cap |
462
+ |-------|----------|-----------|
463
+ | Rounded | `\ue0b6` | `\ue0b4` |
464
+ | Pointed | `\ue0b2` | `\ue0b0` |
465
+
466
+ Active pane uses bright border color per pane index; inactive uses dim (`#414559`).
467
+
468
+ ---
469
+
470
+ ## Agent Orchestration
471
+
472
+ When coordinating multiple Claude agents, use **orchestration session files** — not pane title sniffing. Pane titles are overwritten by Claude Code and are unreliable for routing.
473
+
474
+ ### Session file location
475
+ ```
476
+ <project_root>/.agents/orchestration/session-YYYYMMDD-HHMMSS-XXXX.md
477
+ ```
478
+
479
+ - Created by the **coordinator/master** agent at the start of an orchestration session
480
+ - Each file is uniquely named with a timestamp + 4-char random hex suffix
481
+ - Files are **project-scoped**: agents only read/write files matching their own project root
482
+
483
+ ### Session file format
484
+
485
+ ```markdown
486
+ # Agent Session: 20260313-143022-a4f1
487
+ **Project:** /mnt/c/Users/White/Documents/Squidhub/Squidhub
488
+ **Created:** 2026-03-13T14:30:22
489
+
490
+ ## Active Agents
491
+ | Pane ID | Role | Status | CWD |
492
+ |---------|-------------|--------|-------------------------|
493
+ | %27 | coordinator | idle | .../Squidhub |
494
+ | %31 | backend | busy | .../Squidhub |
495
+ | %33 | frontend | idle | .../Squidhub |
496
+
497
+ ## Tasks
498
+ ### TASK-001 · pending · backend
499
+ - **Description:** Fix the user profile API endpoint
500
+ - **Assigned:** backend
501
+ - **Status:** pending
502
+
503
+ ### TASK-002 · in-progress · frontend · claimed:%33
504
+ - **Description:** Update ProfileCard component
505
+ - **Status:** in-progress
506
+ ```
507
+
508
+ ### Agent startup protocol (MANDATORY)
509
+
510
+ Every agent spawned in tmux **must** do this on startup:
511
+
512
+ ```bash
513
+ PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || echo "$PWD")
514
+ ORCH_DIR="$PROJECT_ROOT/.agents/Orchestration"
515
+ SESSION_FILE=$(ls -t "$ORCH_DIR"/session-*.md 2>/dev/null | head -1)
516
+
517
+ if [ -n "$SESSION_FILE" ]; then
518
+ # Verify project match
519
+ grep -q "$PROJECT_ROOT" "$SESSION_FILE" && echo "Session found: $SESSION_FILE"
520
+ # 1. Register self in Active Agents table (pane ID, role, CWD)
521
+ # 2. Scan for pending tasks assigned to my role
522
+ # 3. Claim oldest pending task → mark in-progress with my pane ID
523
+ fi
524
+ ```
525
+
526
+ ### Task completion protocol (MANDATORY)
527
+
528
+ Every agent **must** do this after finishing each task:
529
+
530
+ 1. Mark current task `done` in the session file
531
+ 2. Scan file for more `pending` tasks for my role
532
+ 3. If found → claim and start; if none → set status `idle` in Active Agents table
533
+
534
+ ### Routing a task to an existing agent
535
+
536
+ **Always append `Enter` to every `send-keys` call — without it the message is typed into the pane but never submitted.**
537
+
538
+ ```bash
539
+ # Read pane ID from session file, then send:
540
+ tmux send-keys -t "%31" "Please handle TASK-003 from the session file" Enter
541
+ ```
542
+
543
+ If the agent is `busy` (✳), still write the task to the session file with `pending` status — the agent will pick it up when it calls the task completion protocol.
544
+
545
+ ### Creating a new session (coordinator only)
546
+
547
+ ```bash
548
+ PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || echo "$PWD")
549
+ ORCH_DIR="$PROJECT_ROOT/.agents/Orchestration"
550
+ mkdir -p "$ORCH_DIR"
551
+ SUFFIX=$(head -c2 /dev/urandom | xxd -p)
552
+ SESSION_FILE="$ORCH_DIR/session-$(date +%Y%m%d-%H%M%S)-$SUFFIX.md"
553
+ # Write the session file header and initial task list
554
+ ```
555
+
556
+ ### Project scoping (strict)
557
+
558
+ Agents **only** interact with session files where `Project:` matches their own project root:
559
+
560
+ ```bash
561
+ git rev-parse --show-toplevel # must match the Project: field in the session file
562
+ ```
563
+
564
+ Never route tasks to agents in a different project directory unless the user **explicitly** says so.
565
+
566
+ ### Decision rule
567
+
568
+ | Situation | Action |
569
+ |-----------|--------|
570
+ | Session file exists, target role agent is `idle` | `tmux send-keys` to their pane ID |
571
+ | Session file exists, target role agent is `busy` | Write task as `pending` — they pick it up |
572
+ | No session file exists | Coordinator creates one before spawning sub-agents |
573
+ | No agent for target role | Spawn new split-pane agent; it self-registers on startup |
574
+
575
+ ### Closing a split-pane agent — mandatory protocol
576
+
577
+ Every workflow step that spawns a split-pane agent MUST clearly define when that pane closes. The close sequence is always two steps — in order:
578
+
579
+ **Step 1 — Send `/exit` into the conversation:**
580
+ ```bash
581
+ tmux send-keys -t <pane_id> "/exit" Enter
582
+ ```
583
+ This lets Claude finish any in-progress output, flush writes, and exit cleanly.
584
+
585
+ **Step 2 — Kill the pane:**
586
+ ```bash
587
+ tmux kill-pane -t <pane_id>
588
+ ```
589
+
590
+ **Never skip Step 1.** Killing the pane without `/exit` first can leave partial file writes, git lock files, or unsaved session state that block the next pipeline step.
591
+
592
+ **When each pane type closes:**
593
+
594
+ | Agent type | Closes when |
595
+ |---|---|
596
+ | Single-step (research, QA, dev-story) | Immediately after sending completion report-back to spawner |
597
+ | Multi-step (review agent, sprint planner) | After ALL assigned steps complete and final report-back sent |
598
+ | Interactive (sm-agent in sprint loop) | When coordinator explicitly sends `/exit` — never self-closes mid-workflow |
599
+ | 🔴 escalation / blocked | Stays open until user resolves blocker, then closes via normal sequence |
600
+
601
+ **After closing:** Coordinator updates the relevant session file Active Agents table row to `status: closed`. For general multi-agent work this is `.agents/orchestration/session-*.md`; for BMAD workflows this is `_bmad-output/parallel/{session_id}/agent-sessions.md`.
602
+
603
+ ---
604
+
605
+ ## Pasting Images into Claude Code
606
+
607
+ 1. Take a screenshot or copy an image/file in Windows
608
+ 2. Press `Alt+V` in tmux (or Actions → `i`)
609
+ 3. The `@path` is instantly typed into your terminal — no popup, no delay
610
+ 4. Claude Code reads the file from the path (attach with `@` prefix if needed)
611
+
612
+ **Clipboard types handled:**
613
+
614
+ | Type | Behavior |
615
+ |------|----------|
616
+ | `image/png` | Saved to `/tmp/tmux_clipboard_image.png`, `@path` typed |
617
+ | `image/bmp`, `image/jpeg`, etc. | Converted to PNG via ImageMagick, `@path` typed |
618
+ | `image/svg+xml` | Converted to PNG via ImageMagick, `@path` typed |
619
+ | `text/uri-list` (files from file manager) | All WSL paths typed as `@path1 @path2 ...` |
620
+ | `text/html` | Saved to `/tmp/tmux_clipboard_content.html`, path typed |
621
+ | `text/plain` | If it's a valid path: `@path`; otherwise saved to `/tmp/tmux_clipboard_text.txt` |
622
+
623
+ **Implementation:** `paste_image_wrapper.sh` uses `/usr/bin/wl-paste` (Linux-native Wayland clipboard — no PowerShell/vsock). Files are saved as `/tmp/tmux_clip_YYYYMMDD_HHMMSS.<ext>`. On each run, files from previous days are automatically deleted. The PNG is also copied back to the Wayland clipboard so `Ctrl+V` may also work in Claude Code.
624
+
625
+ **`Ctrl+V` binding** uses `tmux paste-buffer -p` (no trailing newline). Without `-p`, `paste-buffer` appended a newline that auto-submitted the pasted content — fixed.
626
+
627
+ ---
628
+
629
+ ## Plugins
630
+
631
+ | Plugin | Purpose | Access |
632
+ |--------|---------|--------|
633
+ | `tmux-plugins/tpm` | Plugin manager | `Ctrl+B I/U` |
634
+ | `tmux-plugins/tmux-sensible` | Sane defaults | automatic |
635
+ | `tmux-plugins/tmux-resurrect` | Save/restore sessions | Actions `y`/`r` |
636
+ | `tmux-plugins/tmux-continuum` | Auto-save sessions | automatic |
637
+ | `tmux-plugins/tmux-yank` | Enhanced copy | copy mode `y` |
638
+ | `bjesus/muxile` | Share terminal via web | `Ctrl+B T` |
639
+ | `lloydbond/tmux-floating-terminal` | Persistent scratch pad | Actions `t` / `Alt+I` |
640
+ | `tmux-plugins/tmux-open` | Open files/URLs from copy mode | copy mode `o`/`S` |
641
+
642
+ > ⚠️ `ofirgall/tmux-window-name` has been **removed**. It set `automatic-rename on` per-window after every window switch, which overwrote the window names managed by `title_sync.sh`. All window/session naming is now handled exclusively by the `pane-title-changed` hook + `title_sync.sh`.
643
+
644
+ ---
645
+
646
+ ## Architecture Notes
647
+
648
+ ### Mouse bindings split
649
+ `MouseDown1Status` handles **Actions only** (opens popup before mouse release, preventing `MouseUp` from leaking into the popup). `MouseUp1Status` handles all other buttons via `dispatch.sh`.
650
+
651
+ ### No nested popups
652
+ `display-popup` can't be opened from inside another popup. Any action in the Actions menu that opens a new popup (float terminal, scratch terminal) defers via `tmux run-shell -b "sleep 0.2 && ..."` so the first popup fully closes first.
653
+
654
+ ### Actions popup — popup closes before destructive commands
655
+ `execute()` in `actions_popup.py` runs while the `display-popup` overlay is still technically open (closes on script exit). Commands that destroy their own context (`kill-pane`, `kill-window`, `kill-session`) and interactive commands (`choose-tree`, `command-prompt`) use `run-shell -b "sleep 0.1 && ..."` to defer execution until the popup has fully closed.
656
+
657
+ ### allow-passthrough must stay off
658
+ `allow-passthrough on` causes OSC 2 escape sequences (which Claude Code uses to set its pane title) to be forwarded directly to Windows Terminal, bypassing tmux entirely. tmux never sees the title change, `pane_title` is never updated, and `pane-title-changed` never fires. **Keep `allow-passthrough off`** — it is commented in `~/.tmux.conf` with an explanation. If a feature requires passthrough, scope it with `set-option -pt <pane_id> allow-passthrough on` rather than setting it globally.
659
+
660
+ ### pane-title-changed is a window-level hook
661
+ In tmux 3.4, `pane-title-changed` is a **window-level** event, not a global event. It must be registered with `set-hook -wg` (not `-g`). Using `-g` is silently accepted but never fires.
662
+
663
+ ### tmux-window-name plugin conflict
664
+ The `ofirgall/tmux-window-name` plugin calls `set-option -w automatic-rename on` for every window after each window switch. This directly overwrites window names set by `title_sync.sh`. The plugin has been removed. If `automatic-rename` ever reverts to `on` on existing windows, reset it: `tmux list-windows -a -F "#{session_name}:#{window_index}" | xargs -I{} tmux set-option -t {} -w automatic-rename off`
665
+
666
+ ### Manual rename lock mechanism
667
+ Actions `s` (rename-session) and `,` (rename-window) chain `\; set-option @session-name-locked 1` or `\; set-option -w @window-name-locked 1` after the `command-prompt` rename. `title_sync.sh` checks these flags before renaming and skips if set. This prevents Claude Code's periodic title updates from overwriting manually-set names.
668
+
669
+ ### Unicode in tmux.conf
670
+ The status bar contains emoji (💻 🪟 📁 🧮 💾 ⏰ etc.) and Powerline separator chars (U+E0B2, U+E0B4, U+E0B6). FE0F variation selectors are intentionally stripped — they cause tmux to miscalculate cell widths. All writes to `~/.tmux.conf` that include these chars must be done via Python with `open(..., encoding='utf-8', newline='\n')`.
671
+
672
+ ### xdg-open / tmux-open in WSL2
673
+ `tmux-open` hard-codes a check for `xdg-open` and errors on reload if not found. The fix is a symlink: `~/.local/bin/xdg-open → /usr/bin/wslview`. The `@open 'wslview'` config option alone is not sufficient — the plugin ignores it for the binary detection check.
674
+
675
+ ### Split/New inherits current directory
676
+ `dispatch.sh` resolves `#{pane_current_path}` from the pane ID before calling `new-window`/`split-window`, since tmux format strings aren't available in shell context.
677
+
678
+ ### Float terminal resize loop
679
+ `float_term.sh` runs a loop: opens `display-popup -E`, catches exit code 10 (bigger) or 11 (smaller) from the inner shell, adjusts `/tmp/tmux_float_size`, and reopens. `float_init.sh` is sourced via `bash --init-file` and binds `Alt+=`/`Alt+-` to `exit 10`/`exit 11`.
680
+
681
+ ---
682
+
683
+ ## Troubleshooting
684
+
685
+ | Symptom | Fix |
686
+ |---------|-----|
687
+ | `fatal: Unable to create '.git/index.lock': File exists` | VS Code git extension left a stale lock. Run `./scripts/git-unlock.sh` to remove it. Only run when VS Code is idle — if an operation is actively in progress, wait a few seconds first. |
688
+ | Branch info in status bar not updating | `status-interval` controls how often `#()` reruns — set to `1` for near-instant updates |
689
+ | Icons show as boxes or blank | Install JetBrainsMono NFM; set font in **your terminal emulator** (Cursor/VS Code: `terminal.integrated.fontFamily`; Windows Terminal: `font.face`). WT settings have no effect when running inside Cursor. |
690
+ | Colors all look the same | Ensure `set -ga terminal-overrides ",*256col*:Tc"` is in config; restart terminal |
691
+ | Actions menu goes blank | Confirm `display-popup -E` (capital E flag) in `MouseDown1Status` binding |
692
+ | Float terminal does nothing | Check `/tmp/tmux_float_size` exists; try `Alt+F` directly |
693
+ | `Alt+V` does nothing / path not typed | Ensure `wl-clipboard` is installed: `sudo apt-get install -y wl-clipboard` |
694
+ | `Alt+V` pastes BMP path but image fails to open | Install ImageMagick for conversion: `sudo apt-get install -y imagemagick` |
695
+ | Button clicks do nothing | Run `tmux source-file ~/.tmux.conf` to clear stale server bindings |
696
+ | fzf not found | Re-download to `~/.local/bin/fzf` and `chmod +x` |
697
+ | `xdg-open` error on reload | `sudo apt-get install -y wslu && ln -sf /usr/bin/wslview ~/.local/bin/xdg-open` |
698
+ | `bt` error / `bt list` crash on detach | Stale `tmux-browser` plugin hooks. Remove the plugin and clear hooks: `rm -rf ~/.tmux/plugins/tmux-browser && tmux set-hook -gu 'client-detached[8921]' && tmux set-hook -gu 'client-attached[8921]' && tmux source ~/.tmux.conf` |
699
+ | Pane titles / session names never update from Claude Code | **`allow-passthrough on`** causes Claude Code's OSC 2 title sequences to pass through to Windows Terminal instead of tmux intercepting them. `pane-title-changed` never fires. Fix: `set -g allow-passthrough off` in `~/.tmux.conf` (must stay off permanently). |
700
+ | Window names not updating when Claude changes title | Likely `automatic-rename on` on some windows from the old `tmux-window-name` plugin. Reset: `tmux list-windows -a -F "#{session_name}:#{window_index}" \| xargs -I{} tmux set-option -t {} -w automatic-rename off` |
701
+ | `title_sync.sh returned 2` | CRLF line endings. Fix: `sed -i 's/\r//' ~/.config/tmux/bin/title_sync.sh` |
702
+ | Session name not updating even though window name does | `title_sync.sh` uses `-t PANE_ID` targeting — verify the pane ID argument is passed correctly in the hook. Check with `tmux show-hooks -wg \| grep pane-title` |
703
+ | Manual rename gets overridden by Claude | Lock flag not set. This should happen automatically via Actions `s`/`,`. If using `Ctrl+B $` or `Ctrl+B ,` directly, set lock manually: `tmux set-option @session-name-locked 1` or `tmux set-option -w @window-name-locked 1` |
704
+ | `#{session_index}` in hooks expands to empty | `#{session_index}` is not a valid tmux format variable. Use `#{session_name}` or `#{b:pane_current_path}` instead. |
705
+ | `Alt+V` types nothing | WSL vsock interop (`powershell.exe`) fails in tmux `run-shell` context. The wrapper uses `/usr/bin/wl-paste` (Wayland, Linux-native). Ensure `wl-clipboard` is installed: `sudo apt-get install -y wl-clipboard`. |
706
+ | Right-click opens new pane accidentally | tmux default `MouseDown3Pane` shows a split/kill menu. Fixed with `bind -T root MouseDown3Pane select-pane -t=` in `.tmux.conf`. Do **not** set `rightClickContextMenu: true` in WT — it breaks right-click paste and drag-and-drop. |
707
+
708
+ ---
709
+
710
+ ## MCP Servers — WSL Setup
711
+
712
+ MCP servers work differently depending on their transport type. The project-committed `.mcp.json` has three servers — each needs a specific setup step in WSL.
713
+
714
+ ---
715
+
716
+ ### Step 1 — Enable Docker Desktop WSL integration
717
+
718
+ Two of the three servers (`n8n-unnportal`, `dokploy`) use `docker exec`. For `docker` to work inside WSL, Docker Desktop must have WSL integration enabled.
719
+
720
+ 1. Open **Docker Desktop → Settings → Resources → WSL Integration**
721
+ 2. Toggle on **your Ubuntu distro** (e.g. `Ubuntu` or `Ubuntu-24.04`)
722
+ 3. Click **Apply & Restart**
723
+
724
+ Verify from WSL:
725
+ ```bash
726
+ docker ps
727
+ ```
728
+ If you see container output (or an empty table), Docker is wired up. If you get `permission denied` or `Cannot connect to the Docker daemon`, WSL integration is not enabled.
729
+
730
+ ---
731
+
732
+ ### Step 2 — squidhub server (HTTP, localhost:5050)
733
+
734
+ This server is HTTP-based — no Node or Docker config needed. It just requires the backend stack to be running.
735
+
736
+ ```bash
737
+ ./scripts/infisical-run docker-compose up -d
738
+ ```
739
+
740
+ Verify the MCP endpoint is live:
741
+ ```bash
742
+ curl -s http://localhost:5050/mcp | head -c 100
743
+ ```
744
+
745
+ Claude picks this up automatically from `.mcp.json` — no user-scope override needed.
746
+
747
+ ---
748
+
749
+ ### Step 3 — Node-based MCP servers (user-scope override)
750
+
751
+ If you add a Node.js MCP server (e.g. Acumatica, or any custom server with a `dist/index.js`), the committed `.mcp.json` will reference `node.exe` (Windows path). That fails in WSL. Override it at user scope with a Linux Node binary — this takes precedence over the project config without modifying the committed file.
752
+
753
+ **One-time: install NVM + Node LTS**
754
+ ```bash
755
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
756
+ source ~/.bashrc
757
+ nvm install --lts
758
+ ```
759
+
760
+ **Register the server at user scope** (replace `server-name` and path):
761
+ ```bash
762
+ claude mcp add <server-name> -s user -- \
763
+ ~/.nvm/versions/node/v$(node --version | tr -d v)/bin/node \
764
+ "/mnt/c/path/to/dist/index.js"
765
+ ```
766
+
767
+ Example — Acumatica server:
768
+ ```bash
769
+ claude mcp add acumatica -s user -- \
770
+ ~/.nvm/versions/node/v24.14.0/bin/node \
771
+ "/mnt/c/Users/White/Documents/Acumatica MCP/dist/index.js"
772
+ ```
773
+
774
+ ---
775
+
776
+ ### Scope precedence
777
+
778
+ | Launch context | Config used | Node binary |
779
+ |---|---|---|
780
+ | WSL terminal | user scope (`~/.claude.json`) | Linux node via NVM |
781
+ | PowerShell / Windows | project scope (`.mcp.json`) | Windows `node.exe` |
782
+
783
+ User-scope entries override project-scope entries for the same server name. The `/mnt/c/...` path works from both sides — Linux node accesses it via the WSL mount, Windows node via `C:\...`.
784
+
785
+ ---
786
+
787
+ ### Verifying all servers in Claude
788
+
789
+ Start Claude and run:
790
+ ```
791
+ /mcp
792
+ ```
793
+
794
+ You should see all three project servers listed as connected:
795
+ - `squidhub` — connected (HTTP)
796
+ - `n8n-unnportal` — connected (docker exec)
797
+ - `dokploy` — connected (docker exec)
798
+
799
+ If any server shows as failed, check:
800
+
801
+ | Server | Common cause | Fix |
802
+ |--------|-------------|-----|
803
+ | `squidhub` | Backend not running | `./scripts/infisical-run docker-compose up -d` |
804
+ | `n8n-unnportal` | Docker WSL integration off | Enable in Docker Desktop → WSL Integration |
805
+ | `dokploy` | Container not running | Check `docker ps \| grep dokploy` |
806
+ | Any Node server | Wrong node path in user scope | Re-run `claude mcp add` with correct NVM path |