@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.
- package/bin/bmad.js +36 -0
- package/lib/cli.js +137 -0
- package/lib/filter.js +73 -0
- package/lib/installer.js +787 -0
- package/package.json +30 -0
- package/src/.agents/skills/audit-website/README.md +20 -0
- package/src/.agents/skills/audit-website/SKILL.md +470 -0
- package/src/.agents/skills/audit-website/agents/openai.yaml +6 -0
- package/src/.agents/skills/audit-website/assets/icon-small.svg +41 -0
- package/src/.agents/skills/audit-website/references/OUTPUT-FORMAT.md +250 -0
- package/src/.agents/skills/clean-code-standards/SKILL.md +105 -0
- package/src/.agents/skills/excalidraw-dark-standard/SKILL.md +282 -0
- package/src/.agents/skills/excalidraw-diagram-generator/SKILL.md +613 -0
- package/src/.agents/skills/excalidraw-diagram-generator/references/element-types.md +497 -0
- package/src/.agents/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +350 -0
- package/src/.agents/skills/excalidraw-diagram-generator/scripts/README.md +193 -0
- package/src/.agents/skills/excalidraw-diagram-generator/scripts/add-arrow.py +312 -0
- package/src/.agents/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +404 -0
- package/src/.agents/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +183 -0
- package/src/.agents/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +334 -0
- package/src/.agents/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +558 -0
- package/src/.agents/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +279 -0
- package/src/.agents/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +662 -0
- package/src/.agents/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +179 -0
- package/src/.agents/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +244 -0
- package/src/.agents/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +145 -0
- package/src/.agents/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +509 -0
- package/src/.agents/skills/frontend-responsive-design-standards/SKILL.md +434 -0
- package/src/.agents/skills/java-fundamentals/SKILL.md +116 -0
- package/src/.agents/skills/java-performance/SKILL.md +119 -0
- package/src/.agents/skills/next-best-practices/SKILL.md +153 -0
- package/src/.agents/skills/next-best-practices/async-patterns.md +87 -0
- package/src/.agents/skills/next-best-practices/bundling.md +180 -0
- package/src/.agents/skills/next-best-practices/data-patterns.md +297 -0
- package/src/.agents/skills/next-best-practices/debug-tricks.md +105 -0
- package/src/.agents/skills/next-best-practices/directives.md +73 -0
- package/src/.agents/skills/next-best-practices/error-handling.md +227 -0
- package/src/.agents/skills/next-best-practices/file-conventions.md +140 -0
- package/src/.agents/skills/next-best-practices/font.md +245 -0
- package/src/.agents/skills/next-best-practices/functions.md +108 -0
- package/src/.agents/skills/next-best-practices/hydration-error.md +91 -0
- package/src/.agents/skills/next-best-practices/image.md +173 -0
- package/src/.agents/skills/next-best-practices/metadata.md +301 -0
- package/src/.agents/skills/next-best-practices/parallel-routes.md +287 -0
- package/src/.agents/skills/next-best-practices/route-handlers.md +146 -0
- package/src/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
- package/src/.agents/skills/next-best-practices/runtime-selection.md +39 -0
- package/src/.agents/skills/next-best-practices/scripts.md +141 -0
- package/src/.agents/skills/next-best-practices/self-hosting.md +371 -0
- package/src/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
- package/src/.agents/skills/nextjs-app-router-patterns/SKILL.md +537 -0
- package/src/.agents/skills/postgresql-optimization/SKILL.md +404 -0
- package/src/.agents/skills/python-backend/SKILL.md +153 -0
- package/src/.agents/skills/python-fundamentals/SKILL.md +234 -0
- package/src/.agents/skills/python-performance/SKILL.md +404 -0
- package/src/.agents/skills/react-expert/SKILL.md +335 -0
- package/src/.agents/skills/redis-best-practices/SKILL.md +438 -0
- package/src/.agents/skills/security-best-practices/SKILL.md +288 -0
- package/src/.agents/skills/security-review/LICENSE +22 -0
- package/src/.agents/skills/security-review/SKILL.md +312 -0
- package/src/.agents/skills/security-review/infrastructure/docker.md +432 -0
- package/src/.agents/skills/security-review/languages/javascript.md +388 -0
- package/src/.agents/skills/security-review/languages/python.md +363 -0
- package/src/.agents/skills/security-review/references/api-security.md +519 -0
- package/src/.agents/skills/security-review/references/authentication.md +353 -0
- package/src/.agents/skills/security-review/references/authorization.md +372 -0
- package/src/.agents/skills/security-review/references/business-logic.md +443 -0
- package/src/.agents/skills/security-review/references/cryptography.md +329 -0
- package/src/.agents/skills/security-review/references/csrf.md +398 -0
- package/src/.agents/skills/security-review/references/data-protection.md +378 -0
- package/src/.agents/skills/security-review/references/deserialization.md +410 -0
- package/src/.agents/skills/security-review/references/error-handling.md +436 -0
- package/src/.agents/skills/security-review/references/file-security.md +457 -0
- package/src/.agents/skills/security-review/references/injection.md +259 -0
- package/src/.agents/skills/security-review/references/logging.md +433 -0
- package/src/.agents/skills/security-review/references/misconfiguration.md +435 -0
- package/src/.agents/skills/security-review/references/modern-threats.md +475 -0
- package/src/.agents/skills/security-review/references/ssrf.md +415 -0
- package/src/.agents/skills/security-review/references/supply-chain.md +405 -0
- package/src/.agents/skills/security-review/references/xss.md +336 -0
- package/src/.agents/skills/subagent-driven-development/SKILL.md +275 -0
- package/src/.agents/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
- package/src/.agents/skills/subagent-driven-development/implementer-prompt.md +113 -0
- package/src/.agents/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/src/.agents/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/src/.agents/skills/systematic-debugging/SKILL.md +296 -0
- package/src/.agents/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/src/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/src/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/src/.agents/skills/systematic-debugging/find-polluter.sh +63 -0
- package/src/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/src/.agents/skills/systematic-debugging/test-academic.md +14 -0
- package/src/.agents/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/src/.agents/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/src/.agents/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/src/.agents/skills/typescript-best-practices/SKILL.md +373 -0
- package/src/.agents/skills/ui-ux-pro-custom/SKILL.md +348 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/charts.csv +26 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/colors.csv +97 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/icons.csv +101 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/SKILL.md +106 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/accessibility.md +475 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/animation.md +466 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/composition-locals.md +231 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/deprecated-patterns.md +323 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/lists-scrolling.md +400 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/modifiers.md +331 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/navigation.md +416 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/performance.md +446 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/side-effects.md +516 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/foundation-source.md +13327 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/material3-source.md +19097 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/navigation-source.md +2947 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/runtime-source.md +11316 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/ui-source.md +7896 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/state-management.md +377 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/styles-experimental.md +470 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/theming-material3.md +349 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/view-composition.md +595 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/landing.csv +31 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/mobile-ui-layout.md +654 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/products.csv +97 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/react-performance.csv +45 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/astro.csv +54 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/flutter.csv +53 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/html-tailwind.csv +56 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/jetpack-compose.csv +53 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/nextjs.csv +53 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/nuxt-ui.csv +51 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/nuxtjs.csv +59 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/react-native.csv +56 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/react.csv +54 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/shadcn.csv +61 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/svelte.csv +54 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/swiftui.csv +51 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/stacks/vue.csv +50 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/styles.csv +68 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/alarmkit/SKILL.md +438 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/alarmkit/references/alarmkit-patterns.md +584 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-clips/SKILL.md +436 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-intents/SKILL.md +489 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-intents/references/appintents-advanced.md +1076 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-store-review/SKILL.md +340 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-store-review/references/privacy-manifest.md +90 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-store-review/references/review-checklists.md +106 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/SKILL.md +500 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/coreml-conversion.md +425 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/coreml-optimization.md +344 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/foundation-models.md +508 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/mlx-swift.md +285 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/authentication/SKILL.md +496 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/authentication/references/keychain-biometric.md +211 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/background-processing/SKILL.md +499 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/background-processing/references/background-task-patterns.md +390 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/callkit-voip/SKILL.md +461 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/callkit-voip/references/callkit-patterns.md +425 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/cloudkit-sync/SKILL.md +492 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/cloudkit-sync/references/cloudkit-patterns.md +461 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/codable-patterns/SKILL.md +467 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/contacts-framework/SKILL.md +425 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/contacts-framework/references/contacts-patterns.md +409 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-bluetooth/SKILL.md +491 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-bluetooth/references/ble-patterns.md +435 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-motion/SKILL.md +388 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-motion/references/motion-patterns.md +405 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-nfc/SKILL.md +495 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-nfc/references/nfc-patterns.md +420 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/coreml/SKILL.md +459 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/coreml/references/coreml-swift-integration.md +765 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/debugging-instruments/SKILL.md +422 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/debugging-instruments/references/instruments-guide.md +387 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/debugging-instruments/references/lldb-patterns.md +298 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/device-integrity/SKILL.md +477 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/energykit/SKILL.md +460 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/energykit/references/energykit-patterns.md +541 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/eventkit-calendar/SKILL.md +483 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/eventkit-calendar/references/eventkit-patterns.md +326 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/healthkit/SKILL.md +498 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/healthkit/references/healthkit-patterns.md +602 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/homekit-matter/SKILL.md +496 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/homekit-matter/references/matter-commissioning.md +455 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-accessibility/SKILL.md +301 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-accessibility/references/a11y-patterns.md +140 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-localization/SKILL.md +418 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-localization/references/formatstyle-locale.md +627 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-localization/references/string-catalogs.md +462 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/SKILL.md +441 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/background-websocket.md +862 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/lightweight-clients.md +93 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/network-framework.md +563 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/urlsession-patterns.md +1116 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/SKILL.md +496 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/app-review-guidelines.md +174 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/cryptokit-advanced.md +297 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/file-storage-patterns.md +354 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/privacy-manifest.md +117 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/live-activities/SKILL.md +500 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/live-activities/references/live-activity-patterns.md +868 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/mapkit-location/SKILL.md +485 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/mapkit-location/references/corelocation-patterns.md +730 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/mapkit-location/references/mapkit-patterns.md +748 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/metrickit-diagnostics/SKILL.md +479 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/musickit-audio/SKILL.md +395 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/musickit-audio/references/musickit-patterns.md +363 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/natural-language/SKILL.md +412 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/natural-language/references/translation-patterns.md +311 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/passkit-wallet/SKILL.md +398 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/passkit-wallet/references/wallet-passes.md +254 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/pencilkit-drawing/SKILL.md +387 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/pencilkit-drawing/references/paperkit-integration.md +376 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/pencilkit-drawing/references/pencilkit-patterns.md +302 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/permissionkit/SKILL.md +446 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/permissionkit/references/permissionkit-patterns.md +435 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/SKILL.md +501 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/av-playback.md +701 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/camera-capture.md +774 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/image-loading-caching.md +869 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/photospicker-patterns.md +597 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/push-notifications/SKILL.md +501 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/push-notifications/references/notification-patterns.md +677 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/push-notifications/references/rich-notifications.md +745 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/realitykit-ar/SKILL.md +479 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/realitykit-ar/references/realitykit-patterns.md +480 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/shareplay-activities/SKILL.md +483 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/shareplay-activities/references/shareplay-patterns.md +544 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/speech-recognition/SKILL.md +485 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/storekit/SKILL.md +478 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/storekit/references/app-review-guidelines.md +58 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/storekit/references/storekit-advanced.md +755 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-charts/SKILL.md +487 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-charts/references/charts-patterns.md +895 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/SKILL.md +408 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/approachable-concurrency.md +80 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/swift-6-2-concurrency.md +233 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/swiftui-concurrency.md +187 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/synchronization-primitives.md +341 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-language/SKILL.md +498 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-language/references/swift-patterns-extended.md +505 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-testing/SKILL.md +467 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-testing/references/testing-patterns.md +504 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/SKILL.md +334 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/references/core-data-coexistence.md +504 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/references/swiftdata-advanced.md +975 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/references/swiftdata-queries.md +675 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-animation/SKILL.md +481 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-animation/references/animation-advanced.md +804 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-animation/references/core-animation-bridge.md +553 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-gestures/SKILL.md +450 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-gestures/references/gesture-patterns.md +425 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/SKILL.md +336 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/form.md +97 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/grids.md +69 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/list.md +99 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/scrollview.md +147 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-liquid-glass/SKILL.md +325 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-liquid-glass/references/liquid-glass.md +387 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/SKILL.md +262 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/deeplinks.md +207 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/navigationstack.md +177 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/sheets.md +169 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/tabview.md +178 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/SKILL.md +381 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/architecture-patterns.md +486 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/deprecated-migration.md +1097 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/design-polish.md +780 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/platform-and-sharing.md +696 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/SKILL.md +491 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +46 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +29 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/understanding-hangs-in-your-app.md +33 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/understanding-improving-swiftui-performance.md +52 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-uikit-interop/SKILL.md +428 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-uikit-interop/references/hosting-migration.md +534 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-uikit-interop/references/representable-recipes.md +1133 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/tipkit/SKILL.md +494 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/tipkit/references/tipkit-patterns.md +782 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/SKILL.md +475 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/references/vision-requests.md +736 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/references/visionkit-scanner.md +738 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/weatherkit/SKILL.md +410 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/weatherkit/references/weatherkit-patterns.md +567 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/widgetkit/SKILL.md +497 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/widgetkit/references/widgetkit-advanced.md +871 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/typography.csv +58 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/ui-reasoning.csv +101 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/ux-guidelines.csv +100 -0
- package/src/.agents/skills/ui-ux-pro-custom/data/web-interface.csv +31 -0
- package/src/.agents/skills/ui-ux-pro-custom/scripts/core.py +253 -0
- package/src/.agents/skills/ui-ux-pro-custom/scripts/design_system.py +1067 -0
- package/src/.agents/skills/ui-ux-pro-custom/scripts/search.py +114 -0
- package/src/.agents/skills/ux-audit/SKILL.md +151 -0
- package/src/.agents/skills/websocket-engineer/SKILL.md +168 -0
- package/src/.agents/skills/websocket-engineer/references/alternatives.md +391 -0
- package/src/.agents/skills/websocket-engineer/references/patterns.md +400 -0
- package/src/.agents/skills/websocket-engineer/references/protocol.md +195 -0
- package/src/.agents/skills/websocket-engineer/references/scaling.md +333 -0
- package/src/.agents/skills/websocket-engineer/references/security.md +474 -0
- package/src/.agents/skills/writing-skills/SKILL.md +655 -0
- package/src/.agents/skills/writing-skills/anthropic-best-practices.md +1150 -0
- package/src/.agents/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/src/.agents/skills/writing-skills/graphviz-conventions.dot +172 -0
- package/src/.agents/skills/writing-skills/persuasion-principles.md +187 -0
- package/src/.agents/skills/writing-skills/render-graphs.js +168 -0
- package/src/.agents/skills/writing-skills/testing-skills-with-subagents.md +384 -0
- package/src/.claude/commands/bmad-track-compact.md +19 -0
- package/src/.claude/commands/bmad-track-extended.md +19 -0
- package/src/.claude/commands/bmad-track-large.md +19 -0
- package/src/.claude/commands/bmad-track-medium.md +19 -0
- package/src/.claude/commands/bmad-track-nano.md +19 -0
- package/src/.claude/commands/bmad-track-rv.md +18 -0
- package/src/.claude/commands/bmad-track-small.md +19 -0
- package/src/_memory/config.yaml +11 -0
- package/src/_memory/master-orchestrator-sidecar/docs-index.md +3 -0
- package/src/_memory/master-orchestrator-sidecar/instructions.md +2566 -0
- package/src/_memory/master-orchestrator-sidecar/memories.md +8 -0
- package/src/_memory/master-orchestrator-sidecar/session-state.md +15 -0
- package/src/_memory/master-orchestrator-sidecar/triage-history.md +3 -0
- package/src/_memory/master-orchestrator-sidecar/workflows-overview.html +1230 -0
- package/src/_memory/skills/excalidraw/SKILL.md +78 -0
- package/src/_memory/skills/excalidraw/diagram-patterns.md +53 -0
- package/src/_memory/skills/nimbalyst-tracking/SKILL.md +103 -0
- package/src/_memory/skills/writing-skills/SKILL.md +655 -0
- package/src/bmb/agents/agent-builder.md +59 -0
- package/src/bmb/agents/module-builder.md +60 -0
- package/src/bmb/agents/workflow-builder.md +61 -0
- package/src/bmb/config.yaml +12 -0
- package/src/bmb/module-help.csv +13 -0
- package/src/bmb/workflows/agent/data/agent-architecture.md +258 -0
- package/src/bmb/workflows/agent/data/agent-compilation.md +185 -0
- package/src/bmb/workflows/agent/data/agent-menu-patterns.md +189 -0
- package/src/bmb/workflows/agent/data/agent-metadata.md +133 -0
- package/src/bmb/workflows/agent/data/agent-validation.md +111 -0
- package/src/bmb/workflows/agent/data/brainstorm-context.md +96 -0
- package/src/bmb/workflows/agent/data/communication-presets.csv +61 -0
- package/src/bmb/workflows/agent/data/critical-actions.md +75 -0
- package/src/bmb/workflows/agent/data/persona-properties.md +252 -0
- package/src/bmb/workflows/agent/data/principles-crafting.md +142 -0
- package/src/bmb/workflows/agent/data/reference/module-examples/architect.md +68 -0
- package/src/bmb/workflows/agent/data/reference/with-sidecar/journal-keeper/journal-keeper-sidecar/entries/yy-mm-dd-entry-template.md +17 -0
- package/src/bmb/workflows/agent/data/understanding-agent-types.md +126 -0
- package/src/bmb/workflows/agent/steps-c/step-01-brainstorm.md +129 -0
- package/src/bmb/workflows/agent/steps-c/step-02-discovery.md +170 -0
- package/src/bmb/workflows/agent/steps-c/step-03-sidecar-metadata.md +309 -0
- package/src/bmb/workflows/agent/steps-c/step-04-persona.md +213 -0
- package/src/bmb/workflows/agent/steps-c/step-05-commands-menu.md +179 -0
- package/src/bmb/workflows/agent/steps-c/step-06-activation.md +278 -0
- package/src/bmb/workflows/agent/steps-c/step-07-build-agent.md +316 -0
- package/src/bmb/workflows/agent/steps-c/step-08-celebrate.md +247 -0
- package/src/bmb/workflows/agent/steps-e/e-01-load-existing.md +221 -0
- package/src/bmb/workflows/agent/steps-e/e-02-discover-edits.md +195 -0
- package/src/bmb/workflows/agent/steps-e/e-03-placeholder.md +1 -0
- package/src/bmb/workflows/agent/steps-e/e-04-sidecar-metadata.md +126 -0
- package/src/bmb/workflows/agent/steps-e/e-05-persona.md +135 -0
- package/src/bmb/workflows/agent/steps-e/e-06-commands-menu.md +123 -0
- package/src/bmb/workflows/agent/steps-e/e-07-activation.md +124 -0
- package/src/bmb/workflows/agent/steps-e/e-08-edit-agent.md +197 -0
- package/src/bmb/workflows/agent/steps-e/e-09-celebrate.md +155 -0
- package/src/bmb/workflows/agent/steps-v/v-01-load-review.md +137 -0
- package/src/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +116 -0
- package/src/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +124 -0
- package/src/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +127 -0
- package/src/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +134 -0
- package/src/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +134 -0
- package/src/bmb/workflows/agent/steps-v/v-03-summary.md +104 -0
- package/src/bmb/workflows/agent/templates/agent-plan.template.md +5 -0
- package/src/bmb/workflows/agent/templates/agent-template.md +89 -0
- package/src/bmb/workflows/agent/workflow-create-agent.md +72 -0
- package/src/bmb/workflows/agent/workflow-edit-agent.md +75 -0
- package/src/bmb/workflows/agent/workflow-validate-agent.md +73 -0
- package/src/bmb/workflows/module/data/agent-architecture.md +179 -0
- package/src/bmb/workflows/module/data/agent-spec-template.md +79 -0
- package/src/bmb/workflows/module/data/module-standards.md +263 -0
- package/src/bmb/workflows/module/data/module-yaml-conventions.md +392 -0
- package/src/bmb/workflows/module/module-help-generate.md +254 -0
- package/src/bmb/workflows/module/steps-b/step-01-welcome.md +148 -0
- package/src/bmb/workflows/module/steps-b/step-02-spark.md +141 -0
- package/src/bmb/workflows/module/steps-b/step-03-module-type.md +149 -0
- package/src/bmb/workflows/module/steps-b/step-04-vision.md +83 -0
- package/src/bmb/workflows/module/steps-b/step-05-identity.md +97 -0
- package/src/bmb/workflows/module/steps-b/step-06-users.md +86 -0
- package/src/bmb/workflows/module/steps-b/step-07-value.md +76 -0
- package/src/bmb/workflows/module/steps-b/step-08-agents.md +97 -0
- package/src/bmb/workflows/module/steps-b/step-09-workflows.md +83 -0
- package/src/bmb/workflows/module/steps-b/step-10-tools.md +91 -0
- package/src/bmb/workflows/module/steps-b/step-11-scenarios.md +84 -0
- package/src/bmb/workflows/module/steps-b/step-12-creative.md +95 -0
- package/src/bmb/workflows/module/steps-b/step-13-review.md +105 -0
- package/src/bmb/workflows/module/steps-b/step-14-finalize.md +117 -0
- package/src/bmb/workflows/module/steps-c/step-01-load-brief.md +179 -0
- package/src/bmb/workflows/module/steps-c/step-01b-continue.md +82 -0
- package/src/bmb/workflows/module/steps-c/step-02-structure.md +105 -0
- package/src/bmb/workflows/module/steps-c/step-03-config.md +119 -0
- package/src/bmb/workflows/module/steps-c/step-04-agents.md +168 -0
- package/src/bmb/workflows/module/steps-c/step-05-workflows.md +184 -0
- package/src/bmb/workflows/module/steps-c/step-06-docs.md +401 -0
- package/src/bmb/workflows/module/steps-c/step-07-complete.md +152 -0
- package/src/bmb/workflows/module/steps-e/step-01-load-target.md +81 -0
- package/src/bmb/workflows/module/steps-e/step-02-select-edit.md +77 -0
- package/src/bmb/workflows/module/steps-e/step-03-apply-edit.md +77 -0
- package/src/bmb/workflows/module/steps-e/step-04-review.md +80 -0
- package/src/bmb/workflows/module/steps-e/step-05-confirm.md +75 -0
- package/src/bmb/workflows/module/steps-v/step-01-load-target.md +96 -0
- package/src/bmb/workflows/module/steps-v/step-02-file-structure.md +93 -0
- package/src/bmb/workflows/module/steps-v/step-03-module-yaml.md +99 -0
- package/src/bmb/workflows/module/steps-v/step-04-agent-specs.md +152 -0
- package/src/bmb/workflows/module/steps-v/step-05-workflow-specs.md +152 -0
- package/src/bmb/workflows/module/steps-v/step-06-documentation.md +143 -0
- package/src/bmb/workflows/module/steps-v/step-07-installation.md +102 -0
- package/src/bmb/workflows/module/steps-v/step-08-report.md +197 -0
- package/src/bmb/workflows/module/templates/brief-template.md +154 -0
- package/src/bmb/workflows/module/templates/workflow-spec-template.md +96 -0
- package/src/bmb/workflows/module/workflow-create-module-brief.md +71 -0
- package/src/bmb/workflows/module/workflow-create-module.md +86 -0
- package/src/bmb/workflows/module/workflow-edit-module.md +66 -0
- package/src/bmb/workflows/module/workflow-validate-module.md +66 -0
- package/src/bmb/workflows/workflow/data/architecture.md +150 -0
- package/src/bmb/workflows/workflow/data/common-workflow-tools.csv +19 -0
- package/src/bmb/workflows/workflow/data/csv-data-file-standards.md +53 -0
- package/src/bmb/workflows/workflow/data/frontmatter-standards.md +184 -0
- package/src/bmb/workflows/workflow/data/input-discovery-standards.md +191 -0
- package/src/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +44 -0
- package/src/bmb/workflows/workflow/data/menu-handling-standards.md +133 -0
- package/src/bmb/workflows/workflow/data/output-format-standards.md +135 -0
- package/src/bmb/workflows/workflow/data/step-file-rules.md +235 -0
- package/src/bmb/workflows/workflow/data/step-type-patterns.md +257 -0
- package/src/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +188 -0
- package/src/bmb/workflows/workflow/data/trimodal-workflow-structure.md +164 -0
- package/src/bmb/workflows/workflow/data/workflow-chaining-standards.md +222 -0
- package/src/bmb/workflows/workflow/data/workflow-examples.md +232 -0
- package/src/bmb/workflows/workflow/data/workflow-type-criteria.md +134 -0
- package/src/bmb/workflows/workflow/steps-c/step-00-conversion.md +263 -0
- package/src/bmb/workflows/workflow/steps-c/step-01-discovery.md +194 -0
- package/src/bmb/workflows/workflow/steps-c/step-01b-continuation.md +3 -0
- package/src/bmb/workflows/workflow/steps-c/step-02-classification.md +270 -0
- package/src/bmb/workflows/workflow/steps-c/step-03-requirements.md +283 -0
- package/src/bmb/workflows/workflow/steps-c/step-04-tools.md +282 -0
- package/src/bmb/workflows/workflow/steps-c/step-05-plan-review.md +243 -0
- package/src/bmb/workflows/workflow/steps-c/step-06-design.md +330 -0
- package/src/bmb/workflows/workflow/steps-c/step-07-foundation.md +239 -0
- package/src/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +379 -0
- package/src/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +350 -0
- package/src/bmb/workflows/workflow/steps-c/step-10-confirmation.md +322 -0
- package/src/bmb/workflows/workflow/steps-c/step-11-completion.md +191 -0
- package/src/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +237 -0
- package/src/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +251 -0
- package/src/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +254 -0
- package/src/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +277 -0
- package/src/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +154 -0
- package/src/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +190 -0
- package/src/bmb/workflows/workflow/steps-e/step-e-07-complete.md +206 -0
- package/src/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +109 -0
- package/src/bmb/workflows/workflow/steps-v/step-01-validate.md +221 -0
- package/src/bmb/workflows/workflow/steps-v/step-01b-structure.md +152 -0
- package/src/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +199 -0
- package/src/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +265 -0
- package/src/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +164 -0
- package/src/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +211 -0
- package/src/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +200 -0
- package/src/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +195 -0
- package/src/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +209 -0
- package/src/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +199 -0
- package/src/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +179 -0
- package/src/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +186 -0
- package/src/bmb/workflows/workflow/steps-v/step-10-report-complete.md +154 -0
- package/src/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +237 -0
- package/src/bmb/workflows/workflow/templates/minimal-output-template.md +11 -0
- package/src/bmb/workflows/workflow/templates/step-01-init-continuable-template.md +241 -0
- package/src/bmb/workflows/workflow/templates/step-1b-template.md +224 -0
- package/src/bmb/workflows/workflow/templates/step-template.md +294 -0
- package/src/bmb/workflows/workflow/templates/workflow-template.md +102 -0
- package/src/bmb/workflows/workflow/workflow-create-workflow.md +79 -0
- package/src/bmb/workflows/workflow/workflow-edit-workflow.md +65 -0
- package/src/bmb/workflows/workflow/workflow-rework-workflow.md +65 -0
- package/src/bmb/workflows/workflow/workflow-validate-max-parallel-workflow.md +66 -0
- package/src/bmb/workflows/workflow/workflow-validate-workflow.md +65 -0
- package/src/bmm/agents/analyst.md +104 -0
- package/src/bmm/agents/architect.md +85 -0
- package/src/bmm/agents/dev.md +100 -0
- package/src/bmm/agents/pm.md +98 -0
- package/src/bmm/agents/qa.md +90 -0
- package/src/bmm/agents/quick-flow-solo-dev.md +92 -0
- package/src/bmm/agents/review-agent.md +129 -0
- package/src/bmm/agents/sm.md +90 -0
- package/src/bmm/agents/tech-writer/tech-writer.md +94 -0
- package/src/bmm/agents/ux-designer.md +124 -0
- package/src/bmm/data/project-context-template.md +26 -0
- package/src/bmm/module-help.csv +31 -0
- package/src/bmm/teams/default-party.csv +20 -0
- package/src/bmm/teams/team-fullstack.yaml +12 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +115 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +107 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +141 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +144 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +147 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +161 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +99 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +57 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +87 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +156 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +165 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +140 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +152 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +345 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +92 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +164 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +174 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +184 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +105 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +360 -0
- package/src/bmm/workflows/1-analysis/research/research.template.md +29 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +87 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +165 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +174 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +141 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +159 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +387 -0
- package/src/bmm/workflows/1-analysis/research/workflow-domain-research.md +54 -0
- package/src/bmm/workflows/1-analysis/research/workflow-market-research.md +54 -0
- package/src/bmm/workflows/1-analysis/research/workflow-technical-research.md +54 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +15 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +139 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +100 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +160 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +88 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +99 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +169 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +156 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +136 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +176 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +184 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +174 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +175 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +189 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +162 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +79 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +183 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +149 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +187 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +192 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +108 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +166 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +131 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +150 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +118 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +155 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +170 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +158 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +147 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +182 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +202 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +148 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +201 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +179 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +164 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +65 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +65 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +63 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +63 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +63 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +106 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +111 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +115 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +127 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +167 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +143 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +118 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +154 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +136 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +165 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +135 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +192 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +101 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +45 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +185 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +129 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +130 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +93 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +196 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +129 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +54 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +13 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +89 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +82 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +106 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +138 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +129 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +166 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +186 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +163 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +38 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +49 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +129 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +124 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +122 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +84 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
- package/src/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
- package/src/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
- package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +43 -0
- package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
- package/src/bmm/workflows/4-implementation/correct-course/instructions.md +207 -0
- package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +53 -0
- package/src/bmm/workflows/4-implementation/create-story/checklist.md +159 -0
- package/src/bmm/workflows/4-implementation/create-story/instructions.xml +574 -0
- package/src/bmm/workflows/4-implementation/create-story/template.md +79 -0
- package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +52 -0
- package/src/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
- package/src/bmm/workflows/4-implementation/dev-story/instructions.xml +493 -0
- package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +20 -0
- package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1444 -0
- package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +52 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +232 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +52 -0
- package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +230 -0
- package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +25 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +158 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +122 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +93 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +93 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +87 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +146 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +204 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +152 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +123 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +201 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
- package/src/bmm/workflows/document-project/checklist.md +245 -0
- package/src/bmm/workflows/document-project/documentation-requirements.csv +12 -0
- package/src/bmm/workflows/document-project/instructions.md +130 -0
- package/src/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
- package/src/bmm/workflows/document-project/templates/index-template.md +169 -0
- package/src/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
- package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
- package/src/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
- package/src/bmm/workflows/document-project/workflow.yaml +22 -0
- package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
- package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
- package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
- package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
- package/src/bmm/workflows/generate-project-context/project-context-template.md +21 -0
- package/src/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
- package/src/bmm/workflows/generate-project-context/steps/step-02-generate.md +322 -0
- package/src/bmm/workflows/generate-project-context/steps/step-03-complete.md +235 -0
- package/src/bmm/workflows/generate-project-context/workflow.md +49 -0
- package/src/bmm/workflows/qa/automate/workflow.yaml +233 -0
- package/src/bmm/workflows/qa-generate-e2e-tests/checklist.md +33 -0
- package/src/bmm/workflows/qa-generate-e2e-tests/instructions.md +110 -0
- package/src/bmm/workflows/qa-generate-e2e-tests/workflow.yaml +42 -0
- package/src/core/agents/bmad-master.md +56 -0
- package/src/core/agents/master-orchestrator.md +54 -0
- package/src/core/config.yaml +9 -0
- package/src/core/module-help.csv +10 -0
- package/src/core/scripts/generate-loop-report.py +72 -0
- package/src/core/skills/prepare-to-merge/SKILL.md +77 -0
- package/src/core/tasks/editorial-review-prose.xml +102 -0
- package/src/core/tasks/editorial-review-structure.xml +208 -0
- package/src/core/tasks/help.md +86 -0
- package/src/core/tasks/index-docs.xml +65 -0
- package/src/core/tasks/review-adversarial-general.xml +66 -0
- package/src/core/tasks/review-adversarial-loop.xml +46 -0
- package/src/core/tasks/review-edge-case-hunter.xml +63 -0
- package/src/core/tasks/review-party-loop.xml +46 -0
- package/src/core/tasks/shard-doc.xml +108 -0
- package/src/core/tasks/workflow.xml +236 -0
- package/src/core/templates/review-loop-report.html +88 -0
- package/src/core/templates/review-loop-report.md +5 -0
- package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
- package/src/core/workflows/advanced-elicitation/workflow.xml +118 -0
- package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
- package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +212 -0
- package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
- package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
- package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
- package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
- package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
- package/src/core/workflows/brainstorming/steps/step-02e-deep-dive.md +68 -0
- package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +403 -0
- package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
- package/src/core/workflows/brainstorming/template.md +15 -0
- package/src/core/workflows/brainstorming/workflow.md +60 -0
- package/src/core/workflows/extract-trackers/workflow.md +45 -0
- package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +142 -0
- package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
- package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +168 -0
- package/src/core/workflows/party-mode/workflow.md +194 -0
- package/src/docs/dev/tmux/actions_popup.py +291 -0
- package/src/docs/dev/tmux/actions_popup.sh +110 -0
- package/src/docs/dev/tmux/claude_usage.sh +15 -0
- package/src/docs/dev/tmux/colors.conf +34 -0
- package/src/docs/dev/tmux/cpu_usage.sh +7 -0
- package/src/docs/dev/tmux/dispatch.sh +10 -0
- package/src/docs/dev/tmux/float_init.sh +13 -0
- package/src/docs/dev/tmux/float_term.sh +23 -0
- package/src/docs/dev/tmux/open_clip.sh +14 -0
- package/src/docs/dev/tmux/paste_clipboard.sh +13 -0
- package/src/docs/dev/tmux/paste_image_wrapper.sh +83 -0
- package/src/docs/dev/tmux/ram_usage.sh +3 -0
- package/src/docs/dev/tmux/title_sync.sh +54 -0
- package/src/docs/dev/tmux/tmux-setup.md +806 -0
- package/src/docs/dev/tmux/tmux.conf +127 -0
- 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 |
|