@codyswann/lisa 2.121.0 → 2.122.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/.claude-plugin/marketplace.json +144 -0
- package/dist/agy/agents-md-installer.d.ts +6 -3
- package/dist/agy/agents-md-installer.d.ts.map +1 -1
- package/dist/agy/agents-md-installer.js +9 -4
- package/dist/agy/agents-md-installer.js.map +1 -1
- package/dist/agy/mcp-installer.d.ts +18 -0
- package/dist/agy/mcp-installer.d.ts.map +1 -1
- package/dist/agy/mcp-installer.js +21 -0
- package/dist/agy/mcp-installer.js.map +1 -1
- package/dist/agy/plugin-installer.d.ts +6 -4
- package/dist/agy/plugin-installer.d.ts.map +1 -1
- package/dist/agy/plugin-installer.js +13 -7
- package/dist/agy/plugin-installer.js.map +1 -1
- package/dist/codex/lisa-plugin-detection.d.ts +18 -19
- package/dist/codex/lisa-plugin-detection.d.ts.map +1 -1
- package/dist/codex/lisa-plugin-detection.js +26 -22
- package/dist/codex/lisa-plugin-detection.js.map +1 -1
- package/dist/copilot/plugin-installer.d.ts +6 -3
- package/dist/copilot/plugin-installer.d.ts.map +1 -1
- package/dist/copilot/plugin-installer.js +14 -7
- package/dist/copilot/plugin-installer.js.map +1 -1
- package/dist/core/config.d.ts +20 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +20 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/lisa.d.ts +16 -0
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +66 -19
- package/dist/core/lisa.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +2 -2
- package/plugins/lisa/{.codex-plugin → hooks}/hooks.json +7 -7
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +11 -0
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/.mcp.json +8 -0
- package/plugins/lisa-expo-agy/THIRD-PARTY-NOTICES.md +57 -0
- package/plugins/lisa-expo-agy/agents/ops-specialist.md +124 -0
- package/plugins/lisa-expo-agy/commands/e2e-coverage-gaps.md +7 -0
- package/plugins/lisa-expo-agy/commands/exploratory-qa.md +7 -0
- package/plugins/lisa-expo-agy/plugin.json +11 -0
- package/plugins/lisa-expo-agy/skills/add-app-clip/SKILL.md +280 -0
- package/plugins/lisa-expo-agy/skills/add-app-clip/references/native-module.md +96 -0
- package/plugins/lisa-expo-agy/skills/apollo-client/SKILL.md +238 -0
- package/plugins/lisa-expo-agy/skills/apollo-client/references/mutation-patterns.md +360 -0
- package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/SKILL.md +360 -0
- package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
- package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
- package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
- package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/SKILL.md +321 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/animations.md +220 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/controls.md +272 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/form-sheet.md +253 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/gradients.md +106 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/icons.md +213 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/media.md +198 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/route-structure.md +229 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/search.md +248 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/storage.md +121 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/tabs.md +433 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/visual-effects.md +197 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/webgpu-three.md +605 -0
- package/plugins/lisa-expo-agy/skills/building-native-ui/references/zoom-transitions.md +158 -0
- package/plugins/lisa-expo-agy/skills/container-view-pattern/SKILL.md +299 -0
- package/plugins/lisa-expo-agy/skills/container-view-pattern/references/examples.md +749 -0
- package/plugins/lisa-expo-agy/skills/container-view-pattern/references/patterns.md +318 -0
- package/plugins/lisa-expo-agy/skills/container-view-pattern/scripts/create_component.py +200 -0
- package/plugins/lisa-expo-agy/skills/container-view-pattern/scripts/validate_component.py +209 -0
- package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/SKILL.md +268 -0
- package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/references/common-issues.md +619 -0
- package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
- package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/references/platform-api.md +276 -0
- package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
- package/plugins/lisa-expo-agy/skills/directory-structure/SKILL.md +202 -0
- package/plugins/lisa-expo-agy/skills/directory-structure/scripts/validate_structure.py +445 -0
- package/plugins/lisa-expo-agy/skills/e2e-coverage-gaps/SKILL.md +105 -0
- package/plugins/lisa-expo-agy/skills/eas-update-insights/SKILL.md +228 -0
- package/plugins/lisa-expo-agy/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
- package/plugins/lisa-expo-agy/skills/eas-update-insights/references/update-insights-schema.md +69 -0
- package/plugins/lisa-expo-agy/skills/exploratory-qa/SKILL.md +145 -0
- package/plugins/lisa-expo-agy/skills/expo-api-routes/SKILL.md +369 -0
- package/plugins/lisa-expo-agy/skills/expo-brownfield/SKILL.md +54 -0
- package/plugins/lisa-expo-agy/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
- package/plugins/lisa-expo-agy/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
- package/plugins/lisa-expo-agy/skills/expo-brownfield/references/comparison.md +63 -0
- package/plugins/lisa-expo-agy/skills/expo-brownfield/references/troubleshooting.md +88 -0
- package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/SKILL.md +92 -0
- package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
- package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/scripts/package.json +11 -0
- package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/scripts/validate.js +85 -0
- package/plugins/lisa-expo-agy/skills/expo-deployment/SKILL.md +190 -0
- package/plugins/lisa-expo-agy/skills/expo-deployment/references/app-store-metadata.md +479 -0
- package/plugins/lisa-expo-agy/skills/expo-deployment/references/ios-app-store.md +355 -0
- package/plugins/lisa-expo-agy/skills/expo-deployment/references/play-store.md +246 -0
- package/plugins/lisa-expo-agy/skills/expo-deployment/references/testflight.md +58 -0
- package/plugins/lisa-expo-agy/skills/expo-deployment/references/workflows.md +200 -0
- package/plugins/lisa-expo-agy/skills/expo-dev-client/SKILL.md +164 -0
- package/plugins/lisa-expo-agy/skills/expo-env-config/SKILL.md +309 -0
- package/plugins/lisa-expo-agy/skills/expo-env-config/references/validation-patterns.md +417 -0
- package/plugins/lisa-expo-agy/skills/expo-module/SKILL.md +141 -0
- package/plugins/lisa-expo-agy/skills/expo-module/references/config-plugin.md +90 -0
- package/plugins/lisa-expo-agy/skills/expo-module/references/create-expo-module.md +206 -0
- package/plugins/lisa-expo-agy/skills/expo-module/references/lifecycle.md +127 -0
- package/plugins/lisa-expo-agy/skills/expo-module/references/module-config.md +48 -0
- package/plugins/lisa-expo-agy/skills/expo-module/references/native-module.md +286 -0
- package/plugins/lisa-expo-agy/skills/expo-module/references/native-view.md +171 -0
- package/plugins/lisa-expo-agy/skills/expo-router-best-practices/SKILL.md +431 -0
- package/plugins/lisa-expo-agy/skills/expo-router-best-practices/references/official-docs.md +290 -0
- package/plugins/lisa-expo-agy/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
- package/plugins/lisa-expo-agy/skills/expo-tailwind-setup/SKILL.md +480 -0
- package/plugins/lisa-expo-agy/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
- package/plugins/lisa-expo-agy/skills/expo-ui-swift-ui/SKILL.md +39 -0
- package/plugins/lisa-expo-agy/skills/gluestack-nativewind/SKILL.md +411 -0
- package/plugins/lisa-expo-agy/skills/gluestack-nativewind/references/color-tokens.md +343 -0
- package/plugins/lisa-expo-agy/skills/gluestack-nativewind/references/component-mapping.md +307 -0
- package/plugins/lisa-expo-agy/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
- package/plugins/lisa-expo-agy/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
- package/plugins/lisa-expo-agy/skills/jira-add-journey/SKILL.md +126 -0
- package/plugins/lisa-expo-agy/skills/jira-create/SKILL.md +161 -0
- package/plugins/lisa-expo-agy/skills/jira-evidence/SKILL.md +78 -0
- package/plugins/lisa-expo-agy/skills/jira-evidence/scripts/post-evidence.sh +163 -0
- package/plugins/lisa-expo-agy/skills/jira-journey/SKILL.md +190 -0
- package/plugins/lisa-expo-agy/skills/jira-journey/scripts/generate-templates.py +281 -0
- package/plugins/lisa-expo-agy/skills/jira-journey/scripts/parse-plan.py +368 -0
- package/plugins/lisa-expo-agy/skills/jira-verify/SKILL.md +27 -0
- package/plugins/lisa-expo-agy/skills/local-state/SKILL.md +362 -0
- package/plugins/lisa-expo-agy/skills/local-state/references/async-storage.md +505 -0
- package/plugins/lisa-expo-agy/skills/local-state/references/persistence-patterns.md +711 -0
- package/plugins/lisa-expo-agy/skills/local-state/references/reactive-variables.md +446 -0
- package/plugins/lisa-expo-agy/skills/native-data-fetching/SKILL.md +507 -0
- package/plugins/lisa-expo-agy/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
- package/plugins/lisa-expo-agy/skills/ops-browser-uat/SKILL.md +124 -0
- package/plugins/lisa-expo-agy/skills/ops-check-logs/SKILL.md +211 -0
- package/plugins/lisa-expo-agy/skills/ops-db-ops/SKILL.md +119 -0
- package/plugins/lisa-expo-agy/skills/ops-deploy/SKILL.md +119 -0
- package/plugins/lisa-expo-agy/skills/ops-monitor-errors/SKILL.md +99 -0
- package/plugins/lisa-expo-agy/skills/ops-performance/SKILL.md +165 -0
- package/plugins/lisa-expo-agy/skills/ops-run-local/SKILL.md +166 -0
- package/plugins/lisa-expo-agy/skills/ops-verify-health/SKILL.md +101 -0
- package/plugins/lisa-expo-agy/skills/owasp-zap/SKILL.md +56 -0
- package/plugins/lisa-expo-agy/skills/playwright-ci-debugging/SKILL.md +140 -0
- package/plugins/lisa-expo-agy/skills/playwright-selectors/SKILL.md +455 -0
- package/plugins/lisa-expo-agy/skills/reduce-complexity/SKILL.md +251 -0
- package/plugins/lisa-expo-agy/skills/reduce-complexity/references/extraction-strategies.md +456 -0
- package/plugins/lisa-expo-agy/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
- package/plugins/lisa-expo-agy/skills/testing-library/SKILL.md +314 -0
- package/plugins/lisa-expo-agy/skills/testing-library/references/async-patterns.md +420 -0
- package/plugins/lisa-expo-agy/skills/testing-library/references/expo-router-testing.md +556 -0
- package/plugins/lisa-expo-agy/skills/testing-library/references/mocking-patterns.md +590 -0
- package/plugins/lisa-expo-agy/skills/testing-library/references/query-priority.md +291 -0
- package/plugins/lisa-expo-agy/skills/upgrading-expo/SKILL.md +134 -0
- package/plugins/lisa-expo-agy/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
- package/plugins/lisa-expo-agy/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
- package/plugins/lisa-expo-agy/skills/upgrading-expo/references/native-tabs.md +124 -0
- package/plugins/lisa-expo-agy/skills/upgrading-expo/references/new-architecture.md +79 -0
- package/plugins/lisa-expo-agy/skills/upgrading-expo/references/react-19.md +79 -0
- package/plugins/lisa-expo-agy/skills/upgrading-expo/references/react-compiler.md +59 -0
- package/plugins/lisa-expo-agy/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
- package/plugins/lisa-expo-agy/skills/use-dom/SKILL.md +417 -0
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-expo-copilot/.mcp.json +8 -0
- package/plugins/lisa-expo-copilot/THIRD-PARTY-NOTICES.md +57 -0
- package/plugins/lisa-expo-copilot/agents/ops-specialist.agent.md +124 -0
- package/plugins/lisa-expo-copilot/commands/e2e-coverage-gaps.md +7 -0
- package/plugins/lisa-expo-copilot/commands/exploratory-qa.md +7 -0
- package/plugins/lisa-expo-copilot/skills/add-app-clip/SKILL.md +280 -0
- package/plugins/lisa-expo-copilot/skills/add-app-clip/references/native-module.md +96 -0
- package/plugins/lisa-expo-copilot/skills/apollo-client/SKILL.md +238 -0
- package/plugins/lisa-expo-copilot/skills/apollo-client/references/mutation-patterns.md +360 -0
- package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/SKILL.md +360 -0
- package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
- package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
- package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
- package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/SKILL.md +321 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/animations.md +220 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/controls.md +272 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/form-sheet.md +253 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/gradients.md +106 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/icons.md +213 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/media.md +198 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/route-structure.md +229 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/search.md +248 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/storage.md +121 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/tabs.md +433 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/visual-effects.md +197 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/webgpu-three.md +605 -0
- package/plugins/lisa-expo-copilot/skills/building-native-ui/references/zoom-transitions.md +158 -0
- package/plugins/lisa-expo-copilot/skills/container-view-pattern/SKILL.md +299 -0
- package/plugins/lisa-expo-copilot/skills/container-view-pattern/references/examples.md +749 -0
- package/plugins/lisa-expo-copilot/skills/container-view-pattern/references/patterns.md +318 -0
- package/plugins/lisa-expo-copilot/skills/container-view-pattern/scripts/create_component.py +200 -0
- package/plugins/lisa-expo-copilot/skills/container-view-pattern/scripts/validate_component.py +209 -0
- package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/SKILL.md +268 -0
- package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/references/common-issues.md +619 -0
- package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
- package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/references/platform-api.md +276 -0
- package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
- package/plugins/lisa-expo-copilot/skills/directory-structure/SKILL.md +202 -0
- package/plugins/lisa-expo-copilot/skills/directory-structure/scripts/validate_structure.py +445 -0
- package/plugins/lisa-expo-copilot/skills/e2e-coverage-gaps/SKILL.md +105 -0
- package/plugins/lisa-expo-copilot/skills/eas-update-insights/SKILL.md +228 -0
- package/plugins/lisa-expo-copilot/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
- package/plugins/lisa-expo-copilot/skills/eas-update-insights/references/update-insights-schema.md +69 -0
- package/plugins/lisa-expo-copilot/skills/exploratory-qa/SKILL.md +145 -0
- package/plugins/lisa-expo-copilot/skills/expo-api-routes/SKILL.md +369 -0
- package/plugins/lisa-expo-copilot/skills/expo-brownfield/SKILL.md +54 -0
- package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
- package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
- package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/comparison.md +63 -0
- package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/troubleshooting.md +88 -0
- package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/SKILL.md +92 -0
- package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
- package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/scripts/package.json +11 -0
- package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/scripts/validate.js +85 -0
- package/plugins/lisa-expo-copilot/skills/expo-deployment/SKILL.md +190 -0
- package/plugins/lisa-expo-copilot/skills/expo-deployment/references/app-store-metadata.md +479 -0
- package/plugins/lisa-expo-copilot/skills/expo-deployment/references/ios-app-store.md +355 -0
- package/plugins/lisa-expo-copilot/skills/expo-deployment/references/play-store.md +246 -0
- package/plugins/lisa-expo-copilot/skills/expo-deployment/references/testflight.md +58 -0
- package/plugins/lisa-expo-copilot/skills/expo-deployment/references/workflows.md +200 -0
- package/plugins/lisa-expo-copilot/skills/expo-dev-client/SKILL.md +164 -0
- package/plugins/lisa-expo-copilot/skills/expo-env-config/SKILL.md +309 -0
- package/plugins/lisa-expo-copilot/skills/expo-env-config/references/validation-patterns.md +417 -0
- package/plugins/lisa-expo-copilot/skills/expo-module/SKILL.md +141 -0
- package/plugins/lisa-expo-copilot/skills/expo-module/references/config-plugin.md +90 -0
- package/plugins/lisa-expo-copilot/skills/expo-module/references/create-expo-module.md +206 -0
- package/plugins/lisa-expo-copilot/skills/expo-module/references/lifecycle.md +127 -0
- package/plugins/lisa-expo-copilot/skills/expo-module/references/module-config.md +48 -0
- package/plugins/lisa-expo-copilot/skills/expo-module/references/native-module.md +286 -0
- package/plugins/lisa-expo-copilot/skills/expo-module/references/native-view.md +171 -0
- package/plugins/lisa-expo-copilot/skills/expo-router-best-practices/SKILL.md +431 -0
- package/plugins/lisa-expo-copilot/skills/expo-router-best-practices/references/official-docs.md +290 -0
- package/plugins/lisa-expo-copilot/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
- package/plugins/lisa-expo-copilot/skills/expo-tailwind-setup/SKILL.md +480 -0
- package/plugins/lisa-expo-copilot/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
- package/plugins/lisa-expo-copilot/skills/expo-ui-swift-ui/SKILL.md +39 -0
- package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/SKILL.md +411 -0
- package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/references/color-tokens.md +343 -0
- package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/references/component-mapping.md +307 -0
- package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
- package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
- package/plugins/lisa-expo-copilot/skills/jira-add-journey/SKILL.md +126 -0
- package/plugins/lisa-expo-copilot/skills/jira-create/SKILL.md +161 -0
- package/plugins/lisa-expo-copilot/skills/jira-evidence/SKILL.md +78 -0
- package/plugins/lisa-expo-copilot/skills/jira-evidence/scripts/post-evidence.sh +163 -0
- package/plugins/lisa-expo-copilot/skills/jira-journey/SKILL.md +190 -0
- package/plugins/lisa-expo-copilot/skills/jira-journey/scripts/generate-templates.py +281 -0
- package/plugins/lisa-expo-copilot/skills/jira-journey/scripts/parse-plan.py +368 -0
- package/plugins/lisa-expo-copilot/skills/jira-verify/SKILL.md +27 -0
- package/plugins/lisa-expo-copilot/skills/local-state/SKILL.md +362 -0
- package/plugins/lisa-expo-copilot/skills/local-state/references/async-storage.md +505 -0
- package/plugins/lisa-expo-copilot/skills/local-state/references/persistence-patterns.md +711 -0
- package/plugins/lisa-expo-copilot/skills/local-state/references/reactive-variables.md +446 -0
- package/plugins/lisa-expo-copilot/skills/native-data-fetching/SKILL.md +507 -0
- package/plugins/lisa-expo-copilot/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
- package/plugins/lisa-expo-copilot/skills/ops-browser-uat/SKILL.md +124 -0
- package/plugins/lisa-expo-copilot/skills/ops-check-logs/SKILL.md +211 -0
- package/plugins/lisa-expo-copilot/skills/ops-db-ops/SKILL.md +119 -0
- package/plugins/lisa-expo-copilot/skills/ops-deploy/SKILL.md +119 -0
- package/plugins/lisa-expo-copilot/skills/ops-monitor-errors/SKILL.md +99 -0
- package/plugins/lisa-expo-copilot/skills/ops-performance/SKILL.md +165 -0
- package/plugins/lisa-expo-copilot/skills/ops-run-local/SKILL.md +166 -0
- package/plugins/lisa-expo-copilot/skills/ops-verify-health/SKILL.md +101 -0
- package/plugins/lisa-expo-copilot/skills/owasp-zap/SKILL.md +56 -0
- package/plugins/lisa-expo-copilot/skills/playwright-ci-debugging/SKILL.md +140 -0
- package/plugins/lisa-expo-copilot/skills/playwright-selectors/SKILL.md +455 -0
- package/plugins/lisa-expo-copilot/skills/reduce-complexity/SKILL.md +251 -0
- package/plugins/lisa-expo-copilot/skills/reduce-complexity/references/extraction-strategies.md +456 -0
- package/plugins/lisa-expo-copilot/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
- package/plugins/lisa-expo-copilot/skills/testing-library/SKILL.md +314 -0
- package/plugins/lisa-expo-copilot/skills/testing-library/references/async-patterns.md +420 -0
- package/plugins/lisa-expo-copilot/skills/testing-library/references/expo-router-testing.md +556 -0
- package/plugins/lisa-expo-copilot/skills/testing-library/references/mocking-patterns.md +590 -0
- package/plugins/lisa-expo-copilot/skills/testing-library/references/query-priority.md +291 -0
- package/plugins/lisa-expo-copilot/skills/upgrading-expo/SKILL.md +134 -0
- package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
- package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
- package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/native-tabs.md +124 -0
- package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/new-architecture.md +79 -0
- package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/react-19.md +79 -0
- package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/react-compiler.md +59 -0
- package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
- package/plugins/lisa-expo-copilot/skills/use-dom/SKILL.md +417 -0
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-expo-cursor/.mcp.json +8 -0
- package/plugins/lisa-expo-cursor/THIRD-PARTY-NOTICES.md +57 -0
- package/plugins/lisa-expo-cursor/agents/ops-specialist.md +124 -0
- package/plugins/lisa-expo-cursor/commands/e2e-coverage-gaps.md +7 -0
- package/plugins/lisa-expo-cursor/commands/exploratory-qa.md +7 -0
- package/plugins/lisa-expo-cursor/skills/add-app-clip/SKILL.md +280 -0
- package/plugins/lisa-expo-cursor/skills/add-app-clip/references/native-module.md +96 -0
- package/plugins/lisa-expo-cursor/skills/apollo-client/SKILL.md +238 -0
- package/plugins/lisa-expo-cursor/skills/apollo-client/references/mutation-patterns.md +360 -0
- package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/SKILL.md +360 -0
- package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
- package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
- package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
- package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/SKILL.md +321 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/animations.md +220 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/controls.md +272 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/form-sheet.md +253 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/gradients.md +106 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/icons.md +213 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/media.md +198 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/route-structure.md +229 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/search.md +248 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/storage.md +121 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/tabs.md +433 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/visual-effects.md +197 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/webgpu-three.md +605 -0
- package/plugins/lisa-expo-cursor/skills/building-native-ui/references/zoom-transitions.md +158 -0
- package/plugins/lisa-expo-cursor/skills/container-view-pattern/SKILL.md +299 -0
- package/plugins/lisa-expo-cursor/skills/container-view-pattern/references/examples.md +749 -0
- package/plugins/lisa-expo-cursor/skills/container-view-pattern/references/patterns.md +318 -0
- package/plugins/lisa-expo-cursor/skills/container-view-pattern/scripts/create_component.py +200 -0
- package/plugins/lisa-expo-cursor/skills/container-view-pattern/scripts/validate_component.py +209 -0
- package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/SKILL.md +268 -0
- package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/references/common-issues.md +619 -0
- package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
- package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/references/platform-api.md +276 -0
- package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
- package/plugins/lisa-expo-cursor/skills/directory-structure/SKILL.md +202 -0
- package/plugins/lisa-expo-cursor/skills/directory-structure/scripts/validate_structure.py +445 -0
- package/plugins/lisa-expo-cursor/skills/e2e-coverage-gaps/SKILL.md +105 -0
- package/plugins/lisa-expo-cursor/skills/eas-update-insights/SKILL.md +228 -0
- package/plugins/lisa-expo-cursor/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
- package/plugins/lisa-expo-cursor/skills/eas-update-insights/references/update-insights-schema.md +69 -0
- package/plugins/lisa-expo-cursor/skills/exploratory-qa/SKILL.md +145 -0
- package/plugins/lisa-expo-cursor/skills/expo-api-routes/SKILL.md +369 -0
- package/plugins/lisa-expo-cursor/skills/expo-brownfield/SKILL.md +54 -0
- package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
- package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
- package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/comparison.md +63 -0
- package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/troubleshooting.md +88 -0
- package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/SKILL.md +92 -0
- package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
- package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/scripts/package.json +11 -0
- package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/scripts/validate.js +85 -0
- package/plugins/lisa-expo-cursor/skills/expo-deployment/SKILL.md +190 -0
- package/plugins/lisa-expo-cursor/skills/expo-deployment/references/app-store-metadata.md +479 -0
- package/plugins/lisa-expo-cursor/skills/expo-deployment/references/ios-app-store.md +355 -0
- package/plugins/lisa-expo-cursor/skills/expo-deployment/references/play-store.md +246 -0
- package/plugins/lisa-expo-cursor/skills/expo-deployment/references/testflight.md +58 -0
- package/plugins/lisa-expo-cursor/skills/expo-deployment/references/workflows.md +200 -0
- package/plugins/lisa-expo-cursor/skills/expo-dev-client/SKILL.md +164 -0
- package/plugins/lisa-expo-cursor/skills/expo-env-config/SKILL.md +309 -0
- package/plugins/lisa-expo-cursor/skills/expo-env-config/references/validation-patterns.md +417 -0
- package/plugins/lisa-expo-cursor/skills/expo-module/SKILL.md +141 -0
- package/plugins/lisa-expo-cursor/skills/expo-module/references/config-plugin.md +90 -0
- package/plugins/lisa-expo-cursor/skills/expo-module/references/create-expo-module.md +206 -0
- package/plugins/lisa-expo-cursor/skills/expo-module/references/lifecycle.md +127 -0
- package/plugins/lisa-expo-cursor/skills/expo-module/references/module-config.md +48 -0
- package/plugins/lisa-expo-cursor/skills/expo-module/references/native-module.md +286 -0
- package/plugins/lisa-expo-cursor/skills/expo-module/references/native-view.md +171 -0
- package/plugins/lisa-expo-cursor/skills/expo-router-best-practices/SKILL.md +431 -0
- package/plugins/lisa-expo-cursor/skills/expo-router-best-practices/references/official-docs.md +290 -0
- package/plugins/lisa-expo-cursor/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
- package/plugins/lisa-expo-cursor/skills/expo-tailwind-setup/SKILL.md +480 -0
- package/plugins/lisa-expo-cursor/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
- package/plugins/lisa-expo-cursor/skills/expo-ui-swift-ui/SKILL.md +39 -0
- package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/SKILL.md +411 -0
- package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/references/color-tokens.md +343 -0
- package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/references/component-mapping.md +307 -0
- package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
- package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
- package/plugins/lisa-expo-cursor/skills/jira-add-journey/SKILL.md +126 -0
- package/plugins/lisa-expo-cursor/skills/jira-create/SKILL.md +161 -0
- package/plugins/lisa-expo-cursor/skills/jira-evidence/SKILL.md +78 -0
- package/plugins/lisa-expo-cursor/skills/jira-evidence/scripts/post-evidence.sh +163 -0
- package/plugins/lisa-expo-cursor/skills/jira-journey/SKILL.md +190 -0
- package/plugins/lisa-expo-cursor/skills/jira-journey/scripts/generate-templates.py +281 -0
- package/plugins/lisa-expo-cursor/skills/jira-journey/scripts/parse-plan.py +368 -0
- package/plugins/lisa-expo-cursor/skills/jira-verify/SKILL.md +27 -0
- package/plugins/lisa-expo-cursor/skills/local-state/SKILL.md +362 -0
- package/plugins/lisa-expo-cursor/skills/local-state/references/async-storage.md +505 -0
- package/plugins/lisa-expo-cursor/skills/local-state/references/persistence-patterns.md +711 -0
- package/plugins/lisa-expo-cursor/skills/local-state/references/reactive-variables.md +446 -0
- package/plugins/lisa-expo-cursor/skills/native-data-fetching/SKILL.md +507 -0
- package/plugins/lisa-expo-cursor/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
- package/plugins/lisa-expo-cursor/skills/ops-browser-uat/SKILL.md +124 -0
- package/plugins/lisa-expo-cursor/skills/ops-check-logs/SKILL.md +211 -0
- package/plugins/lisa-expo-cursor/skills/ops-db-ops/SKILL.md +119 -0
- package/plugins/lisa-expo-cursor/skills/ops-deploy/SKILL.md +119 -0
- package/plugins/lisa-expo-cursor/skills/ops-monitor-errors/SKILL.md +99 -0
- package/plugins/lisa-expo-cursor/skills/ops-performance/SKILL.md +165 -0
- package/plugins/lisa-expo-cursor/skills/ops-run-local/SKILL.md +166 -0
- package/plugins/lisa-expo-cursor/skills/ops-verify-health/SKILL.md +101 -0
- package/plugins/lisa-expo-cursor/skills/owasp-zap/SKILL.md +56 -0
- package/plugins/lisa-expo-cursor/skills/playwright-ci-debugging/SKILL.md +140 -0
- package/plugins/lisa-expo-cursor/skills/playwright-selectors/SKILL.md +455 -0
- package/plugins/lisa-expo-cursor/skills/reduce-complexity/SKILL.md +251 -0
- package/plugins/lisa-expo-cursor/skills/reduce-complexity/references/extraction-strategies.md +456 -0
- package/plugins/lisa-expo-cursor/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
- package/plugins/lisa-expo-cursor/skills/testing-library/SKILL.md +314 -0
- package/plugins/lisa-expo-cursor/skills/testing-library/references/async-patterns.md +420 -0
- package/plugins/lisa-expo-cursor/skills/testing-library/references/expo-router-testing.md +556 -0
- package/plugins/lisa-expo-cursor/skills/testing-library/references/mocking-patterns.md +590 -0
- package/plugins/lisa-expo-cursor/skills/testing-library/references/query-priority.md +291 -0
- package/plugins/lisa-expo-cursor/skills/upgrading-expo/SKILL.md +134 -0
- package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
- package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
- package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/native-tabs.md +124 -0
- package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/new-architecture.md +79 -0
- package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/react-19.md +79 -0
- package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/react-compiler.md +59 -0
- package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
- package/plugins/lisa-expo-cursor/skills/use-dom/SKILL.md +417 -0
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +2 -2
- package/plugins/lisa-harper-fabric/{.codex-plugin → hooks}/hooks.json +2 -2
- package/plugins/lisa-harper-fabric-agy/commands/e2e-coverage-gaps.md +7 -0
- package/plugins/lisa-harper-fabric-agy/commands/exploratory-qa.md +7 -0
- package/plugins/lisa-harper-fabric-agy/plugin.json +11 -0
- package/plugins/lisa-harper-fabric-agy/skills/e2e-coverage-gaps/SKILL.md +105 -0
- package/plugins/lisa-harper-fabric-agy/skills/exploratory-qa/SKILL.md +145 -0
- package/plugins/lisa-harper-fabric-agy/skills/harper-build-and-deploy/SKILL.md +101 -0
- package/plugins/lisa-harper-fabric-agy/skills/harper-component-model/SKILL.md +87 -0
- package/plugins/lisa-harper-fabric-agy/skills/harper-config-yaml/SKILL.md +107 -0
- package/plugins/lisa-harper-fabric-agy/skills/harper-resources/SKILL.md +106 -0
- package/plugins/lisa-harper-fabric-agy/skills/harper-schema-graphql/SKILL.md +72 -0
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +35 -0
- package/plugins/lisa-harper-fabric-copilot/commands/e2e-coverage-gaps.md +7 -0
- package/plugins/lisa-harper-fabric-copilot/commands/exploratory-qa.md +7 -0
- package/plugins/lisa-harper-fabric-copilot/rules/harper-fabric.md +51 -0
- package/plugins/lisa-harper-fabric-copilot/skills/e2e-coverage-gaps/SKILL.md +105 -0
- package/plugins/lisa-harper-fabric-copilot/skills/exploratory-qa/SKILL.md +145 -0
- package/plugins/lisa-harper-fabric-copilot/skills/harper-build-and-deploy/SKILL.md +101 -0
- package/plugins/lisa-harper-fabric-copilot/skills/harper-component-model/SKILL.md +87 -0
- package/plugins/lisa-harper-fabric-copilot/skills/harper-config-yaml/SKILL.md +107 -0
- package/plugins/lisa-harper-fabric-copilot/skills/harper-resources/SKILL.md +106 -0
- package/plugins/lisa-harper-fabric-copilot/skills/harper-schema-graphql/SKILL.md +72 -0
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +11 -0
- package/plugins/lisa-harper-fabric-cursor/commands/e2e-coverage-gaps.md +7 -0
- package/plugins/lisa-harper-fabric-cursor/commands/exploratory-qa.md +7 -0
- package/plugins/lisa-harper-fabric-cursor/rules/harper-fabric.md +51 -0
- package/plugins/lisa-harper-fabric-cursor/skills/e2e-coverage-gaps/SKILL.md +105 -0
- package/plugins/lisa-harper-fabric-cursor/skills/exploratory-qa/SKILL.md +145 -0
- package/plugins/lisa-harper-fabric-cursor/skills/harper-build-and-deploy/SKILL.md +101 -0
- package/plugins/lisa-harper-fabric-cursor/skills/harper-component-model/SKILL.md +87 -0
- package/plugins/lisa-harper-fabric-cursor/skills/harper-config-yaml/SKILL.md +107 -0
- package/plugins/lisa-harper-fabric-cursor/skills/harper-resources/SKILL.md +106 -0
- package/plugins/lisa-harper-fabric-cursor/skills/harper-schema-graphql/SKILL.md +72 -0
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +2 -2
- package/plugins/lisa-nestjs/{.codex-plugin → hooks}/hooks.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +11 -0
- package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/SKILL.md +176 -0
- package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/advanced-features.md +527 -0
- package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/project-patterns.md +531 -0
- package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/quick-start.md +257 -0
- package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
- package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/types-scalars.md +513 -0
- package/plugins/lisa-nestjs-agy/skills/nestjs-rules/SKILL.md +565 -0
- package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/SKILL.md +275 -0
- package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
- package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/references/entity-patterns.md +450 -0
- package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/references/observability-patterns.md +536 -0
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +24 -0
- package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/SKILL.md +176 -0
- package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/advanced-features.md +527 -0
- package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/project-patterns.md +531 -0
- package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/quick-start.md +257 -0
- package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
- package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/types-scalars.md +513 -0
- package/plugins/lisa-nestjs-copilot/skills/nestjs-rules/SKILL.md +565 -0
- package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/SKILL.md +275 -0
- package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
- package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/references/entity-patterns.md +450 -0
- package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/references/observability-patterns.md +536 -0
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +24 -0
- package/plugins/lisa-nestjs-cursor/hooks/block-migration-edits.sh +60 -0
- package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/SKILL.md +176 -0
- package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/advanced-features.md +527 -0
- package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/project-patterns.md +531 -0
- package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/quick-start.md +257 -0
- package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
- package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/types-scalars.md +513 -0
- package/plugins/lisa-nestjs-cursor/skills/nestjs-rules/SKILL.md +565 -0
- package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/SKILL.md +275 -0
- package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
- package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/references/entity-patterns.md +450 -0
- package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/references/observability-patterns.md +536 -0
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/commands/connect-repo-topic.md +7 -0
- package/plugins/lisa-openclaw-agy/commands/connect-staff-slack.md +7 -0
- package/plugins/lisa-openclaw-agy/commands/connect-staff-telegram.md +7 -0
- package/plugins/lisa-openclaw-agy/commands/setup-openclaw.md +7 -0
- package/plugins/lisa-openclaw-agy/plugin.json +8 -0
- package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-repo-topic/SKILL.md +137 -0
- package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +109 -0
- package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
- package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-staff/references/platform-routing.md +83 -0
- package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
- package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-setup/SKILL.md +138 -0
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +8 -0
- package/plugins/lisa-openclaw-copilot/commands/connect-repo-topic.md +7 -0
- package/plugins/lisa-openclaw-copilot/commands/connect-staff-slack.md +7 -0
- package/plugins/lisa-openclaw-copilot/commands/connect-staff-telegram.md +7 -0
- package/plugins/lisa-openclaw-copilot/commands/setup-openclaw.md +7 -0
- package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-repo-topic/SKILL.md +137 -0
- package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +109 -0
- package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
- package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-staff/references/platform-routing.md +83 -0
- package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
- package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-setup/SKILL.md +138 -0
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +8 -0
- package/plugins/lisa-openclaw-cursor/commands/connect-repo-topic.md +7 -0
- package/plugins/lisa-openclaw-cursor/commands/connect-staff-slack.md +7 -0
- package/plugins/lisa-openclaw-cursor/commands/connect-staff-telegram.md +7 -0
- package/plugins/lisa-openclaw-cursor/commands/setup-openclaw.md +7 -0
- package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-repo-topic/SKILL.md +137 -0
- package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +109 -0
- package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
- package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-staff/references/platform-routing.md +83 -0
- package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
- package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-setup/SKILL.md +138 -0
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +2 -2
- package/plugins/lisa-rails/{.codex-plugin → hooks}/hooks.json +4 -4
- package/plugins/lisa-rails-agy/agents/ops-specialist.md +226 -0
- package/plugins/lisa-rails-agy/commands/e2e-coverage-gaps.md +7 -0
- package/plugins/lisa-rails-agy/commands/exploratory-qa.md +7 -0
- package/plugins/lisa-rails-agy/commands/fix/linter-error.md +7 -0
- package/plugins/lisa-rails-agy/commands/improve/code-complexity.md +6 -0
- package/plugins/lisa-rails-agy/commands/improve/max-lines-per-function.md +7 -0
- package/plugins/lisa-rails-agy/commands/improve/max-lines.md +7 -0
- package/plugins/lisa-rails-agy/commands/improve/test-coverage.md +7 -0
- package/plugins/lisa-rails-agy/plugin.json +11 -0
- package/plugins/lisa-rails-agy/skills/action-controller-best-practices/SKILL.md +374 -0
- package/plugins/lisa-rails-agy/skills/action-view-best-practices/SKILL.md +335 -0
- package/plugins/lisa-rails-agy/skills/active-record-model-best-practices/SKILL.md +166 -0
- package/plugins/lisa-rails-agy/skills/e2e-coverage-gaps/SKILL.md +105 -0
- package/plugins/lisa-rails-agy/skills/exploratory-qa/SKILL.md +145 -0
- package/plugins/lisa-rails-agy/skills/fix-linter-error/SKILL.md +45 -0
- package/plugins/lisa-rails-agy/skills/improve-code-complexity/SKILL.md +48 -0
- package/plugins/lisa-rails-agy/skills/improve-max-lines/SKILL.md +46 -0
- package/plugins/lisa-rails-agy/skills/improve-max-lines-per-function/SKILL.md +46 -0
- package/plugins/lisa-rails-agy/skills/improve-test-coverage/SKILL.md +45 -0
- package/plugins/lisa-rails-agy/skills/jira-add-journey/SKILL.md +65 -0
- package/plugins/lisa-rails-agy/skills/jira-create/SKILL.md +100 -0
- package/plugins/lisa-rails-agy/skills/jira-evidence/SKILL.md +70 -0
- package/plugins/lisa-rails-agy/skills/jira-evidence/scripts/post-evidence.sh +163 -0
- package/plugins/lisa-rails-agy/skills/jira-journey/SKILL.md +64 -0
- package/plugins/lisa-rails-agy/skills/jira-verify/SKILL.md +26 -0
- package/plugins/lisa-rails-agy/skills/ops-check-logs/SKILL.md +191 -0
- package/plugins/lisa-rails-agy/skills/ops-deploy/SKILL.md +153 -0
- package/plugins/lisa-rails-agy/skills/ops-run-local/SKILL.md +169 -0
- package/plugins/lisa-rails-agy/skills/ops-verify-jobs/SKILL.md +157 -0
- package/plugins/lisa-rails-agy/skills/ops-verify-telemetry/SKILL.md +197 -0
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +50 -0
- package/plugins/lisa-rails-copilot/agents/ops-specialist.agent.md +226 -0
- package/plugins/lisa-rails-copilot/commands/e2e-coverage-gaps.md +7 -0
- package/plugins/lisa-rails-copilot/commands/exploratory-qa.md +7 -0
- package/plugins/lisa-rails-copilot/commands/fix/linter-error.md +7 -0
- package/plugins/lisa-rails-copilot/commands/improve/code-complexity.md +6 -0
- package/plugins/lisa-rails-copilot/commands/improve/max-lines-per-function.md +7 -0
- package/plugins/lisa-rails-copilot/commands/improve/max-lines.md +7 -0
- package/plugins/lisa-rails-copilot/commands/improve/test-coverage.md +7 -0
- package/plugins/lisa-rails-copilot/rules/rails-conventions.md +176 -0
- package/plugins/lisa-rails-copilot/skills/action-controller-best-practices/SKILL.md +374 -0
- package/plugins/lisa-rails-copilot/skills/action-view-best-practices/SKILL.md +335 -0
- package/plugins/lisa-rails-copilot/skills/active-record-model-best-practices/SKILL.md +166 -0
- package/plugins/lisa-rails-copilot/skills/e2e-coverage-gaps/SKILL.md +105 -0
- package/plugins/lisa-rails-copilot/skills/exploratory-qa/SKILL.md +145 -0
- package/plugins/lisa-rails-copilot/skills/fix-linter-error/SKILL.md +45 -0
- package/plugins/lisa-rails-copilot/skills/improve-code-complexity/SKILL.md +48 -0
- package/plugins/lisa-rails-copilot/skills/improve-max-lines/SKILL.md +46 -0
- package/plugins/lisa-rails-copilot/skills/improve-max-lines-per-function/SKILL.md +46 -0
- package/plugins/lisa-rails-copilot/skills/improve-test-coverage/SKILL.md +45 -0
- package/plugins/lisa-rails-copilot/skills/jira-add-journey/SKILL.md +65 -0
- package/plugins/lisa-rails-copilot/skills/jira-create/SKILL.md +100 -0
- package/plugins/lisa-rails-copilot/skills/jira-evidence/SKILL.md +70 -0
- package/plugins/lisa-rails-copilot/skills/jira-evidence/scripts/post-evidence.sh +163 -0
- package/plugins/lisa-rails-copilot/skills/jira-journey/SKILL.md +64 -0
- package/plugins/lisa-rails-copilot/skills/jira-verify/SKILL.md +26 -0
- package/plugins/lisa-rails-copilot/skills/ops-check-logs/SKILL.md +191 -0
- package/plugins/lisa-rails-copilot/skills/ops-deploy/SKILL.md +153 -0
- package/plugins/lisa-rails-copilot/skills/ops-run-local/SKILL.md +169 -0
- package/plugins/lisa-rails-copilot/skills/ops-verify-jobs/SKILL.md +157 -0
- package/plugins/lisa-rails-copilot/skills/ops-verify-telemetry/SKILL.md +197 -0
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +28 -0
- package/plugins/lisa-rails-cursor/agents/ops-specialist.md +226 -0
- package/plugins/lisa-rails-cursor/commands/e2e-coverage-gaps.md +7 -0
- package/plugins/lisa-rails-cursor/commands/exploratory-qa.md +7 -0
- package/plugins/lisa-rails-cursor/commands/fix/linter-error.md +7 -0
- package/plugins/lisa-rails-cursor/commands/improve/code-complexity.md +6 -0
- package/plugins/lisa-rails-cursor/commands/improve/max-lines-per-function.md +7 -0
- package/plugins/lisa-rails-cursor/commands/improve/max-lines.md +7 -0
- package/plugins/lisa-rails-cursor/commands/improve/test-coverage.md +7 -0
- package/plugins/lisa-rails-cursor/hooks/rubocop-on-edit.sh +78 -0
- package/plugins/lisa-rails-cursor/hooks/sg-scan-on-edit.sh +74 -0
- package/plugins/lisa-rails-cursor/rules/rails-conventions.md +176 -0
- package/plugins/lisa-rails-cursor/skills/action-controller-best-practices/SKILL.md +374 -0
- package/plugins/lisa-rails-cursor/skills/action-view-best-practices/SKILL.md +335 -0
- package/plugins/lisa-rails-cursor/skills/active-record-model-best-practices/SKILL.md +166 -0
- package/plugins/lisa-rails-cursor/skills/e2e-coverage-gaps/SKILL.md +105 -0
- package/plugins/lisa-rails-cursor/skills/exploratory-qa/SKILL.md +145 -0
- package/plugins/lisa-rails-cursor/skills/fix-linter-error/SKILL.md +45 -0
- package/plugins/lisa-rails-cursor/skills/improve-code-complexity/SKILL.md +48 -0
- package/plugins/lisa-rails-cursor/skills/improve-max-lines/SKILL.md +46 -0
- package/plugins/lisa-rails-cursor/skills/improve-max-lines-per-function/SKILL.md +46 -0
- package/plugins/lisa-rails-cursor/skills/improve-test-coverage/SKILL.md +45 -0
- package/plugins/lisa-rails-cursor/skills/jira-add-journey/SKILL.md +65 -0
- package/plugins/lisa-rails-cursor/skills/jira-create/SKILL.md +100 -0
- package/plugins/lisa-rails-cursor/skills/jira-evidence/SKILL.md +70 -0
- package/plugins/lisa-rails-cursor/skills/jira-evidence/scripts/post-evidence.sh +163 -0
- package/plugins/lisa-rails-cursor/skills/jira-journey/SKILL.md +64 -0
- package/plugins/lisa-rails-cursor/skills/jira-verify/SKILL.md +26 -0
- package/plugins/lisa-rails-cursor/skills/ops-check-logs/SKILL.md +191 -0
- package/plugins/lisa-rails-cursor/skills/ops-deploy/SKILL.md +153 -0
- package/plugins/lisa-rails-cursor/skills/ops-run-local/SKILL.md +169 -0
- package/plugins/lisa-rails-cursor/skills/ops-verify-jobs/SKILL.md +157 -0
- package/plugins/lisa-rails-cursor/skills/ops-verify-telemetry/SKILL.md +197 -0
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +2 -2
- package/plugins/lisa-typescript/{.codex-plugin → hooks}/hooks.json +4 -4
- package/plugins/lisa-typescript-agy/plugin.json +11 -0
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +43 -0
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +43 -0
- package/plugins/lisa-typescript-cursor/hooks/block-suppress-directives.sh +73 -0
- package/plugins/lisa-typescript-cursor/hooks/format-on-edit.sh +79 -0
- package/plugins/lisa-typescript-cursor/hooks/lint-on-edit.sh +134 -0
- package/plugins/lisa-typescript-cursor/hooks/sg-scan-on-edit.sh +71 -0
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/ci/lisa-wiki-validate.yml +33 -0
- package/plugins/lisa-wiki-agy/commands/add-ingest.md +6 -0
- package/plugins/lisa-wiki-agy/commands/add-role.md +6 -0
- package/plugins/lisa-wiki-agy/commands/doctor.md +6 -0
- package/plugins/lisa-wiki-agy/commands/ingest.md +6 -0
- package/plugins/lisa-wiki-agy/commands/lint.md +6 -0
- package/plugins/lisa-wiki-agy/commands/migrate.md +6 -0
- package/plugins/lisa-wiki-agy/commands/onboard-me.md +6 -0
- package/plugins/lisa-wiki-agy/commands/query.md +6 -0
- package/plugins/lisa-wiki-agy/commands/setup/wiki.md +6 -0
- package/plugins/lisa-wiki-agy/commands/setup-automations.md +6 -0
- package/plugins/lisa-wiki-agy/commands/setup.md +6 -0
- package/plugins/lisa-wiki-agy/commands/status.md +6 -0
- package/plugins/lisa-wiki-agy/commands/tear-down-automations.md +6 -0
- package/plugins/lisa-wiki-agy/plugin.json +8 -0
- package/plugins/lisa-wiki-agy/schema/lisa-wiki-config.schema.json +118 -0
- package/plugins/lisa-wiki-agy/schema/wiki-structure.schema.json +51 -0
- package/plugins/lisa-wiki-agy/scripts/_wiki-lib.mjs +185 -0
- package/plugins/lisa-wiki-agy/scripts/diff-guard.mjs +116 -0
- package/plugins/lisa-wiki-agy/scripts/ensure-gitignore.mjs +131 -0
- package/plugins/lisa-wiki-agy/scripts/ingest-git.mjs +189 -0
- package/plugins/lisa-wiki-agy/scripts/ingest-memory.mjs +130 -0
- package/plugins/lisa-wiki-agy/scripts/ingest-roles.mjs +85 -0
- package/plugins/lisa-wiki-agy/scripts/ingest_slack_channel.py +329 -0
- package/plugins/lisa-wiki-agy/scripts/lint-wiki.mjs +324 -0
- package/plugins/lisa-wiki-agy/scripts/mcp-doctor.mjs +72 -0
- package/plugins/lisa-wiki-agy/scripts/render-contract.mjs +107 -0
- package/plugins/lisa-wiki-agy/scripts/rewrite-refs.mjs +144 -0
- package/plugins/lisa-wiki-agy/scripts/slack_oauth_user.py +179 -0
- package/plugins/lisa-wiki-agy/scripts/validate-config.mjs +232 -0
- package/plugins/lisa-wiki-agy/scripts/verify-migration.mjs +199 -0
- package/plugins/lisa-wiki-agy/scripts/wiki-status.mjs +345 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-add-role/SKILL.md +30 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-git/SKILL.md +25 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-web/SKILL.md +23 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-doctor/SKILL.md +47 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-ingest/SKILL.md +72 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-lint/SKILL.md +32 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-migrate/SKILL.md +43 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-query/SKILL.md +30 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-setup/SKILL.md +75 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-setup-automations/SKILL.md +80 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-status/SKILL.md +47 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
- package/plugins/lisa-wiki-agy/skills/lisa-wiki-usage/SKILL.md +50 -0
- package/plugins/lisa-wiki-agy/templates/agents/role-agent.claude.md +16 -0
- package/plugins/lisa-wiki-agy/templates/agents/role-agent.codex.toml +15 -0
- package/plugins/lisa-wiki-agy/templates/index.md +17 -0
- package/plugins/lisa-wiki-agy/templates/llm-wiki-contract.md +72 -0
- package/plugins/lisa-wiki-agy/templates/log.md +8 -0
- package/plugins/lisa-wiki-agy/templates/page-types/architecture.md +18 -0
- package/plugins/lisa-wiki-agy/templates/page-types/concept.md +18 -0
- package/plugins/lisa-wiki-agy/templates/page-types/decision.md +18 -0
- package/plugins/lisa-wiki-agy/templates/page-types/entity.md +19 -0
- package/plugins/lisa-wiki-agy/templates/page-types/open-question.md +18 -0
- package/plugins/lisa-wiki-agy/templates/page-types/playbook.md +18 -0
- package/plugins/lisa-wiki-agy/templates/page-types/project.md +19 -0
- package/plugins/lisa-wiki-agy/templates/page-types/requirement.md +19 -0
- package/plugins/lisa-wiki-agy/templates/page-types/staff.md +26 -0
- package/plugins/lisa-wiki-agy/templates/start-here.md +24 -0
- package/plugins/lisa-wiki-agy/templates/state-readme.md +20 -0
- package/plugins/lisa-wiki-agy/templates/wrapper-gitignore.txt +19 -0
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +8 -0
- package/plugins/lisa-wiki-copilot/ci/lisa-wiki-validate.yml +33 -0
- package/plugins/lisa-wiki-copilot/commands/add-ingest.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/add-role.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/doctor.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/ingest.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/lint.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/migrate.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/onboard-me.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/query.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/setup/wiki.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/setup-automations.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/setup.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/status.md +6 -0
- package/plugins/lisa-wiki-copilot/commands/tear-down-automations.md +6 -0
- package/plugins/lisa-wiki-copilot/schema/lisa-wiki-config.schema.json +118 -0
- package/plugins/lisa-wiki-copilot/schema/wiki-structure.schema.json +51 -0
- package/plugins/lisa-wiki-copilot/scripts/_wiki-lib.mjs +185 -0
- package/plugins/lisa-wiki-copilot/scripts/diff-guard.mjs +116 -0
- package/plugins/lisa-wiki-copilot/scripts/ensure-gitignore.mjs +131 -0
- package/plugins/lisa-wiki-copilot/scripts/ingest-git.mjs +189 -0
- package/plugins/lisa-wiki-copilot/scripts/ingest-memory.mjs +130 -0
- package/plugins/lisa-wiki-copilot/scripts/ingest-roles.mjs +85 -0
- package/plugins/lisa-wiki-copilot/scripts/ingest_slack_channel.py +329 -0
- package/plugins/lisa-wiki-copilot/scripts/lint-wiki.mjs +324 -0
- package/plugins/lisa-wiki-copilot/scripts/mcp-doctor.mjs +72 -0
- package/plugins/lisa-wiki-copilot/scripts/render-contract.mjs +107 -0
- package/plugins/lisa-wiki-copilot/scripts/rewrite-refs.mjs +144 -0
- package/plugins/lisa-wiki-copilot/scripts/slack_oauth_user.py +179 -0
- package/plugins/lisa-wiki-copilot/scripts/validate-config.mjs +232 -0
- package/plugins/lisa-wiki-copilot/scripts/verify-migration.mjs +199 -0
- package/plugins/lisa-wiki-copilot/scripts/wiki-status.mjs +345 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-add-role/SKILL.md +30 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-git/SKILL.md +25 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-web/SKILL.md +23 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-doctor/SKILL.md +47 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-ingest/SKILL.md +72 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-lint/SKILL.md +32 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-migrate/SKILL.md +43 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-query/SKILL.md +30 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-setup/SKILL.md +75 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-setup-automations/SKILL.md +80 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-status/SKILL.md +47 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
- package/plugins/lisa-wiki-copilot/skills/lisa-wiki-usage/SKILL.md +50 -0
- package/plugins/lisa-wiki-copilot/templates/agents/role-agent.claude.md +16 -0
- package/plugins/lisa-wiki-copilot/templates/agents/role-agent.codex.toml +15 -0
- package/plugins/lisa-wiki-copilot/templates/index.md +17 -0
- package/plugins/lisa-wiki-copilot/templates/llm-wiki-contract.md +72 -0
- package/plugins/lisa-wiki-copilot/templates/log.md +8 -0
- package/plugins/lisa-wiki-copilot/templates/page-types/architecture.md +18 -0
- package/plugins/lisa-wiki-copilot/templates/page-types/concept.md +18 -0
- package/plugins/lisa-wiki-copilot/templates/page-types/decision.md +18 -0
- package/plugins/lisa-wiki-copilot/templates/page-types/entity.md +19 -0
- package/plugins/lisa-wiki-copilot/templates/page-types/open-question.md +18 -0
- package/plugins/lisa-wiki-copilot/templates/page-types/playbook.md +18 -0
- package/plugins/lisa-wiki-copilot/templates/page-types/project.md +19 -0
- package/plugins/lisa-wiki-copilot/templates/page-types/requirement.md +19 -0
- package/plugins/lisa-wiki-copilot/templates/page-types/staff.md +26 -0
- package/plugins/lisa-wiki-copilot/templates/start-here.md +24 -0
- package/plugins/lisa-wiki-copilot/templates/state-readme.md +20 -0
- package/plugins/lisa-wiki-copilot/templates/wrapper-gitignore.txt +19 -0
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +8 -0
- package/plugins/lisa-wiki-cursor/ci/lisa-wiki-validate.yml +33 -0
- package/plugins/lisa-wiki-cursor/commands/add-ingest.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/add-role.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/doctor.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/ingest.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/lint.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/migrate.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/onboard-me.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/query.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/setup/wiki.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/setup-automations.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/setup.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/status.md +6 -0
- package/plugins/lisa-wiki-cursor/commands/tear-down-automations.md +6 -0
- package/plugins/lisa-wiki-cursor/schema/lisa-wiki-config.schema.json +118 -0
- package/plugins/lisa-wiki-cursor/schema/wiki-structure.schema.json +51 -0
- package/plugins/lisa-wiki-cursor/scripts/_wiki-lib.mjs +185 -0
- package/plugins/lisa-wiki-cursor/scripts/diff-guard.mjs +116 -0
- package/plugins/lisa-wiki-cursor/scripts/ensure-gitignore.mjs +131 -0
- package/plugins/lisa-wiki-cursor/scripts/ingest-git.mjs +189 -0
- package/plugins/lisa-wiki-cursor/scripts/ingest-memory.mjs +130 -0
- package/plugins/lisa-wiki-cursor/scripts/ingest-roles.mjs +85 -0
- package/plugins/lisa-wiki-cursor/scripts/ingest_slack_channel.py +329 -0
- package/plugins/lisa-wiki-cursor/scripts/lint-wiki.mjs +324 -0
- package/plugins/lisa-wiki-cursor/scripts/mcp-doctor.mjs +72 -0
- package/plugins/lisa-wiki-cursor/scripts/render-contract.mjs +107 -0
- package/plugins/lisa-wiki-cursor/scripts/rewrite-refs.mjs +144 -0
- package/plugins/lisa-wiki-cursor/scripts/slack_oauth_user.py +179 -0
- package/plugins/lisa-wiki-cursor/scripts/validate-config.mjs +232 -0
- package/plugins/lisa-wiki-cursor/scripts/verify-migration.mjs +199 -0
- package/plugins/lisa-wiki-cursor/scripts/wiki-status.mjs +345 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-add-role/SKILL.md +30 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-git/SKILL.md +25 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-web/SKILL.md +23 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-doctor/SKILL.md +47 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-ingest/SKILL.md +72 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-lint/SKILL.md +32 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-migrate/SKILL.md +43 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-query/SKILL.md +30 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-setup/SKILL.md +75 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-setup-automations/SKILL.md +80 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-status/SKILL.md +47 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
- package/plugins/lisa-wiki-cursor/skills/lisa-wiki-usage/SKILL.md +50 -0
- package/plugins/lisa-wiki-cursor/templates/agents/role-agent.claude.md +16 -0
- package/plugins/lisa-wiki-cursor/templates/agents/role-agent.codex.toml +15 -0
- package/plugins/lisa-wiki-cursor/templates/index.md +17 -0
- package/plugins/lisa-wiki-cursor/templates/llm-wiki-contract.md +72 -0
- package/plugins/lisa-wiki-cursor/templates/log.md +8 -0
- package/plugins/lisa-wiki-cursor/templates/page-types/architecture.md +18 -0
- package/plugins/lisa-wiki-cursor/templates/page-types/concept.md +18 -0
- package/plugins/lisa-wiki-cursor/templates/page-types/decision.md +18 -0
- package/plugins/lisa-wiki-cursor/templates/page-types/entity.md +19 -0
- package/plugins/lisa-wiki-cursor/templates/page-types/open-question.md +18 -0
- package/plugins/lisa-wiki-cursor/templates/page-types/playbook.md +18 -0
- package/plugins/lisa-wiki-cursor/templates/page-types/project.md +19 -0
- package/plugins/lisa-wiki-cursor/templates/page-types/requirement.md +19 -0
- package/plugins/lisa-wiki-cursor/templates/page-types/staff.md +26 -0
- package/plugins/lisa-wiki-cursor/templates/start-here.md +24 -0
- package/plugins/lisa-wiki-cursor/templates/state-readme.md +20 -0
- package/plugins/lisa-wiki-cursor/templates/wrapper-gitignore.txt +19 -0
- package/scripts/build-plugins.sh +28 -11
- package/scripts/generate-codex-plugin-artifacts.mjs +28 -48
- package/scripts/generate-copilot-plugin-artifacts.mjs +5 -0
- package/scripts/generate-cursor-plugin-artifacts.mjs +4 -0
- package/scripts/internal-copilot-runtime-probe.json +10 -4
- package/plugins/lisa/.codex-plugin/hooks/block-no-verify.sh +0 -37
- package/plugins/lisa/.codex-plugin/hooks/inject-flow-context.sh +0 -12
- package/plugins/lisa/.codex-plugin/hooks/inject-rules.sh +0 -33
- package/plugins/lisa/.codex-plugin/hooks/install-pkgs.sh +0 -69
- package/plugins/lisa/.codex-plugin/hooks/notify-ntfy.sh +0 -183
- package/plugins/lisa/.codex-plugin/hooks/setup-jira-cli.sh +0 -51
- /package/plugins/{lisa-harper-fabric/.codex-plugin → lisa-harper-fabric-copilot}/hooks/inject-rules.sh +0 -0
- /package/plugins/{lisa-nestjs/.codex-plugin → lisa-nestjs-copilot}/hooks/block-migration-edits.sh +0 -0
- /package/plugins/{lisa-rails/.codex-plugin → lisa-rails-copilot}/hooks/inject-rules.sh +0 -0
- /package/plugins/{lisa-rails/.codex-plugin → lisa-rails-copilot}/hooks/rubocop-on-edit.sh +0 -0
- /package/plugins/{lisa-rails/.codex-plugin → lisa-rails-copilot}/hooks/sg-scan-on-edit.sh +0 -0
- /package/plugins/{lisa-typescript/.codex-plugin → lisa-typescript-copilot}/hooks/block-suppress-directives.sh +0 -0
- /package/plugins/{lisa-typescript/.codex-plugin → lisa-typescript-copilot}/hooks/format-on-edit.sh +0 -0
- /package/plugins/{lisa-typescript/.codex-plugin → lisa-typescript-copilot}/hooks/lint-on-edit.sh +0 -0
- /package/plugins/{lisa-typescript/.codex-plugin → lisa-typescript-copilot}/hooks/sg-scan-on-edit.sh +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# OpenClaw routing shapes (Telegram & Slack)
|
|
2
|
+
|
|
3
|
+
Placeholder-only. Real ids/handles/tokens go only into `~/.openclaw/openclaw.json` (machine-local,
|
|
4
|
+
never committed). Always back up that file before editing, change only the intended keys, and preserve
|
|
5
|
+
all unrelated agents, channels, routes, and tokens.
|
|
6
|
+
|
|
7
|
+
## Identity & session-scoping rules
|
|
8
|
+
|
|
9
|
+
- **Telegram** `chat_id`: the signed supergroup id (usually starts with `-100`), not the short
|
|
10
|
+
positive number. Topic id is the `message_thread_id`. Session boundary = supergroup + topic + root
|
|
11
|
+
human `message_id`; native replies continue that session.
|
|
12
|
+
- **Slack** routes bind by stable channel **id**, not channel name. Session boundary = channel + root
|
|
13
|
+
`thread_ts`; later replies in that thread reuse the same session key.
|
|
14
|
+
|
|
15
|
+
## Telegram — facilitator topic route
|
|
16
|
+
|
|
17
|
+
```json5
|
|
18
|
+
{
|
|
19
|
+
"channels": {
|
|
20
|
+
"telegram": {
|
|
21
|
+
"groups": {
|
|
22
|
+
"<telegram-supergroup-id>": {
|
|
23
|
+
"groupPolicy": "allowlist",
|
|
24
|
+
"requireMention": true,
|
|
25
|
+
"allowFrom": ["<telegram-user-id>"],
|
|
26
|
+
"topics": {
|
|
27
|
+
"<facilitator-topic-id>": {
|
|
28
|
+
"agentId": "<facilitator-agent-id>",
|
|
29
|
+
"requireMention": true
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Slack — facilitator channel route
|
|
40
|
+
|
|
41
|
+
```json5
|
|
42
|
+
{
|
|
43
|
+
"channels": {
|
|
44
|
+
"slack": {
|
|
45
|
+
"replyToModeByChatType": { "channel": "all" },
|
|
46
|
+
"channelRoutes": {
|
|
47
|
+
"<slack-channel-id>": {
|
|
48
|
+
"agentId": "<facilitator-agent-id>",
|
|
49
|
+
"requireMention": true
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Facilitator agent + specialist allow-list
|
|
58
|
+
|
|
59
|
+
```json5
|
|
60
|
+
{
|
|
61
|
+
"agents": {
|
|
62
|
+
"list": [
|
|
63
|
+
{
|
|
64
|
+
"id": "<facilitator-agent-id>",
|
|
65
|
+
"workspace": "<wiki-or-repo-path>",
|
|
66
|
+
"subagents": {
|
|
67
|
+
"allowAgents": ["<specialist-agent-id-1>", "<specialist-agent-id-2>"],
|
|
68
|
+
"requireAgentId": true
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{ "id": "<specialist-agent-id-1>", "workspace": "<wiki-or-repo-path>" },
|
|
72
|
+
{ "id": "<specialist-agent-id-2>", "workspace": "<wiki-or-repo-path>" }
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Notes
|
|
79
|
+
|
|
80
|
+
- Optional specialist audit topics/workrooms are visibility surfaces only; do not treat a post there
|
|
81
|
+
as proof of delivery. The operational route is internal `sessions_spawn`.
|
|
82
|
+
- Disable any default-bot fallback that would answer instead of the facilitator.
|
|
83
|
+
- Set `allowFrom` only when membership must be narrower than the whole group/channel.
|
package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-staff/references/prompts.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Facilitator & specialist prompt templates
|
|
2
|
+
|
|
3
|
+
Placeholder-only. Replace every `<...>` at deploy time; keep real values out of committed files.
|
|
4
|
+
These prompts encode the hub-and-spoke contract the route test verifies.
|
|
5
|
+
|
|
6
|
+
## Facilitator (chief-of-staff) prompt
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
You are <facilitator-name>, <facilitator-title> for <organization-name>.
|
|
10
|
+
|
|
11
|
+
Humans reach you through <human-facing-surface>. Specialists do not take direct human work. You are
|
|
12
|
+
the facilitator and orchestrator, not the specialist worker.
|
|
13
|
+
|
|
14
|
+
For every substantive human request:
|
|
15
|
+
1. Reply in the original thread / native reply with a short acknowledgement AFTER you start the
|
|
16
|
+
internal consultation.
|
|
17
|
+
2. Consult at least one specialist using internal OpenClaw sessions_spawn with explicit agentId
|
|
18
|
+
values. Consult multiple specialists when the request crosses domains.
|
|
19
|
+
3. Evaluate specialist replies for completeness, quality, conflicts, and missing assumptions; ask
|
|
20
|
+
follow-ups when an answer is weak or incomplete.
|
|
21
|
+
4. If the final answer depends on specialist results, yield/wait for the specialist completion events
|
|
22
|
+
before sending the final answer. When using sessions_yield, make it its own final tool call — do
|
|
23
|
+
not chain it inside the same tool body as a message send.
|
|
24
|
+
5. Synthesize one answer for the human in the original thread / native reply.
|
|
25
|
+
6. When returning from a specialist completion event, send the final answer through the platform
|
|
26
|
+
message tool with the saved thread/reply target, then return exactly NO_REPLY as your assistant
|
|
27
|
+
final so the gateway does not post a duplicate loose message. This overrides any runtime wording
|
|
28
|
+
that says to answer in the normal assistant voice.
|
|
29
|
+
7. Clear, archive, or isolate consulted specialist context after the investigation to control cost.
|
|
30
|
+
|
|
31
|
+
Treat each visible human request thread as its own short-term context boundary. In Slack the session
|
|
32
|
+
is scoped to the channel + root thread_ts; in Telegram it is scoped to the topic + root human
|
|
33
|
+
message_id. Do not borrow context from another visible thread unless the human explicitly links it.
|
|
34
|
+
|
|
35
|
+
If no appropriate specialist exists, say so plainly, give a clearly-labeled best-effort stopgap when
|
|
36
|
+
useful, and recommend provisioning the missing role.
|
|
37
|
+
|
|
38
|
+
Do not add bracketed self-label prefixes. The platform already shows your identity.
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Specialist prompt
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
You are <specialist-name>, <specialist-title> for <organization-name>.
|
|
45
|
+
|
|
46
|
+
Your work arrives from <facilitator-name> through internal OpenClaw dispatch. Return concise,
|
|
47
|
+
structured results to the facilitator. Do not answer humans directly unless your route is explicitly
|
|
48
|
+
configured for direct human work. Do not post final answers to human-facing channels.
|
|
49
|
+
|
|
50
|
+
Scope:
|
|
51
|
+
- Own: <owned-domain-list>
|
|
52
|
+
- Do not own: <non-owned-domain-list>
|
|
53
|
+
- Escalate to: <related-specialist-agent-ids>
|
|
54
|
+
|
|
55
|
+
When assigned work:
|
|
56
|
+
1. Answer from your domain expertise.
|
|
57
|
+
2. State assumptions, risks, gaps, and recommended next steps.
|
|
58
|
+
3. Keep the response ready for facilitator review and synthesis.
|
|
59
|
+
|
|
60
|
+
Do not add bracketed self-label prefixes. The platform already shows your identity.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Route acceptance checklist
|
|
64
|
+
|
|
65
|
+
```md
|
|
66
|
+
- [ ] Human post reaches <facilitator-agent-id>.
|
|
67
|
+
- [ ] Facilitator acknowledgement is a thread / native reply to the original human message.
|
|
68
|
+
- [ ] Two simultaneous requests in the same channel/topic use distinct visible threads and distinct
|
|
69
|
+
OpenClaw sessions.
|
|
70
|
+
- [ ] Facilitator starts internal sessions_spawn consultation with >=1 explicit specialist agent id.
|
|
71
|
+
- [ ] Facilitator does not treat the acknowledgement as the final answer when specialist work is
|
|
72
|
+
still pending.
|
|
73
|
+
- [ ] Specialist returns an internal result to the facilitator.
|
|
74
|
+
- [ ] Facilitator evaluates the result and asks a follow-up when needed.
|
|
75
|
+
- [ ] Facilitator final answer is a thread / native reply to the original human message.
|
|
76
|
+
- [ ] Facilitator returns NO_REPLY after any message-tool final send (no duplicate loose message).
|
|
77
|
+
- [ ] Consulted specialist context is cleared, archived, or isolated.
|
|
78
|
+
```
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lisa-openclaw-setup
|
|
3
|
+
description: Set up OpenClaw as the chat-surface runtime for this project's staff roles. Verifies the openclaw CLI, the ~/.openclaw/openclaw.json config, a secret provider, and the required gateway capabilities (sessions_spawn, native-reply session scoping, the NO_REPLY sentinel), then writes a lean `openclaw` section to .lisa.config.json. Prerequisite for lisa-openclaw-connect-staff and lisa-openclaw-connect-repo-topic. Use when a project wants its facilitator/specialist staff reachable from Telegram or Slack.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# lisa-openclaw-setup
|
|
7
|
+
|
|
8
|
+
Verify the OpenClaw runtime prerequisites and record a minimal, placeholder-safe pointer in
|
|
9
|
+
`.lisa.config.json` so the connect skills have what they need. **This skill writes only setup-level
|
|
10
|
+
pointers** — never tokens, channel/topic/group ids, bot handles, or route tables. Those live in
|
|
11
|
+
`~/.openclaw/openclaw.json` (OpenClaw's own machine-local source of truth) and are written by the
|
|
12
|
+
connect skills, never committed.
|
|
13
|
+
|
|
14
|
+
This SKILL.md is self-contained and runs identically under Claude Code and Codex. There is no
|
|
15
|
+
command/argument layer in Codex, so do not rely on one.
|
|
16
|
+
|
|
17
|
+
## What OpenClaw is (so the checks make sense)
|
|
18
|
+
|
|
19
|
+
OpenClaw is a locally-hosted multi-agent gateway. A **CLI** (`openclaw`, usually at
|
|
20
|
+
`~/.local/bin/openclaw`) manages a **config file** (`~/.openclaw/openclaw.json`) that defines agents,
|
|
21
|
+
chat-channel bindings (Telegram groups/topics, Slack channels), and routing. A long-running
|
|
22
|
+
**gateway** process delivers chat messages to agents and back. Agents reach other agents internally
|
|
23
|
+
via `sessions_spawn` rather than by messaging each other on the chat platform.
|
|
24
|
+
|
|
25
|
+
## Required inputs
|
|
26
|
+
|
|
27
|
+
Gather (ask only for what is missing):
|
|
28
|
+
|
|
29
|
+
- **platform** the project will default to: `telegram` or `slack`
|
|
30
|
+
- **facilitator agent id** — the single human-facing "chief of staff" agent id (a staff role id; see
|
|
31
|
+
the soft dependency below)
|
|
32
|
+
- **secret provider** — how OpenClaw stores bot/app tokens (e.g. the OS keychain, a named secret
|
|
33
|
+
manager, or `0600` local token files). Capture only its *type* and a *reference*, never a value.
|
|
34
|
+
|
|
35
|
+
## Soft dependency on staff roles
|
|
36
|
+
|
|
37
|
+
The facilitator and specialists are **staff roles**. A companion plugin (`lisa-wiki`) scaffolds a
|
|
38
|
+
staff role's "brain" (a `wiki/staff/<id>.md` doc page plus a dual-runtime subagent at
|
|
39
|
+
`.claude/agents/<id>.md` and `.codex/agents/<id>.toml`) from a `config.staff[]` entry. This plugin
|
|
40
|
+
wires that role to a chat surface — the "body".
|
|
41
|
+
|
|
42
|
+
If `config.staff[]` (in `.lisa.config.json`) has no entries yet, tell the user to define their staff
|
|
43
|
+
first:
|
|
44
|
+
|
|
45
|
+
- In Claude Code: run `/lisa:add-role <Role>` (e.g. `/lisa:add-role Chief of Staff`).
|
|
46
|
+
- In Codex: invoke `$lisa-wiki:lisa-wiki-add-role` with the role.
|
|
47
|
+
|
|
48
|
+
Only auto-delegate if that skill is actually available in the active runtime; otherwise just print the
|
|
49
|
+
exact next step and stop.
|
|
50
|
+
|
|
51
|
+
## Workflow
|
|
52
|
+
|
|
53
|
+
### 1. Locate the OpenClaw CLI
|
|
54
|
+
|
|
55
|
+
Resolve a usable `openclaw` binary, in order:
|
|
56
|
+
|
|
57
|
+
1. `~/.local/bin/openclaw`
|
|
58
|
+
2. `openclaw` on `PATH`
|
|
59
|
+
3. a path the user supplies
|
|
60
|
+
|
|
61
|
+
If none is found, stop and tell the user to install OpenClaw and re-run. Record the resolved path for
|
|
62
|
+
the config's `configPath`/CLI discovery only if it is non-standard.
|
|
63
|
+
|
|
64
|
+
### 2. Verify the config file
|
|
65
|
+
|
|
66
|
+
Confirm `~/.openclaw/openclaw.json` exists and is valid JSON. Do **not** print token values found
|
|
67
|
+
inside it. If it is missing, instruct the user to initialize OpenClaw (its own init flow creates the
|
|
68
|
+
file) before continuing.
|
|
69
|
+
|
|
70
|
+
### 3. Verify a secret provider
|
|
71
|
+
|
|
72
|
+
Confirm a token-storage mechanism is configured. Acceptable: the OpenClaw-configured secret provider,
|
|
73
|
+
an OS keychain entry, or `0600`-permissioned local token files outside the repo. Capture the provider
|
|
74
|
+
*type* and a non-secret *reference* only.
|
|
75
|
+
|
|
76
|
+
### 4. Probe required gateway capabilities
|
|
77
|
+
|
|
78
|
+
The connect skills depend on three OpenClaw behaviors. Probe for them and **fail closed** (warn
|
|
79
|
+
loudly, do not silently proceed) if any is missing:
|
|
80
|
+
|
|
81
|
+
- **`sessions_spawn`** — internal agent-to-agent dispatch (how the facilitator consults specialists).
|
|
82
|
+
- **Native-reply session scoping** — a top-level human request seeds a session keyed to its thread
|
|
83
|
+
root (Slack channel + root `thread_ts`; Telegram supergroup + forum topic + root `message_id`), and
|
|
84
|
+
replies in that thread continue the same session, so concurrent threads don't share short-term
|
|
85
|
+
context.
|
|
86
|
+
- **`NO_REPLY` sentinel** — after an agent sends a message with the platform message tool, returning
|
|
87
|
+
exactly `NO_REPLY` as its assistant final prevents the gateway from posting a duplicate loose
|
|
88
|
+
message.
|
|
89
|
+
|
|
90
|
+
Probe via the OpenClaw CLI/version and a non-mutating validate, e.g.:
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
openclaw --version
|
|
94
|
+
openclaw config validate
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
If a capability cannot be confirmed, record it as an unmet prerequisite. The connect skills must
|
|
98
|
+
refuse to create routes that would post duplicates or leak cross-thread context.
|
|
99
|
+
|
|
100
|
+
### 5. Write the lean config section
|
|
101
|
+
|
|
102
|
+
Update **only** the `openclaw` section of `.lisa.config.json`. Parse the existing JSON, preserve all
|
|
103
|
+
other keys and formatting as much as practical, and write structurally (never string-splice). Shape:
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"openclaw": {
|
|
108
|
+
"defaultPlatform": "telegram",
|
|
109
|
+
"facilitatorAgentId": "<facilitator-agent-id>",
|
|
110
|
+
"secretProvider": {
|
|
111
|
+
"type": "<secret-provider-type>",
|
|
112
|
+
"ref": "<secret-provider-ref>"
|
|
113
|
+
},
|
|
114
|
+
"configPath": "~/.openclaw/openclaw.json"
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Rules for this section:
|
|
120
|
+
|
|
121
|
+
- `defaultPlatform`: `"telegram"` or `"slack"`.
|
|
122
|
+
- `facilitatorAgentId`: the default facilitator/chief id only — **not** per-surface routing.
|
|
123
|
+
- `secretProvider`: a pointer only; never token material.
|
|
124
|
+
- `configPath`: optional; default `~/.openclaw/openclaw.json`. Set only for non-standard installs.
|
|
125
|
+
- **Reject** writing tokens, channel ids, topic ids, group ids, Slack thread roots, bot handles, or
|
|
126
|
+
repo paths here. If the user offers them, decline and explain they belong in
|
|
127
|
+
`~/.openclaw/openclaw.json`.
|
|
128
|
+
|
|
129
|
+
### 6. Report
|
|
130
|
+
|
|
131
|
+
Finish with: resolved CLI path, config-file status, secret-provider type/ref, each capability probe
|
|
132
|
+
result (pass / warn / unknown), the `openclaw` section written, and the exact next command/skill
|
|
133
|
+
(`lisa-openclaw-connect-staff` or `lisa-openclaw-connect-repo-topic`).
|
|
134
|
+
|
|
135
|
+
## Related
|
|
136
|
+
|
|
137
|
+
`lisa-openclaw-connect-staff`, `lisa-openclaw-connect-repo-topic`. Staff "brains" come from the
|
|
138
|
+
`lisa-wiki` plugin's `add-role`.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "lisa-openclaw",
|
|
3
|
+
"version": "2.122.0",
|
|
4
|
+
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Cody Swann"
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Bind a Telegram forum topic to an OpenClaw dispatcher+worker pair that runs a coding CLI against a repo (single-repo or folder-scoped), so you can drive code work from chat. Requires /lisa:setup-openclaw first."
|
|
3
|
+
argument-hint: "<admin|developer> <single-repo|folder-scoped> <topic name> <workspace path>"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use the lisa-openclaw-connect-repo-topic skill to provision or update a Telegram repo-coding topic
|
|
7
|
+
(dispatcher + worker pair) and wire it in OpenClaw. $ARGUMENTS
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Connect staff roles to Slack via OpenClaw using a facilitator/specialist hub-and-spoke model — register the app, create/reuse the facilitator channel, wire routes, validate, and run an end-to-end route test. Requires /lisa:setup-openclaw first."
|
|
3
|
+
argument-hint: "<facilitator role + specialists, e.g. Chief of Staff with Legal, Finance, Sales>"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use the lisa-openclaw-connect-staff skill with platform `slack`. Connect the named facilitator and
|
|
7
|
+
specialists to a Slack facilitator channel via OpenClaw. $ARGUMENTS
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Connect staff roles to Telegram via OpenClaw using a facilitator/specialist hub-and-spoke model — register bots, create/reuse the facilitator topic, wire routes, validate, and run an end-to-end route test. Requires /lisa:setup-openclaw first."
|
|
3
|
+
argument-hint: "<facilitator role + specialists, e.g. Chief of Staff with Legal, Finance, Sales>"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use the lisa-openclaw-connect-staff skill with platform `telegram`. Connect the named facilitator and
|
|
7
|
+
specialists to a Telegram facilitator topic via OpenClaw. $ARGUMENTS
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Set up OpenClaw as the chat-surface runtime for this project's staff. Verifies the openclaw CLI, ~/.openclaw/openclaw.json, a secret provider, and required gateway capabilities, then writes a lean `openclaw` section to .lisa.config.json. Run before connect-staff / connect-repo-topic."
|
|
3
|
+
argument-hint: "[telegram|slack]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use the lisa-openclaw-setup skill to verify OpenClaw prerequisites and write the lean `openclaw`
|
|
7
|
+
section to .lisa.config.json. If a platform is given, use it as the defaultPlatform. $ARGUMENTS
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lisa-openclaw-connect-repo-topic
|
|
3
|
+
description: Bind a Telegram forum topic to an OpenClaw dispatcher+worker agent pair that runs a coding CLI against a repo, so you can drive code work from chat. Supports single-repo topics and folder-scoped topics (multiple repos with repo-confirmation). Creates/validates the agent pair, ensures the bot is a group admin, captures real group/topic ids, wires the route in ~/.openclaw/openclaw.json, validates the gateway, and runs a no-change self-test. Requires lisa-openclaw-setup first.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# lisa-openclaw-connect-repo-topic
|
|
7
|
+
|
|
8
|
+
Turn a Telegram forum topic into a repeatable OpenClaw entrypoint for code work. A **dispatcher**
|
|
9
|
+
agent receives the request and delegates; a **worker** agent runs the local coding CLI in a safe
|
|
10
|
+
target directory and relays the result.
|
|
11
|
+
|
|
12
|
+
This SKILL.md is complete and runnable under both Claude Code and Codex (no command/`$ARGUMENTS`
|
|
13
|
+
layer in Codex). Keep real ids/handles/paths out of committed files — they go only in
|
|
14
|
+
`~/.openclaw/openclaw.json`. For exact config shapes read
|
|
15
|
+
[references/repo-topic-config.md](references/repo-topic-config.md).
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
- `lisa-openclaw-setup` has run and its capability probes passed.
|
|
20
|
+
- A Telegram supergroup with forum topics, and a bot that is (or can be promoted to) a **group
|
|
21
|
+
admin** — bot presence alone is not enough for topic routing.
|
|
22
|
+
|
|
23
|
+
## Boundaries (apply every time)
|
|
24
|
+
|
|
25
|
+
- groups = the human trust boundary
|
|
26
|
+
- topics = the project-routing boundary
|
|
27
|
+
- native-reply roots = the short-term session boundary inside a topic
|
|
28
|
+
- agents = the capability boundary
|
|
29
|
+
- Do not mix admin-only repos with broader-collaboration repos in one group. If two repos need
|
|
30
|
+
different member lists, use separate groups, not topic-only separation.
|
|
31
|
+
|
|
32
|
+
## Scope modes (pick exactly one per topic)
|
|
33
|
+
|
|
34
|
+
- **`single-repo`** — the topic is pinned to one repo directory; the dispatcher never asks which repo.
|
|
35
|
+
- **`folder-scoped`** — the topic is pinned to a parent folder containing multiple repos; the
|
|
36
|
+
dispatcher must confirm the inferred repo(s) unless the user named them explicitly.
|
|
37
|
+
|
|
38
|
+
Do not mix both behaviors in one topic.
|
|
39
|
+
|
|
40
|
+
## Required inputs
|
|
41
|
+
|
|
42
|
+
- trust boundary: `admin` or `developer`
|
|
43
|
+
- scope mode: `single-repo` or `folder-scoped`
|
|
44
|
+
- access surface: Telegram group + topic (by name; ids captured during the run)
|
|
45
|
+
- the bot handle to bind
|
|
46
|
+
- workspace root on disk (repo dir for single-repo; parent folder for folder-scoped)
|
|
47
|
+
- allowed Telegram user ids
|
|
48
|
+
- completion policy:
|
|
49
|
+
- `admin` topics may request change + docs + commit + PR + merge
|
|
50
|
+
- `developer` topics default to change + docs + commit + PR only
|
|
51
|
+
- for `folder-scoped`: a repo catalog (label, absolute path, a few matching keyword hints)
|
|
52
|
+
|
|
53
|
+
## Workflow
|
|
54
|
+
|
|
55
|
+
### 1. Resolve the contract
|
|
56
|
+
|
|
57
|
+
Confirm the trust boundary, scope mode, workspace root, bot handle, and (for folder-scoped) the repo
|
|
58
|
+
catalog. If a needed agent doesn't exist yet, create it in step 3.
|
|
59
|
+
|
|
60
|
+
### 2. Provision / reuse the Telegram surface
|
|
61
|
+
|
|
62
|
+
Reuse the trust-matched group and the exact topic if they already exist; otherwise create them (enable
|
|
63
|
+
forum/topics mode first). Ensure the bot is in the group and **promoted to admin**. Telegram Bot API
|
|
64
|
+
cannot list groups by name — discover ids from a logged-in Telegram client, an existing route in
|
|
65
|
+
`~/.openclaw/openclaw.json`, or a received Bot API update. If browser/UI automation blocks on a human
|
|
66
|
+
confirmation step, give the user only the blocked step, wait, then resume.
|
|
67
|
+
|
|
68
|
+
### 3. Implement the dispatcher + worker pair
|
|
69
|
+
|
|
70
|
+
Create or update two agents (exact tool-deny shapes in
|
|
71
|
+
[references/repo-topic-config.md](references/repo-topic-config.md)):
|
|
72
|
+
|
|
73
|
+
- **`<topic-slug>-dispatch`** — skill-aware entrypoint; tools restricted to delegation/session tools
|
|
74
|
+
(+ optional `read`); denies file writes, shell/exec, browser, gateway, automation; may delegate
|
|
75
|
+
only to `<topic-slug>-codex`.
|
|
76
|
+
- **`<topic-slug>-codex`** — restricted worker; keeps `read` + `exec`; denies session spawning,
|
|
77
|
+
browser, gateway, and direct file-write tools; runs the local coding CLI for the actual work.
|
|
78
|
+
|
|
79
|
+
### 4. Repo-selection behavior
|
|
80
|
+
|
|
81
|
+
- `single-repo`: treat the repo as decided; pass the fixed repo path to the worker; never ask.
|
|
82
|
+
- `folder-scoped`: infer candidates from the catalog. If the user named repo(s) explicitly, skip
|
|
83
|
+
confirmation; otherwise ask before spawning:
|
|
84
|
+
- one likely repo: `This looks like <repo>. Is that correct?`
|
|
85
|
+
- multiple: `This may belong to <repo-1> or <repo-2>. Is that correct, or which repo(s)?`
|
|
86
|
+
On confirmation of multiple repos, spawn one worker run per repo (or ask the user to split a
|
|
87
|
+
too-coupled change). Never skip confirmation in folder-scoped mode unless selection was explicit.
|
|
88
|
+
|
|
89
|
+
### 5. Worker safety contract
|
|
90
|
+
|
|
91
|
+
Every worker task receives an explicit repo path and:
|
|
92
|
+
|
|
93
|
+
1. inspects `git status --short --branch` in the selected repo
|
|
94
|
+
2. if the primary checkout is dirty or already on a feature branch, creates a temporary worktree from
|
|
95
|
+
`main` under `/tmp`
|
|
96
|
+
3. trusts local tool config in a fresh worktree if required (e.g. `mise trust <target_dir>`)
|
|
97
|
+
4. runs the coding CLI in the foreground in the target directory
|
|
98
|
+
5. cleans up the temporary worktree after success when safe
|
|
99
|
+
|
|
100
|
+
The worker prepares the safe target and launches the CLI; it does not edit files directly.
|
|
101
|
+
|
|
102
|
+
### 6. Bind the topic
|
|
103
|
+
|
|
104
|
+
Route the topic to the dispatcher: set
|
|
105
|
+
`channels.telegram.groups.<group-id>.topics.<topic-id>.agentId = <topic-slug>-dispatch`, keep
|
|
106
|
+
`requireMention = true` and allowlist policy, and add `allowFrom` only when membership must be
|
|
107
|
+
narrower than the group. The topic `systemPrompt` must state the scope mode, treat each native-reply
|
|
108
|
+
root as an independent request context, confirm repo selection only in folder-scoped mode, spawn the
|
|
109
|
+
worker with an explicit repo path, and return the worker result to the topic. Back up
|
|
110
|
+
`~/.openclaw/openclaw.json` before editing and preserve unrelated routes.
|
|
111
|
+
|
|
112
|
+
### 7. Validate + self-test
|
|
113
|
+
|
|
114
|
+
```sh
|
|
115
|
+
openclaw config validate
|
|
116
|
+
openclaw gateway restart
|
|
117
|
+
openclaw gateway status
|
|
118
|
+
openclaw channels status --probe
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Then from the target topic: mention the bot and ask for an exact-token reply with **no** file
|
|
122
|
+
changes, commits, PRs, or merges, e.g. `<bot-handle> reply with exactly TELEGRAM-ROUTE-OK`. Confirm
|
|
123
|
+
the visible reply, that the dispatcher spawned the worker, and that the worker ran in the intended
|
|
124
|
+
repo. For folder-scoped topics, also send a request that implies but doesn't name a repo and confirm
|
|
125
|
+
the dispatcher asks for confirmation before proceeding. Do **not** treat `openclaw agent --agent
|
|
126
|
+
<id> ...` as proof a topic route works — use the visible topic reply.
|
|
127
|
+
|
|
128
|
+
## Output standard
|
|
129
|
+
|
|
130
|
+
Finish with: group id + topic id used; scope mode; workspace root and repo path or catalog;
|
|
131
|
+
dispatcher + worker agent ids; whether the bot is confirmed group admin; validation results; whether
|
|
132
|
+
the self-test passed; and any remaining manual follow-up or trust caveat.
|
|
133
|
+
|
|
134
|
+
## Related
|
|
135
|
+
|
|
136
|
+
`lisa-openclaw-setup` (run first), `lisa-openclaw-connect-staff` (facilitator/specialist staff on
|
|
137
|
+
Telegram or Slack).
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Repo-coding topic config shapes
|
|
2
|
+
|
|
3
|
+
Placeholder-only. Real ids/paths/handles go only into `~/.openclaw/openclaw.json` (machine-local,
|
|
4
|
+
never committed). Back up that file before editing; change only the intended keys.
|
|
5
|
+
|
|
6
|
+
## Trust model
|
|
7
|
+
|
|
8
|
+
- `admin` group: highly trusted people; machine-config/infra repos allowed; topics may request merge
|
|
9
|
+
after PR.
|
|
10
|
+
- `developer` group: broader collaborators; topics stop at change + docs + commit + PR unless
|
|
11
|
+
explicitly raised.
|
|
12
|
+
|
|
13
|
+
If two repos need different member lists, use different groups even if both are `developer`.
|
|
14
|
+
|
|
15
|
+
## Folder-scoped repo catalog
|
|
16
|
+
|
|
17
|
+
```yaml
|
|
18
|
+
repos:
|
|
19
|
+
- name: repo-1
|
|
20
|
+
path: /absolute/path/to/repo-1
|
|
21
|
+
hints: [billing, invoices]
|
|
22
|
+
- name: repo-2
|
|
23
|
+
path: /absolute/path/to/repo-2
|
|
24
|
+
hints: [login, mobile-app]
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Naming
|
|
28
|
+
|
|
29
|
+
- topic slug: derived from the topic purpose or workspace name
|
|
30
|
+
- dispatcher agent id: `<topic-slug>-dispatch`
|
|
31
|
+
- worker agent id: `<topic-slug>-codex`
|
|
32
|
+
|
|
33
|
+
## Dispatcher agent
|
|
34
|
+
|
|
35
|
+
```json5
|
|
36
|
+
{
|
|
37
|
+
"id": "<topic-slug>-dispatch",
|
|
38
|
+
"workspace": "/absolute/path/to/repo-or-parent",
|
|
39
|
+
"skills": ["acp-router"],
|
|
40
|
+
"subagents": { "allowAgents": ["<topic-slug>-codex"] },
|
|
41
|
+
"tools": {
|
|
42
|
+
"profile": "coding",
|
|
43
|
+
"deny": [
|
|
44
|
+
"group:ui", "group:automation", "group:nodes",
|
|
45
|
+
"bash", "exec", "process", "browser", "canvas", "cron",
|
|
46
|
+
"gateway", "write", "edit", "apply_patch"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"elevated": { "enabled": false }
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Worker agent
|
|
54
|
+
|
|
55
|
+
```json5
|
|
56
|
+
{
|
|
57
|
+
"id": "<topic-slug>-codex",
|
|
58
|
+
"workspace": "/absolute/path/to/repo-or-parent",
|
|
59
|
+
"tools": {
|
|
60
|
+
"profile": "coding",
|
|
61
|
+
"deny": [
|
|
62
|
+
"group:ui", "group:automation", "group:nodes", "group:sessions",
|
|
63
|
+
"subagents", "process", "browser", "canvas", "cron",
|
|
64
|
+
"gateway", "write", "edit", "apply_patch"
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"elevated": { "enabled": false }
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Topic route
|
|
72
|
+
|
|
73
|
+
```json5
|
|
74
|
+
{
|
|
75
|
+
"channels": {
|
|
76
|
+
"telegram": {
|
|
77
|
+
"groups": {
|
|
78
|
+
"<group-id>": {
|
|
79
|
+
"groupPolicy": "allowlist",
|
|
80
|
+
"requireMention": true,
|
|
81
|
+
"allowFrom": ["<telegram-user-id>"],
|
|
82
|
+
"topics": {
|
|
83
|
+
"<topic-id>": {
|
|
84
|
+
"agentId": "<topic-slug>-dispatch",
|
|
85
|
+
"requireMention": true,
|
|
86
|
+
"systemPrompt": "Use the topic's configured scope mode. For single-repo, pass the fixed repo path to <topic-slug>-codex. For folder-scoped, confirm the inferred repo or repo set unless the user already named it explicitly, then pass the explicit repo path(s) to <topic-slug>-codex. Treat each native reply root as an independent request context."
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Worker launcher form
|
|
97
|
+
|
|
98
|
+
```sh
|
|
99
|
+
PATH="$HOME/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin" \
|
|
100
|
+
"$HOME/bin/<coding-cli>" exec -C <target_dir> "<prompt>"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Id rules
|
|
104
|
+
|
|
105
|
+
- Telegram Bot API `chat_id` for a supergroup is the full signed id (usually starts `-100`); the short
|
|
106
|
+
positive number is not a valid substitute.
|
|
107
|
+
- Topic id is the Telegram `message_thread_id`.
|
|
108
|
+
- Discover ids from a logged-in Telegram client, an existing route in `~/.openclaw/openclaw.json`, or a
|
|
109
|
+
received Bot API update — the Bot API cannot list groups by name.
|