blockmine 1.21.0 → 1.23.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/agents/README.md +469 -0
- package/.claude/agents/auth-route-debugger.md +118 -0
- package/.claude/agents/auth-route-tester.md +93 -0
- package/.claude/agents/auto-error-resolver.md +97 -0
- package/.claude/agents/build-optimizer.md +236 -0
- package/.claude/agents/code-architecture-reviewer.md +83 -0
- package/.claude/agents/code-refactor-master.md +94 -0
- package/.claude/agents/cost-optimizer.md +134 -0
- package/.claude/agents/deployment-orchestrator.md +113 -0
- package/.claude/agents/documentation-architect.md +82 -0
- package/.claude/agents/frontend-error-fixer.md +77 -0
- package/.claude/agents/iac-code-generator.md +71 -0
- package/.claude/agents/incident-responder.md +346 -0
- package/.claude/agents/infrastructure-architect.md +31 -0
- package/.claude/agents/kubernetes-specialist.md +56 -0
- package/.claude/agents/migration-planner.md +181 -0
- package/.claude/agents/network-architect.md +196 -0
- package/.claude/agents/plan-reviewer.md +52 -0
- package/.claude/agents/refactor-planner.md +63 -0
- package/.claude/agents/security-scanner.md +102 -0
- package/.claude/agents/web-research-specialist.md +78 -0
- package/.claude/commands/cost-analysis.md +315 -0
- package/.claude/commands/dev-docs-update.md +55 -0
- package/.claude/commands/dev-docs.md +51 -0
- package/.claude/commands/incident-debug.md +247 -0
- package/.claude/commands/infra-plan.md +81 -0
- package/.claude/commands/migration-plan.md +478 -0
- package/.claude/commands/route-research-for-testing.md +37 -0
- package/.claude/commands/security-review.md +66 -0
- package/.claude/hooks/CONFIG.md +448 -0
- package/.claude/hooks/README.md +163 -0
- package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
- package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
- package/.claude/hooks/add-skill-activation-banners.ts +132 -0
- package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
- package/.claude/hooks/error-handling-reminder.sh +12 -0
- package/.claude/hooks/error-handling-reminder.ts +222 -0
- package/.claude/hooks/k8s-manifest-validator.sh +56 -0
- package/.claude/hooks/package-lock.json +556 -0
- package/.claude/hooks/package.json +16 -0
- package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
- package/.claude/hooks/post-tool-use-tracker.sh +183 -0
- package/.claude/hooks/security-policy-check.sh +247 -0
- package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
- package/.claude/hooks/skill-activation-prompt.sh +10 -0
- package/.claude/hooks/skill-activation-prompt.ts +141 -0
- package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
- package/.claude/hooks/terraform-validator.sh +53 -0
- package/.claude/hooks/test-input.json +7 -0
- package/.claude/hooks/test-skill-activation.ts +427 -0
- package/.claude/hooks/trigger-build-resolver.sh +79 -0
- package/.claude/hooks/tsc-check.sh +173 -0
- package/.claude/hooks/tsconfig.json +19 -0
- package/.claude/settings.json +59 -0
- package/.claude/settings.local.json +36 -14
- package/.claude/skills/README.md +507 -0
- package/.claude/skills/api-engineering/SKILL.md +63 -0
- package/.claude/skills/api-engineering/resources/api-versioning.md +88 -0
- package/.claude/skills/api-engineering/resources/graphql-patterns.md +106 -0
- package/.claude/skills/api-engineering/resources/rate-limiting.md +118 -0
- package/.claude/skills/api-engineering/resources/rest-api-design.md +105 -0
- package/.claude/skills/backend-dev-guidelines/SKILL.md +306 -0
- package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
- package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
- package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
- package/.claude/skills/backend-dev-guidelines/resources/configuration.md +275 -0
- package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
- package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
- package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
- package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
- package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
- package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
- package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
- package/.claude/skills/budget-and-cost-management/SKILL.md +850 -0
- package/.claude/skills/build-engineering/SKILL.md +431 -0
- package/.claude/skills/build-engineering/resources/artifact-repositories.md +72 -0
- package/.claude/skills/build-engineering/resources/build-caching.md +96 -0
- package/.claude/skills/build-engineering/resources/build-pipelines.md +105 -0
- package/.claude/skills/build-engineering/resources/build-security.md +95 -0
- package/.claude/skills/build-engineering/resources/build-systems.md +389 -0
- package/.claude/skills/build-engineering/resources/compilation-optimization.md +201 -0
- package/.claude/skills/build-engineering/resources/dependency-management.md +73 -0
- package/.claude/skills/build-engineering/resources/monorepo-builds.md +110 -0
- package/.claude/skills/build-engineering/resources/performance-optimization.md +113 -0
- package/.claude/skills/build-engineering/resources/reproducible-builds.md +82 -0
- package/.claude/skills/cloud-engineering/SKILL.md +675 -0
- package/.claude/skills/cloud-engineering/resources/aws-patterns.md +742 -0
- package/.claude/skills/cloud-engineering/resources/azure-patterns.md +714 -0
- package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +987 -0
- package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +757 -0
- package/.claude/skills/cloud-engineering/resources/cloud-networking.md +1058 -0
- package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +1530 -0
- package/.claude/skills/cloud-engineering/resources/cloud-security.md +990 -0
- package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +758 -0
- package/.claude/skills/cloud-engineering/resources/migration-strategies.md +820 -0
- package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +670 -0
- package/.claude/skills/cloud-engineering/resources/oci-patterns.md +1198 -0
- package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +795 -0
- package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +966 -0
- package/.claude/skills/cybersecurity/SKILL.md +409 -0
- package/.claude/skills/cybersecurity/resources/security-architecture.md +266 -0
- package/.claude/skills/database-engineering/SKILL.md +61 -0
- package/.claude/skills/database-engineering/resources/backup-and-recovery.md +72 -0
- package/.claude/skills/database-engineering/resources/database-replication.md +63 -0
- package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +70 -0
- package/.claude/skills/database-engineering/resources/query-optimization.md +68 -0
- package/.claude/skills/devsecops/SKILL.md +374 -0
- package/.claude/skills/devsecops/resources/ci-cd-security.md +204 -0
- package/.claude/skills/devsecops/resources/compliance-automation.md +530 -0
- package/.claude/skills/devsecops/resources/compliance-frameworks.md +2322 -0
- package/.claude/skills/devsecops/resources/container-security.md +915 -0
- package/.claude/skills/devsecops/resources/cspm-integration.md +1440 -0
- package/.claude/skills/devsecops/resources/policy-enforcement.md +619 -0
- package/.claude/skills/devsecops/resources/secrets-management.md +755 -0
- package/.claude/skills/devsecops/resources/security-monitoring.md +146 -0
- package/.claude/skills/devsecops/resources/security-scanning.md +887 -0
- package/.claude/skills/devsecops/resources/security-testing.md +203 -0
- package/.claude/skills/devsecops/resources/supply-chain-security.md +518 -0
- package/.claude/skills/devsecops/resources/vulnerability-management.md +481 -0
- package/.claude/skills/devsecops/resources/zero-trust-architecture.md +177 -0
- package/.claude/skills/documentation-as-code/SKILL.md +323 -0
- package/.claude/skills/documentation-as-code/resources/api-documentation.md +90 -0
- package/.claude/skills/documentation-as-code/resources/changelog-management.md +79 -0
- package/.claude/skills/documentation-as-code/resources/diagram-generation.md +44 -0
- package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +99 -0
- package/.claude/skills/documentation-as-code/resources/documentation-automation.md +68 -0
- package/.claude/skills/documentation-as-code/resources/documentation-sites.md +79 -0
- package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +162 -0
- package/.claude/skills/documentation-as-code/resources/openapi-specification.md +77 -0
- package/.claude/skills/documentation-as-code/resources/readme-engineering.md +60 -0
- package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +202 -0
- package/.claude/skills/engineering-management/SKILL.md +356 -0
- package/.claude/skills/engineering-management/resources/career-ladders.md +609 -0
- package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +555 -0
- package/.claude/skills/engineering-management/resources/one-on-one-guides.md +609 -0
- package/.claude/skills/engineering-management/resources/resource-planning.md +557 -0
- package/.claude/skills/engineering-management/resources/team-organization-patterns.md +491 -0
- package/.claude/skills/engineering-management/resources/technical-interviews.md +474 -0
- package/.claude/skills/engineering-operations-management/SKILL.md +817 -0
- package/.claude/skills/error-tracking/SKILL.md +379 -0
- package/.claude/skills/frontend-dev-guidelines/SKILL.md +403 -0
- package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
- package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
- package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
- package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
- package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
- package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
- package/.claude/skills/frontend-dev-guidelines/resources/performance.md +406 -0
- package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
- package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
- package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
- package/.claude/skills/general-it-engineering/SKILL.md +393 -0
- package/.claude/skills/general-it-engineering/resources/asset-management.md +712 -0
- package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +817 -0
- package/.claude/skills/general-it-engineering/resources/business-continuity.md +786 -0
- package/.claude/skills/general-it-engineering/resources/change-management.md +715 -0
- package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +729 -0
- package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +738 -0
- package/.claude/skills/general-it-engineering/resources/incident-service-management.md +834 -0
- package/.claude/skills/general-it-engineering/resources/it-governance.md +753 -0
- package/.claude/skills/general-it-engineering/resources/itil-framework.md +503 -0
- package/.claude/skills/general-it-engineering/resources/service-management.md +669 -0
- package/.claude/skills/infrastructure-architecture/SKILL.md +328 -0
- package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +505 -0
- package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +528 -0
- package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +453 -0
- package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +773 -0
- package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +499 -0
- package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +501 -0
- package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +535 -0
- package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +512 -0
- package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +608 -0
- package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +562 -0
- package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +538 -0
- package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +489 -0
- package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +1000 -0
- package/.claude/skills/infrastructure-strategy/SKILL.md +924 -0
- package/.claude/skills/network-engineering/SKILL.md +385 -0
- package/.claude/skills/network-engineering/resources/dns-management.md +738 -0
- package/.claude/skills/network-engineering/resources/load-balancing.md +820 -0
- package/.claude/skills/network-engineering/resources/network-architecture.md +546 -0
- package/.claude/skills/network-engineering/resources/network-security.md +921 -0
- package/.claude/skills/network-engineering/resources/network-troubleshooting.md +749 -0
- package/.claude/skills/network-engineering/resources/routing-switching.md +373 -0
- package/.claude/skills/network-engineering/resources/sdn-networking.md +695 -0
- package/.claude/skills/network-engineering/resources/service-mesh-networking.md +777 -0
- package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +444 -0
- package/.claude/skills/network-engineering/resources/vpn-connectivity.md +672 -0
- package/.claude/skills/observability-engineering/SKILL.md +101 -0
- package/.claude/skills/observability-engineering/resources/apm-tools.md +97 -0
- package/.claude/skills/observability-engineering/resources/correlation-strategies.md +87 -0
- package/.claude/skills/observability-engineering/resources/distributed-tracing.md +98 -0
- package/.claude/skills/observability-engineering/resources/logs-aggregation.md +118 -0
- package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +141 -0
- package/.claude/skills/observability-engineering/resources/opentelemetry.md +110 -0
- package/.claude/skills/platform-engineering/SKILL.md +555 -0
- package/.claude/skills/platform-engineering/resources/architecture-overview.md +600 -0
- package/.claude/skills/platform-engineering/resources/container-orchestration.md +916 -0
- package/.claude/skills/platform-engineering/resources/cost-optimization.md +634 -0
- package/.claude/skills/platform-engineering/resources/developer-platforms.md +670 -0
- package/.claude/skills/platform-engineering/resources/gitops-automation.md +650 -0
- package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +778 -0
- package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +708 -0
- package/.claude/skills/platform-engineering/resources/multi-tenancy.md +602 -0
- package/.claude/skills/platform-engineering/resources/platform-security.md +711 -0
- package/.claude/skills/platform-engineering/resources/resource-management.md +592 -0
- package/.claude/skills/platform-engineering/resources/service-mesh.md +628 -0
- package/.claude/skills/release-engineering/SKILL.md +393 -0
- package/.claude/skills/release-engineering/resources/artifact-management.md +108 -0
- package/.claude/skills/release-engineering/resources/build-optimization.md +84 -0
- package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +411 -0
- package/.claude/skills/release-engineering/resources/deployment-strategies.md +197 -0
- package/.claude/skills/release-engineering/resources/pipeline-security.md +62 -0
- package/.claude/skills/release-engineering/resources/progressive-delivery.md +83 -0
- package/.claude/skills/release-engineering/resources/release-automation.md +68 -0
- package/.claude/skills/release-engineering/resources/release-orchestration.md +77 -0
- package/.claude/skills/release-engineering/resources/rollback-strategies.md +66 -0
- package/.claude/skills/release-engineering/resources/versioning-strategies.md +59 -0
- package/.claude/skills/route-tester/SKILL.md +392 -0
- package/.claude/skills/skill-developer/ADVANCED.md +197 -0
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
- package/.claude/skills/skill-developer/SKILL.md +430 -0
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
- package/.claude/skills/skill-rules.json +2940 -0
- package/.claude/skills/sre/SKILL.md +464 -0
- package/.claude/skills/sre/resources/alerting-best-practices.md +282 -0
- package/.claude/skills/sre/resources/capacity-planning.md +226 -0
- package/.claude/skills/sre/resources/chaos-engineering.md +193 -0
- package/.claude/skills/sre/resources/disaster-recovery.md +232 -0
- package/.claude/skills/sre/resources/incident-management.md +436 -0
- package/.claude/skills/sre/resources/observability-stack.md +240 -0
- package/.claude/skills/sre/resources/on-call-runbooks.md +167 -0
- package/.claude/skills/sre/resources/performance-optimization.md +108 -0
- package/.claude/skills/sre/resources/reliability-patterns.md +183 -0
- package/.claude/skills/sre/resources/slo-sli-sla.md +464 -0
- package/.claude/skills/sre/resources/toil-reduction.md +145 -0
- package/.claude/skills/systems-engineering/SKILL.md +648 -0
- package/.claude/skills/systems-engineering/resources/automation-patterns.md +771 -0
- package/.claude/skills/systems-engineering/resources/configuration-management.md +998 -0
- package/.claude/skills/systems-engineering/resources/linux-administration.md +672 -0
- package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +982 -0
- package/.claude/skills/systems-engineering/resources/performance-tuning.md +871 -0
- package/.claude/skills/systems-engineering/resources/powershell-scripting.md +482 -0
- package/.claude/skills/systems-engineering/resources/security-hardening.md +739 -0
- package/.claude/skills/systems-engineering/resources/shell-scripting.md +915 -0
- package/.claude/skills/systems-engineering/resources/storage-management.md +628 -0
- package/.claude/skills/systems-engineering/resources/system-monitoring.md +787 -0
- package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +753 -0
- package/.claude/skills/systems-engineering/resources/windows-administration.md +738 -0
- package/.claude/skills/technical-leadership/SKILL.md +728 -0
- package/CHANGELOG.md +102 -42
- package/CLAUDE.md +284 -0
- package/README.md +315 -71
- package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
- package/backend/jest.config.js +59 -0
- package/backend/package-lock.json +6801 -0
- package/backend/package.json +24 -4
- package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
- package/backend/prisma/migrations/20251116111851_add_execution_trace/migration.sql +22 -0
- package/backend/prisma/migrations/20251120154914_add_panel_api_keys/migration.sql +21 -0
- package/backend/prisma/migrations/20251121110241_add_proxy_table/migration.sql +45 -0
- package/backend/prisma/migrations/migration_lock.toml +2 -2
- package/backend/prisma/schema.prisma +103 -1
- package/backend/src/__tests__/core/DependencyService.test.js +336 -0
- package/backend/src/__tests__/core/UserService.test.js +875 -0
- package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
- package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
- package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
- package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
- package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
- package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
- package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
- package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
- package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
- package/backend/src/__tests__/secretsFilter.test.js +425 -0
- package/backend/src/__tests__/services/BotLifecycleService.test.js +416 -0
- package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
- package/backend/src/__tests__/services/CacheManager.test.js +125 -0
- package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
- package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
- package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
- package/backend/src/__tests__/setup.js +25 -0
- package/backend/src/ai/plugin-assistant-system-prompt.md +788 -0
- package/backend/src/api/middleware/auth.js +27 -0
- package/backend/src/api/middleware/botAccess.js +7 -3
- package/backend/src/api/middleware/panelApiAuth.js +135 -0
- package/backend/src/api/routes/aiAssistant.js +995 -0
- package/backend/src/api/routes/apiKeys.js +181 -0
- package/backend/src/api/routes/auth.js +669 -633
- package/backend/src/api/routes/botCommands.js +107 -0
- package/backend/src/api/routes/botGroups.js +165 -0
- package/backend/src/api/routes/botHistory.js +108 -0
- package/backend/src/api/routes/botPermissions.js +99 -0
- package/backend/src/api/routes/botStatus.js +36 -0
- package/backend/src/api/routes/botUsers.js +162 -0
- package/backend/src/api/routes/bots.js +2451 -2360
- package/backend/src/api/routes/eventGraphs.js +4 -1
- package/backend/src/api/routes/logs.js +13 -3
- package/backend/src/api/routes/panel.js +66 -66
- package/backend/src/api/routes/panelApiKeys.js +179 -0
- package/backend/src/api/routes/pluginIde.js +1715 -135
- package/backend/src/api/routes/plugins.js +376 -218
- package/backend/src/api/routes/proxies.js +130 -0
- package/backend/src/api/routes/search.js +4 -0
- package/backend/src/api/routes/servers.js +20 -3
- package/backend/src/api/routes/settings.js +5 -0
- package/backend/src/api/routes/system.js +174 -0
- package/backend/src/api/routes/traces.js +131 -0
- package/backend/src/config/debug.config.js +36 -0
- package/backend/src/container.js +82 -0
- package/backend/src/core/BotHistoryStore.js +180 -0
- package/backend/src/core/BotManager.js +149 -868
- package/backend/src/core/BotManager.old.js +1093 -0
- package/backend/src/core/BotProcess.js +850 -191
- package/backend/src/core/EventGraphManager.js +194 -198
- package/backend/src/core/GraphExecutionEngine.js +709 -57
- package/backend/src/core/MessageQueue.js +39 -12
- package/backend/src/core/NodeRegistry.js +37 -1134
- package/backend/src/core/PluginLoader.js +99 -5
- package/backend/src/core/PluginManager.js +126 -15
- package/backend/src/core/PrismaService.js +32 -0
- package/backend/src/core/TaskScheduler.js +1 -1
- package/backend/src/core/UserService.js +3 -3
- package/backend/src/core/__tests__/PrismaService.test.js +24 -0
- package/backend/src/core/commands/README.md +305 -0
- package/backend/src/core/commands/dev.js +13 -7
- package/backend/src/core/commands/ping.js +10 -4
- package/backend/src/core/commands/whois.js +63 -0
- package/backend/src/core/config/validation.js +27 -0
- package/backend/src/core/constants/graphTypes.js +21 -0
- package/backend/src/core/node-registries/actions.js +202 -0
- package/backend/src/core/node-registries/arrays.js +155 -0
- package/backend/src/core/node-registries/bot.js +23 -0
- package/backend/src/core/node-registries/data.js +290 -0
- package/backend/src/core/node-registries/debug.js +26 -0
- package/backend/src/core/node-registries/events.js +201 -0
- package/backend/src/core/node-registries/flow.js +139 -0
- package/backend/src/core/node-registries/logic.js +62 -0
- package/backend/src/core/node-registries/math.js +42 -0
- package/backend/src/core/node-registries/objects.js +98 -0
- package/backend/src/core/node-registries/strings.js +187 -0
- package/backend/src/core/node-registries/time.js +113 -0
- package/backend/src/core/node-registries/type.js +25 -0
- package/backend/src/core/node-registries/users.js +79 -0
- package/backend/src/core/nodes/{action_bot_look_at.js → actions/bot_look_at.js} +36 -36
- package/backend/src/core/nodes/{action_bot_set_variable.js → actions/bot_set_variable.js} +32 -32
- package/backend/src/core/nodes/actions/create_command.js +189 -0
- package/backend/src/core/nodes/actions/delete_command.js +92 -0
- package/backend/src/core/nodes/{action_send_log.js → actions/send_log.js} +28 -23
- package/backend/src/core/nodes/{action_send_message.js → actions/send_message.js} +32 -32
- package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
- package/backend/src/core/nodes/actions/update_command.js +133 -0
- package/backend/src/core/nodes/arrays/get_next.js +35 -0
- package/backend/src/core/nodes/arrays/join.js +28 -0
- package/backend/src/core/nodes/{data_cast.js → data/cast.js} +10 -1
- package/backend/src/core/nodes/data/datetime_literal.js +27 -0
- package/backend/src/core/nodes/data/entity_info.js +69 -0
- package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
- package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
- package/backend/src/core/nodes/{data_get_user_field.js → data/get_user_field.js} +1 -1
- package/backend/src/core/nodes/data/type_check.js +53 -0
- package/backend/src/core/nodes/{debug_log.js → debug/log.js} +16 -16
- package/backend/src/core/nodes/{flow_branch.js → flow/branch.js} +15 -15
- package/backend/src/core/nodes/{flow_break.js → flow/break.js} +14 -14
- package/backend/src/core/nodes/flow/delay.js +43 -0
- package/backend/src/core/nodes/{flow_for_each.js → flow/for_each.js} +39 -39
- package/backend/src/core/nodes/{flow_sequence.js → flow/sequence.js} +16 -16
- package/backend/src/core/nodes/{flow_switch.js → flow/switch.js} +47 -47
- package/backend/src/core/nodes/{flow_while.js → flow/while.js} +1 -1
- package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
- package/backend/src/core/nodes/logic/not.js +22 -0
- package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
- package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
- package/backend/src/core/nodes/{string_starts_with.js → strings/starts_with.js} +1 -1
- package/backend/src/core/nodes/strings/to_lower.js +22 -0
- package/backend/src/core/nodes/strings/to_upper.js +22 -0
- package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
- package/backend/src/core/nodes/time/add.js +33 -0
- package/backend/src/core/nodes/time/compare.js +35 -0
- package/backend/src/core/nodes/time/diff.js +29 -0
- package/backend/src/core/nodes/time/format.js +32 -0
- package/backend/src/core/nodes/time/now.js +18 -0
- package/backend/src/core/nodes/type/to_string.js +32 -0
- package/backend/src/core/nodes/{user_check_blacklist.js → users/check_blacklist.js} +37 -37
- package/backend/src/core/nodes/{user_get_groups.js → users/get_groups.js} +36 -36
- package/backend/src/core/nodes/{user_get_permissions.js → users/get_permissions.js} +36 -36
- package/backend/src/core/nodes/{user_set_blacklist.js → users/set_blacklist.js} +37 -37
- package/backend/src/core/services/BotLifecycleService.js +835 -0
- package/backend/src/core/services/BotProcessManager.js +163 -0
- package/backend/src/core/services/CacheManager.js +111 -0
- package/backend/src/core/services/CommandExecutionService.js +430 -0
- package/backend/src/core/services/DebugSessionManager.js +347 -0
- package/backend/src/core/services/GraphCollaborationManager.js +501 -0
- package/backend/src/core/services/MinecraftBotManager.js +259 -0
- package/backend/src/core/services/MinecraftViewerService.js +216 -0
- package/backend/src/core/services/ResourceMonitorService.js +90 -0
- package/backend/src/core/services/TelemetryService.js +124 -0
- package/backend/src/core/services/TraceCollectorService.js +545 -0
- package/backend/src/core/services/ValidationService.js +132 -0
- package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
- package/backend/src/core/services.js +20 -5
- package/backend/src/core/system/CommandContext.js +84 -0
- package/backend/src/core/system/RuntimeCommandRegistry.js +116 -0
- package/backend/src/core/system/Transport.js +74 -0
- package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
- package/backend/src/core/utils/jsonParser.js +18 -0
- package/backend/src/core/utils/secretsFilter.js +262 -0
- package/backend/src/core/utils/variableParser.js +89 -0
- package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
- package/backend/src/core/validation/nodeSchemas.js +112 -0
- package/backend/src/lib/prisma.js +2 -4
- package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
- package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
- package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
- package/backend/src/real-time/botApi/handlers/index.js +43 -0
- package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
- package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
- package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
- package/backend/src/real-time/botApi/index.js +40 -0
- package/backend/src/real-time/botApi/middleware.js +79 -0
- package/backend/src/real-time/botApi/utils.js +65 -0
- package/backend/src/real-time/panelNamespace.js +387 -0
- package/backend/src/real-time/presence.js +7 -2
- package/backend/src/real-time/socketHandler.js +400 -5
- package/backend/src/repositories/BaseRepository.js +43 -0
- package/backend/src/repositories/BotRepository.js +42 -0
- package/backend/src/repositories/CommandRepository.js +53 -0
- package/backend/src/repositories/EventGraphRepository.js +40 -0
- package/backend/src/repositories/GroupRepository.js +69 -0
- package/backend/src/repositories/PermissionRepository.js +48 -0
- package/backend/src/repositories/PluginRepository.js +42 -0
- package/backend/src/repositories/ServerRepository.js +27 -0
- package/backend/src/repositories/UserRepository.js +48 -0
- package/backend/src/server.js +21 -0
- package/backend/src/test-refactor.js +85 -0
- package/frontend/dist/assets/index-B1serztM.js +11210 -0
- package/frontend/dist/assets/index-t6K1u4OV.css +32 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/package-lock.json +9437 -0
- package/frontend/package.json +8 -5
- package/package.json +3 -2
- package/screen/console.png +0 -0
- package/screen/dashboard.png +0 -0
- package/screen/graph_collabe.png +0 -0
- package/screen/graph_live_debug.png +0 -0
- package/screen/management_command.png +0 -0
- package/screen/node_debug_trace.png +0 -0
- package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
- package/screen/websocket.png +0 -0
- package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
- package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
- package/frontend/dist/assets/index-B9GedHEa.js +0 -8352
- package/frontend/dist/assets/index-zLiy9MDx.css +0 -1
- package/nul +0 -0
- /package/backend/src/core/nodes/{action_http_request.js → actions/http_request.js} +0 -0
- /package/backend/src/core/nodes/{array_add_element.js → arrays/add_element.js} +0 -0
- /package/backend/src/core/nodes/{array_contains.js → arrays/contains.js} +0 -0
- /package/backend/src/core/nodes/{array_find_index.js → arrays/find_index.js} +0 -0
- /package/backend/src/core/nodes/{array_get_by_index.js → arrays/get_by_index.js} +0 -0
- /package/backend/src/core/nodes/{array_get_random_element.js → arrays/get_random_element.js} +0 -0
- /package/backend/src/core/nodes/{array_remove_by_index.js → arrays/remove_by_index.js} +0 -0
- /package/backend/src/core/nodes/{bot_get_position.js → bot/get_position.js} +0 -0
- /package/backend/src/core/nodes/{data_array_literal.js → data/array_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_boolean_literal.js → data/boolean_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_get_argument.js → data/get_argument.js} +0 -0
- /package/backend/src/core/nodes/{data_get_bot_look.js → data/get_bot_look.js} +0 -0
- /package/backend/src/core/nodes/{data_get_entity_field.js → data/get_entity_field.js} +0 -0
- /package/backend/src/core/nodes/{data_get_server_players.js → data/get_server_players.js} +0 -0
- /package/backend/src/core/nodes/{data_get_variable.js → data/get_variable.js} +0 -0
- /package/backend/src/core/nodes/{data_length.js → data/length.js} +0 -0
- /package/backend/src/core/nodes/{data_make_object.js → data/make_object.js} +0 -0
- /package/backend/src/core/nodes/{data_number_literal.js → data/number_literal.js} +0 -0
- /package/backend/src/core/nodes/{data_string_literal.js → data/string_literal.js} +0 -0
- /package/backend/src/core/nodes/{logic_compare.js → logic/compare.js} +0 -0
- /package/backend/src/core/nodes/{logic_operation.js → logic/operation.js} +0 -0
- /package/backend/src/core/nodes/{math_operation.js → math/operation.js} +0 -0
- /package/backend/src/core/nodes/{math_random_number.js → math/random_number.js} +0 -0
- /package/backend/src/core/nodes/{object_create.js → objects/create.js} +0 -0
- /package/backend/src/core/nodes/{object_delete.js → objects/delete.js} +0 -0
- /package/backend/src/core/nodes/{object_get.js → objects/get.js} +0 -0
- /package/backend/src/core/nodes/{object_has_key.js → objects/has_key.js} +0 -0
- /package/backend/src/core/nodes/{object_set.js → objects/set.js} +0 -0
- /package/backend/src/core/nodes/{string_concat.js → strings/concat.js} +0 -0
- /package/backend/src/core/nodes/{string_contains.js → strings/contains.js} +0 -0
- /package/backend/src/core/nodes/{string_ends_with.js → strings/ends_with.js} +0 -0
- /package/backend/src/core/nodes/{string_equals.js → strings/equals.js} +0 -0
- /package/backend/src/core/nodes/{string_length.js → strings/length.js} +0 -0
- /package/backend/src/core/nodes/{string_matches.js → strings/matches.js} +0 -0
- /package/backend/src/core/nodes/{string_split.js → strings/split.js} +0 -0
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
# skill-rules.json - Complete Reference
|
|
2
|
+
|
|
3
|
+
Complete schema and configuration reference for `.claude/skills/skill-rules.json`.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [File Location](#file-location)
|
|
8
|
+
- [Complete TypeScript Schema](#complete-typescript-schema)
|
|
9
|
+
- [Field Guide](#field-guide)
|
|
10
|
+
- [Example: Guardrail Skill](#example-guardrail-skill)
|
|
11
|
+
- [Example: Domain Skill](#example-domain-skill)
|
|
12
|
+
- [Validation](#validation)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## File Location
|
|
17
|
+
|
|
18
|
+
**Path:** `.claude/skills/skill-rules.json`
|
|
19
|
+
|
|
20
|
+
This JSON file defines all skills and their trigger conditions for the auto-activation system.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Complete TypeScript Schema
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
interface SkillRules {
|
|
28
|
+
version: string;
|
|
29
|
+
skills: Record<string, SkillRule>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
interface SkillRule {
|
|
33
|
+
type: 'guardrail' | 'domain';
|
|
34
|
+
enforcement: 'block' | 'suggest' | 'warn';
|
|
35
|
+
priority: 'critical' | 'high' | 'medium' | 'low';
|
|
36
|
+
|
|
37
|
+
promptTriggers?: {
|
|
38
|
+
keywords?: string[];
|
|
39
|
+
intentPatterns?: string[]; // Regex strings
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
fileTriggers?: {
|
|
43
|
+
pathPatterns: string[]; // Glob patterns
|
|
44
|
+
pathExclusions?: string[]; // Glob patterns
|
|
45
|
+
contentPatterns?: string[]; // Regex strings
|
|
46
|
+
createOnly?: boolean; // Only trigger on file creation
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
blockMessage?: string; // For guardrails, {file_path} placeholder
|
|
50
|
+
|
|
51
|
+
skipConditions?: {
|
|
52
|
+
sessionSkillUsed?: boolean; // Skip if used in session
|
|
53
|
+
fileMarkers?: string[]; // e.g., ["@skip-validation"]
|
|
54
|
+
envOverride?: string; // e.g., "SKIP_DB_VERIFICATION"
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Field Guide
|
|
62
|
+
|
|
63
|
+
### Top Level
|
|
64
|
+
|
|
65
|
+
| Field | Type | Required | Description |
|
|
66
|
+
|-------|------|----------|-------------|
|
|
67
|
+
| `version` | string | Yes | Schema version (currently "1.0") |
|
|
68
|
+
| `skills` | object | Yes | Map of skill name → SkillRule |
|
|
69
|
+
|
|
70
|
+
### SkillRule Fields
|
|
71
|
+
|
|
72
|
+
| Field | Type | Required | Description |
|
|
73
|
+
|-------|------|----------|-------------|
|
|
74
|
+
| `type` | string | Yes | "guardrail" (enforced) or "domain" (advisory) |
|
|
75
|
+
| `enforcement` | string | Yes | "block" (PreToolUse), "suggest" (UserPromptSubmit), or "warn" |
|
|
76
|
+
| `priority` | string | Yes | "critical", "high", "medium", or "low" |
|
|
77
|
+
| `promptTriggers` | object | Optional | Triggers for UserPromptSubmit hook |
|
|
78
|
+
| `fileTriggers` | object | Optional | Triggers for PreToolUse hook |
|
|
79
|
+
| `blockMessage` | string | Optional* | Required if enforcement="block". Use `{file_path}` placeholder |
|
|
80
|
+
| `skipConditions` | object | Optional | Escape hatches and session tracking |
|
|
81
|
+
|
|
82
|
+
*Required for guardrails
|
|
83
|
+
|
|
84
|
+
### promptTriggers Fields
|
|
85
|
+
|
|
86
|
+
| Field | Type | Required | Description |
|
|
87
|
+
|-------|------|----------|-------------|
|
|
88
|
+
| `keywords` | string[] | Optional | Exact substring matches (case-insensitive) |
|
|
89
|
+
| `intentPatterns` | string[] | Optional | Regex patterns for intent detection |
|
|
90
|
+
|
|
91
|
+
### fileTriggers Fields
|
|
92
|
+
|
|
93
|
+
| Field | Type | Required | Description |
|
|
94
|
+
|-------|------|----------|-------------|
|
|
95
|
+
| `pathPatterns` | string[] | Yes* | Glob patterns for file paths |
|
|
96
|
+
| `pathExclusions` | string[] | Optional | Glob patterns to exclude (e.g., test files) |
|
|
97
|
+
| `contentPatterns` | string[] | Optional | Regex patterns to match file content |
|
|
98
|
+
| `createOnly` | boolean | Optional | Only trigger when creating new files |
|
|
99
|
+
|
|
100
|
+
*Required if fileTriggers is present
|
|
101
|
+
|
|
102
|
+
### skipConditions Fields
|
|
103
|
+
|
|
104
|
+
| Field | Type | Required | Description |
|
|
105
|
+
|-------|------|----------|-------------|
|
|
106
|
+
| `sessionSkillUsed` | boolean | Optional | Skip if skill already used this session |
|
|
107
|
+
| `fileMarkers` | string[] | Optional | Skip if file contains comment marker |
|
|
108
|
+
| `envOverride` | string | Optional | Environment variable name to disable skill |
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Example: Guardrail Skill
|
|
113
|
+
|
|
114
|
+
Complete example of a blocking guardrail skill with all features:
|
|
115
|
+
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"database-verification": {
|
|
119
|
+
"type": "guardrail",
|
|
120
|
+
"enforcement": "block",
|
|
121
|
+
"priority": "critical",
|
|
122
|
+
|
|
123
|
+
"promptTriggers": {
|
|
124
|
+
"keywords": [
|
|
125
|
+
"prisma",
|
|
126
|
+
"database",
|
|
127
|
+
"table",
|
|
128
|
+
"column",
|
|
129
|
+
"schema",
|
|
130
|
+
"query",
|
|
131
|
+
"migration"
|
|
132
|
+
],
|
|
133
|
+
"intentPatterns": [
|
|
134
|
+
"(add|create|implement).*?(user|login|auth|tracking|feature)",
|
|
135
|
+
"(modify|update|change).*?(table|column|schema|field)",
|
|
136
|
+
"database.*?(change|update|modify|migration)"
|
|
137
|
+
]
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
"fileTriggers": {
|
|
141
|
+
"pathPatterns": [
|
|
142
|
+
"**/schema.prisma",
|
|
143
|
+
"**/migrations/**/*.sql",
|
|
144
|
+
"database/src/**/*.ts",
|
|
145
|
+
"form/src/**/*.ts",
|
|
146
|
+
"email/src/**/*.ts",
|
|
147
|
+
"users/src/**/*.ts",
|
|
148
|
+
"projects/src/**/*.ts",
|
|
149
|
+
"utilities/src/**/*.ts"
|
|
150
|
+
],
|
|
151
|
+
"pathExclusions": [
|
|
152
|
+
"**/*.test.ts",
|
|
153
|
+
"**/*.spec.ts"
|
|
154
|
+
],
|
|
155
|
+
"contentPatterns": [
|
|
156
|
+
"import.*[Pp]risma",
|
|
157
|
+
"PrismaService",
|
|
158
|
+
"prisma\\.",
|
|
159
|
+
"\\.findMany\\(",
|
|
160
|
+
"\\.findUnique\\(",
|
|
161
|
+
"\\.findFirst\\(",
|
|
162
|
+
"\\.create\\(",
|
|
163
|
+
"\\.createMany\\(",
|
|
164
|
+
"\\.update\\(",
|
|
165
|
+
"\\.updateMany\\(",
|
|
166
|
+
"\\.upsert\\(",
|
|
167
|
+
"\\.delete\\(",
|
|
168
|
+
"\\.deleteMany\\("
|
|
169
|
+
]
|
|
170
|
+
},
|
|
171
|
+
|
|
172
|
+
"blockMessage": "⚠️ BLOCKED - Database Operation Detected\n\n📋 REQUIRED ACTION:\n1. Use Skill tool: 'database-verification'\n2. Verify ALL table and column names against schema\n3. Check database structure with DESCRIBE commands\n4. Then retry this edit\n\nReason: Prevent column name errors in Prisma queries\nFile: {file_path}\n\n💡 TIP: Add '// @skip-validation' comment to skip future checks",
|
|
173
|
+
|
|
174
|
+
"skipConditions": {
|
|
175
|
+
"sessionSkillUsed": true,
|
|
176
|
+
"fileMarkers": [
|
|
177
|
+
"@skip-validation"
|
|
178
|
+
],
|
|
179
|
+
"envOverride": "SKIP_DB_VERIFICATION"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Key Points for Guardrails
|
|
186
|
+
|
|
187
|
+
1. **type**: Must be "guardrail"
|
|
188
|
+
2. **enforcement**: Must be "block"
|
|
189
|
+
3. **priority**: Usually "critical" or "high"
|
|
190
|
+
4. **blockMessage**: Required, clear actionable steps
|
|
191
|
+
5. **skipConditions**: Session tracking prevents repeated nagging
|
|
192
|
+
6. **fileTriggers**: Usually has both path and content patterns
|
|
193
|
+
7. **contentPatterns**: Catch actual usage of technology
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Example: Domain Skill
|
|
198
|
+
|
|
199
|
+
Complete example of a suggestion-based domain skill:
|
|
200
|
+
|
|
201
|
+
```json
|
|
202
|
+
{
|
|
203
|
+
"project-catalog-developer": {
|
|
204
|
+
"type": "domain",
|
|
205
|
+
"enforcement": "suggest",
|
|
206
|
+
"priority": "high",
|
|
207
|
+
|
|
208
|
+
"promptTriggers": {
|
|
209
|
+
"keywords": [
|
|
210
|
+
"layout",
|
|
211
|
+
"layout system",
|
|
212
|
+
"grid",
|
|
213
|
+
"grid layout",
|
|
214
|
+
"toolbar",
|
|
215
|
+
"column",
|
|
216
|
+
"cell editor",
|
|
217
|
+
"cell renderer",
|
|
218
|
+
"submission",
|
|
219
|
+
"submissions",
|
|
220
|
+
"blog dashboard",
|
|
221
|
+
"datagrid",
|
|
222
|
+
"data grid",
|
|
223
|
+
"CustomToolbar",
|
|
224
|
+
"GridLayoutDialog",
|
|
225
|
+
"useGridLayout",
|
|
226
|
+
"auto-save",
|
|
227
|
+
"column order",
|
|
228
|
+
"column width",
|
|
229
|
+
"filter",
|
|
230
|
+
"sort"
|
|
231
|
+
],
|
|
232
|
+
"intentPatterns": [
|
|
233
|
+
"(how does|how do|explain|what is|describe).*?(layout|grid|toolbar|column|submission|catalog)",
|
|
234
|
+
"(add|create|modify|change).*?(toolbar|column|cell|editor|renderer)",
|
|
235
|
+
"blog dashboard.*?"
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
|
|
239
|
+
"fileTriggers": {
|
|
240
|
+
"pathPatterns": [
|
|
241
|
+
"frontend/src/features/submissions/**/*.tsx",
|
|
242
|
+
"frontend/src/features/submissions/**/*.ts"
|
|
243
|
+
],
|
|
244
|
+
"pathExclusions": [
|
|
245
|
+
"**/*.test.tsx",
|
|
246
|
+
"**/*.test.ts"
|
|
247
|
+
]
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Key Points for Domain Skills
|
|
254
|
+
|
|
255
|
+
1. **type**: Must be "domain"
|
|
256
|
+
2. **enforcement**: Usually "suggest"
|
|
257
|
+
3. **priority**: "high" or "medium"
|
|
258
|
+
4. **blockMessage**: Not needed (doesn't block)
|
|
259
|
+
5. **skipConditions**: Optional (less critical)
|
|
260
|
+
6. **promptTriggers**: Usually has extensive keywords
|
|
261
|
+
7. **fileTriggers**: May have only path patterns (content less important)
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Validation
|
|
266
|
+
|
|
267
|
+
### Check JSON Syntax
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
cat .claude/skills/skill-rules.json | jq .
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
If valid, jq will pretty-print the JSON. If invalid, it will show the error.
|
|
274
|
+
|
|
275
|
+
### Common JSON Errors
|
|
276
|
+
|
|
277
|
+
**Trailing comma:**
|
|
278
|
+
```json
|
|
279
|
+
{
|
|
280
|
+
"keywords": ["one", "two",] // ❌ Trailing comma
|
|
281
|
+
}
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**Missing quotes:**
|
|
285
|
+
```json
|
|
286
|
+
{
|
|
287
|
+
type: "guardrail" // ❌ Missing quotes on key
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Single quotes (invalid JSON):**
|
|
292
|
+
```json
|
|
293
|
+
{
|
|
294
|
+
'type': 'guardrail' // ❌ Must use double quotes
|
|
295
|
+
}
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Validation Checklist
|
|
299
|
+
|
|
300
|
+
- [ ] JSON syntax valid (use `jq`)
|
|
301
|
+
- [ ] All skill names match SKILL.md filenames
|
|
302
|
+
- [ ] Guardrails have `blockMessage`
|
|
303
|
+
- [ ] Block messages use `{file_path}` placeholder
|
|
304
|
+
- [ ] Intent patterns are valid regex (test on regex101.com)
|
|
305
|
+
- [ ] File path patterns use correct glob syntax
|
|
306
|
+
- [ ] Content patterns escape special characters
|
|
307
|
+
- [ ] Priority matches enforcement level
|
|
308
|
+
- [ ] No duplicate skill names
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
**Related Files:**
|
|
313
|
+
- [SKILL.md](SKILL.md) - Main skill guide
|
|
314
|
+
- [TRIGGER_TYPES.md](TRIGGER_TYPES.md) - Complete trigger documentation
|
|
315
|
+
- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - Debugging configuration issues
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
# Trigger Types - Complete Guide
|
|
2
|
+
|
|
3
|
+
Complete reference for configuring skill triggers in Claude Code's skill auto-activation system.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Keyword Triggers (Explicit)](#keyword-triggers-explicit)
|
|
8
|
+
- [Intent Pattern Triggers (Implicit)](#intent-pattern-triggers-implicit)
|
|
9
|
+
- [File Path Triggers](#file-path-triggers)
|
|
10
|
+
- [Content Pattern Triggers](#content-pattern-triggers)
|
|
11
|
+
- [Best Practices Summary](#best-practices-summary)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Keyword Triggers (Explicit)
|
|
16
|
+
|
|
17
|
+
### How It Works
|
|
18
|
+
|
|
19
|
+
Case-insensitive substring matching in user's prompt.
|
|
20
|
+
|
|
21
|
+
### Use For
|
|
22
|
+
|
|
23
|
+
Topic-based activation where user explicitly mentions the subject.
|
|
24
|
+
|
|
25
|
+
### Configuration
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
"promptTriggers": {
|
|
29
|
+
"keywords": ["layout", "grid", "toolbar", "submission"]
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Example
|
|
34
|
+
|
|
35
|
+
- User prompt: "how does the **layout** system work?"
|
|
36
|
+
- Matches: "layout" keyword
|
|
37
|
+
- Activates: `project-catalog-developer`
|
|
38
|
+
|
|
39
|
+
### Best Practices
|
|
40
|
+
|
|
41
|
+
- Use specific, unambiguous terms
|
|
42
|
+
- Include common variations ("layout", "layout system", "grid layout")
|
|
43
|
+
- Avoid overly generic words ("system", "work", "create")
|
|
44
|
+
- Test with real prompts
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Intent Pattern Triggers (Implicit)
|
|
49
|
+
|
|
50
|
+
### How It Works
|
|
51
|
+
|
|
52
|
+
Regex pattern matching to detect user's intent even when they don't mention the topic explicitly.
|
|
53
|
+
|
|
54
|
+
### Use For
|
|
55
|
+
|
|
56
|
+
Action-based activation where user describes what they want to do rather than the specific topic.
|
|
57
|
+
|
|
58
|
+
### Configuration
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
"promptTriggers": {
|
|
62
|
+
"intentPatterns": [
|
|
63
|
+
"(create|add|implement).*?(feature|endpoint)",
|
|
64
|
+
"(how does|explain).*?(layout|workflow)"
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Examples
|
|
70
|
+
|
|
71
|
+
**Database Work:**
|
|
72
|
+
- User prompt: "add user tracking feature"
|
|
73
|
+
- Matches: `(add).*?(feature)`
|
|
74
|
+
- Activates: `database-verification`, `error-tracking`
|
|
75
|
+
|
|
76
|
+
**Component Creation:**
|
|
77
|
+
- User prompt: "create a dashboard widget"
|
|
78
|
+
- Matches: `(create).*?(component)` (if component in pattern)
|
|
79
|
+
- Activates: `frontend-dev-guidelines`
|
|
80
|
+
|
|
81
|
+
### Best Practices
|
|
82
|
+
|
|
83
|
+
- Capture common action verbs: `(create|add|modify|build|implement)`
|
|
84
|
+
- Include domain-specific nouns: `(feature|endpoint|component|workflow)`
|
|
85
|
+
- Use non-greedy matching: `.*?` instead of `.*`
|
|
86
|
+
- Test patterns thoroughly with regex tester (https://regex101.com/)
|
|
87
|
+
- Don't make patterns too broad (causes false positives)
|
|
88
|
+
- Don't make patterns too specific (causes false negatives)
|
|
89
|
+
|
|
90
|
+
### Common Pattern Examples
|
|
91
|
+
|
|
92
|
+
```regex
|
|
93
|
+
# Database Work
|
|
94
|
+
(add|create|implement).*?(user|login|auth|feature)
|
|
95
|
+
|
|
96
|
+
# Explanations
|
|
97
|
+
(how does|explain|what is|describe).*?
|
|
98
|
+
|
|
99
|
+
# Frontend Work
|
|
100
|
+
(create|add|make|build).*?(component|UI|page|modal|dialog)
|
|
101
|
+
|
|
102
|
+
# Error Handling
|
|
103
|
+
(fix|handle|catch|debug).*?(error|exception|bug)
|
|
104
|
+
|
|
105
|
+
# Workflow Operations
|
|
106
|
+
(create|add|modify).*?(workflow|step|branch|condition)
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## File Path Triggers
|
|
112
|
+
|
|
113
|
+
### How It Works
|
|
114
|
+
|
|
115
|
+
Glob pattern matching against the file path being edited.
|
|
116
|
+
|
|
117
|
+
### Use For
|
|
118
|
+
|
|
119
|
+
Domain/area-specific activation based on file location in the project.
|
|
120
|
+
|
|
121
|
+
### Configuration
|
|
122
|
+
|
|
123
|
+
```json
|
|
124
|
+
"fileTriggers": {
|
|
125
|
+
"pathPatterns": [
|
|
126
|
+
"frontend/src/**/*.tsx",
|
|
127
|
+
"form/src/**/*.ts"
|
|
128
|
+
],
|
|
129
|
+
"pathExclusions": [
|
|
130
|
+
"**/*.test.ts",
|
|
131
|
+
"**/*.spec.ts"
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Glob Pattern Syntax
|
|
137
|
+
|
|
138
|
+
- `**` = Any number of directories (including zero)
|
|
139
|
+
- `*` = Any characters within a directory name
|
|
140
|
+
- Examples:
|
|
141
|
+
- `frontend/src/**/*.tsx` = All .tsx files in frontend/src and subdirs
|
|
142
|
+
- `**/schema.prisma` = schema.prisma anywhere in project
|
|
143
|
+
- `form/src/**/*.ts` = All .ts files in form/src subdirs
|
|
144
|
+
|
|
145
|
+
### Example
|
|
146
|
+
|
|
147
|
+
- File being edited: `frontend/src/components/Dashboard.tsx`
|
|
148
|
+
- Matches: `frontend/src/**/*.tsx`
|
|
149
|
+
- Activates: `frontend-dev-guidelines`
|
|
150
|
+
|
|
151
|
+
### Best Practices
|
|
152
|
+
|
|
153
|
+
- Be specific to avoid false positives
|
|
154
|
+
- Use exclusions for test files: `**/*.test.ts`
|
|
155
|
+
- Consider subdirectory structure
|
|
156
|
+
- Test patterns with actual file paths
|
|
157
|
+
- Use narrower patterns when possible: `form/src/services/**` not `form/**`
|
|
158
|
+
|
|
159
|
+
### Common Path Patterns
|
|
160
|
+
|
|
161
|
+
```glob
|
|
162
|
+
# Frontend
|
|
163
|
+
frontend/src/**/*.tsx # All React components
|
|
164
|
+
frontend/src/**/*.ts # All TypeScript files
|
|
165
|
+
frontend/src/components/** # Only components directory
|
|
166
|
+
|
|
167
|
+
# Backend Services
|
|
168
|
+
form/src/**/*.ts # Form service
|
|
169
|
+
email/src/**/*.ts # Email service
|
|
170
|
+
users/src/**/*.ts # Users service
|
|
171
|
+
|
|
172
|
+
# Database
|
|
173
|
+
**/schema.prisma # Prisma schema (anywhere)
|
|
174
|
+
**/migrations/**/*.sql # Migration files
|
|
175
|
+
database/src/**/*.ts # Database scripts
|
|
176
|
+
|
|
177
|
+
# Workflows
|
|
178
|
+
form/src/workflow/**/*.ts # Workflow engine
|
|
179
|
+
form/src/workflow-definitions/**/*.json # Workflow definitions
|
|
180
|
+
|
|
181
|
+
# Test Exclusions
|
|
182
|
+
**/*.test.ts # TypeScript tests
|
|
183
|
+
**/*.test.tsx # React component tests
|
|
184
|
+
**/*.spec.ts # Spec files
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Content Pattern Triggers
|
|
190
|
+
|
|
191
|
+
### How It Works
|
|
192
|
+
|
|
193
|
+
Regex pattern matching against the file's actual content (what's inside the file).
|
|
194
|
+
|
|
195
|
+
### Use For
|
|
196
|
+
|
|
197
|
+
Technology-specific activation based on what the code imports or uses (Prisma, controllers, specific libraries).
|
|
198
|
+
|
|
199
|
+
### Configuration
|
|
200
|
+
|
|
201
|
+
```json
|
|
202
|
+
"fileTriggers": {
|
|
203
|
+
"contentPatterns": [
|
|
204
|
+
"import.*[Pp]risma",
|
|
205
|
+
"PrismaService",
|
|
206
|
+
"\\.findMany\\(",
|
|
207
|
+
"\\.create\\("
|
|
208
|
+
]
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Examples
|
|
213
|
+
|
|
214
|
+
**Prisma Detection:**
|
|
215
|
+
- File contains: `import { PrismaService } from '@project/database'`
|
|
216
|
+
- Matches: `import.*[Pp]risma`
|
|
217
|
+
- Activates: `database-verification`
|
|
218
|
+
|
|
219
|
+
**Controller Detection:**
|
|
220
|
+
- File contains: `export class UserController {`
|
|
221
|
+
- Matches: `export class.*Controller`
|
|
222
|
+
- Activates: `error-tracking`
|
|
223
|
+
|
|
224
|
+
### Best Practices
|
|
225
|
+
|
|
226
|
+
- Match imports: `import.*[Pp]risma` (case-insensitive with [Pp])
|
|
227
|
+
- Escape special regex chars: `\\.findMany\\(` not `.findMany(`
|
|
228
|
+
- Patterns use case-insensitive flag
|
|
229
|
+
- Test against real file content
|
|
230
|
+
- Make patterns specific enough to avoid false matches
|
|
231
|
+
|
|
232
|
+
### Common Content Patterns
|
|
233
|
+
|
|
234
|
+
```regex
|
|
235
|
+
# Prisma/Database
|
|
236
|
+
import.*[Pp]risma # Prisma imports
|
|
237
|
+
PrismaService # PrismaService usage
|
|
238
|
+
prisma\. # prisma.something
|
|
239
|
+
\.findMany\( # Prisma query methods
|
|
240
|
+
\.create\(
|
|
241
|
+
\.update\(
|
|
242
|
+
\.delete\(
|
|
243
|
+
|
|
244
|
+
# Controllers/Routes
|
|
245
|
+
export class.*Controller # Controller classes
|
|
246
|
+
router\. # Express router
|
|
247
|
+
app\.(get|post|put|delete|patch) # Express app routes
|
|
248
|
+
|
|
249
|
+
# Error Handling
|
|
250
|
+
try\s*\{ # Try blocks
|
|
251
|
+
catch\s*\( # Catch blocks
|
|
252
|
+
throw new # Throw statements
|
|
253
|
+
|
|
254
|
+
# React/Components
|
|
255
|
+
export.*React\.FC # React functional components
|
|
256
|
+
export default function.* # Default function exports
|
|
257
|
+
useState|useEffect # React hooks
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Best Practices Summary
|
|
263
|
+
|
|
264
|
+
### DO:
|
|
265
|
+
✅ Use specific, unambiguous keywords
|
|
266
|
+
✅ Test all patterns with real examples
|
|
267
|
+
✅ Include common variations
|
|
268
|
+
✅ Use non-greedy regex: `.*?`
|
|
269
|
+
✅ Escape special characters in content patterns
|
|
270
|
+
✅ Add exclusions for test files
|
|
271
|
+
✅ Make file path patterns narrow and specific
|
|
272
|
+
|
|
273
|
+
### DON'T:
|
|
274
|
+
❌ Use overly generic keywords ("system", "work")
|
|
275
|
+
❌ Make intent patterns too broad (false positives)
|
|
276
|
+
❌ Make patterns too specific (false negatives)
|
|
277
|
+
❌ Forget to test with regex tester (https://regex101.com/)
|
|
278
|
+
❌ Use greedy regex: `.*` instead of `.*?`
|
|
279
|
+
❌ Match too broadly in file paths
|
|
280
|
+
|
|
281
|
+
### Testing Your Triggers
|
|
282
|
+
|
|
283
|
+
**Test keyword/intent triggers:**
|
|
284
|
+
```bash
|
|
285
|
+
echo '{"session_id":"test","prompt":"your test prompt"}' | \
|
|
286
|
+
npx tsx .claude/hooks/skill-activation-prompt.ts
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
**Test file path/content triggers:**
|
|
290
|
+
```bash
|
|
291
|
+
cat <<'EOF' | npx tsx .claude/hooks/skill-verification-guard.ts
|
|
292
|
+
{
|
|
293
|
+
"session_id": "test",
|
|
294
|
+
"tool_name": "Edit",
|
|
295
|
+
"tool_input": {"file_path": "/path/to/test/file.ts"}
|
|
296
|
+
}
|
|
297
|
+
EOF
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
**Related Files:**
|
|
303
|
+
- [SKILL.md](SKILL.md) - Main skill guide
|
|
304
|
+
- [SKILL_RULES_REFERENCE.md](SKILL_RULES_REFERENCE.md) - Complete skill-rules.json schema
|
|
305
|
+
- [PATTERNS_LIBRARY.md](PATTERNS_LIBRARY.md) - Ready-to-use pattern library
|