blockmine 1.20.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (434) hide show
  1. package/.claude/agents/README.md +469 -0
  2. package/.claude/agents/auth-route-debugger.md +118 -0
  3. package/.claude/agents/auth-route-tester.md +93 -0
  4. package/.claude/agents/auto-error-resolver.md +97 -0
  5. package/.claude/agents/build-optimizer.md +236 -0
  6. package/.claude/agents/code-architecture-reviewer.md +83 -0
  7. package/.claude/agents/code-refactor-master.md +94 -0
  8. package/.claude/agents/cost-optimizer.md +134 -0
  9. package/.claude/agents/deployment-orchestrator.md +113 -0
  10. package/.claude/agents/documentation-architect.md +82 -0
  11. package/.claude/agents/frontend-error-fixer.md +77 -0
  12. package/.claude/agents/iac-code-generator.md +71 -0
  13. package/.claude/agents/incident-responder.md +346 -0
  14. package/.claude/agents/infrastructure-architect.md +31 -0
  15. package/.claude/agents/kubernetes-specialist.md +56 -0
  16. package/.claude/agents/migration-planner.md +181 -0
  17. package/.claude/agents/network-architect.md +196 -0
  18. package/.claude/agents/plan-reviewer.md +52 -0
  19. package/.claude/agents/refactor-planner.md +63 -0
  20. package/.claude/agents/security-scanner.md +102 -0
  21. package/.claude/agents/web-research-specialist.md +78 -0
  22. package/.claude/commands/cost-analysis.md +315 -0
  23. package/.claude/commands/dev-docs-update.md +55 -0
  24. package/.claude/commands/dev-docs.md +51 -0
  25. package/.claude/commands/incident-debug.md +247 -0
  26. package/.claude/commands/infra-plan.md +81 -0
  27. package/.claude/commands/migration-plan.md +478 -0
  28. package/.claude/commands/route-research-for-testing.md +37 -0
  29. package/.claude/commands/security-review.md +66 -0
  30. package/.claude/hooks/CONFIG.md +448 -0
  31. package/.claude/hooks/README.md +163 -0
  32. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
  33. package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
  34. package/.claude/hooks/add-skill-activation-banners.ts +132 -0
  35. package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
  36. package/.claude/hooks/error-handling-reminder.sh +12 -0
  37. package/.claude/hooks/error-handling-reminder.ts +222 -0
  38. package/.claude/hooks/k8s-manifest-validator.sh +56 -0
  39. package/.claude/hooks/package-lock.json +556 -0
  40. package/.claude/hooks/package.json +16 -0
  41. package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
  42. package/.claude/hooks/post-tool-use-tracker.sh +183 -0
  43. package/.claude/hooks/security-policy-check.sh +247 -0
  44. package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
  45. package/.claude/hooks/skill-activation-prompt.sh +10 -0
  46. package/.claude/hooks/skill-activation-prompt.ts +141 -0
  47. package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
  48. package/.claude/hooks/terraform-validator.sh +53 -0
  49. package/.claude/hooks/test-input.json +7 -0
  50. package/.claude/hooks/test-skill-activation.ts +427 -0
  51. package/.claude/hooks/trigger-build-resolver.sh +79 -0
  52. package/.claude/hooks/tsc-check.sh +173 -0
  53. package/.claude/hooks/tsconfig.json +19 -0
  54. package/.claude/settings.json +55 -0
  55. package/.claude/settings.local.json +28 -3
  56. package/.claude/skills/README.md +507 -0
  57. package/.claude/skills/api-engineering/SKILL.md +63 -0
  58. package/.claude/skills/api-engineering/resources/api-versioning.md +88 -0
  59. package/.claude/skills/api-engineering/resources/graphql-patterns.md +106 -0
  60. package/.claude/skills/api-engineering/resources/rate-limiting.md +118 -0
  61. package/.claude/skills/api-engineering/resources/rest-api-design.md +105 -0
  62. package/.claude/skills/backend-dev-guidelines/SKILL.md +306 -0
  63. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
  64. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
  65. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
  66. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +275 -0
  67. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
  68. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
  69. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
  70. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
  71. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
  72. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
  73. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
  74. package/.claude/skills/budget-and-cost-management/SKILL.md +850 -0
  75. package/.claude/skills/build-engineering/SKILL.md +431 -0
  76. package/.claude/skills/build-engineering/resources/artifact-repositories.md +72 -0
  77. package/.claude/skills/build-engineering/resources/build-caching.md +96 -0
  78. package/.claude/skills/build-engineering/resources/build-pipelines.md +105 -0
  79. package/.claude/skills/build-engineering/resources/build-security.md +95 -0
  80. package/.claude/skills/build-engineering/resources/build-systems.md +389 -0
  81. package/.claude/skills/build-engineering/resources/compilation-optimization.md +201 -0
  82. package/.claude/skills/build-engineering/resources/dependency-management.md +73 -0
  83. package/.claude/skills/build-engineering/resources/monorepo-builds.md +110 -0
  84. package/.claude/skills/build-engineering/resources/performance-optimization.md +113 -0
  85. package/.claude/skills/build-engineering/resources/reproducible-builds.md +82 -0
  86. package/.claude/skills/cloud-engineering/SKILL.md +675 -0
  87. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +742 -0
  88. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +714 -0
  89. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +987 -0
  90. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +757 -0
  91. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +1058 -0
  92. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +1530 -0
  93. package/.claude/skills/cloud-engineering/resources/cloud-security.md +990 -0
  94. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +758 -0
  95. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +820 -0
  96. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +670 -0
  97. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +1198 -0
  98. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +795 -0
  99. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +966 -0
  100. package/.claude/skills/cybersecurity/SKILL.md +409 -0
  101. package/.claude/skills/cybersecurity/resources/security-architecture.md +266 -0
  102. package/.claude/skills/database-engineering/SKILL.md +61 -0
  103. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +72 -0
  104. package/.claude/skills/database-engineering/resources/database-replication.md +63 -0
  105. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +70 -0
  106. package/.claude/skills/database-engineering/resources/query-optimization.md +68 -0
  107. package/.claude/skills/devsecops/SKILL.md +374 -0
  108. package/.claude/skills/devsecops/resources/ci-cd-security.md +204 -0
  109. package/.claude/skills/devsecops/resources/compliance-automation.md +530 -0
  110. package/.claude/skills/devsecops/resources/compliance-frameworks.md +2322 -0
  111. package/.claude/skills/devsecops/resources/container-security.md +915 -0
  112. package/.claude/skills/devsecops/resources/cspm-integration.md +1440 -0
  113. package/.claude/skills/devsecops/resources/policy-enforcement.md +619 -0
  114. package/.claude/skills/devsecops/resources/secrets-management.md +755 -0
  115. package/.claude/skills/devsecops/resources/security-monitoring.md +146 -0
  116. package/.claude/skills/devsecops/resources/security-scanning.md +887 -0
  117. package/.claude/skills/devsecops/resources/security-testing.md +203 -0
  118. package/.claude/skills/devsecops/resources/supply-chain-security.md +518 -0
  119. package/.claude/skills/devsecops/resources/vulnerability-management.md +481 -0
  120. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +177 -0
  121. package/.claude/skills/documentation-as-code/SKILL.md +323 -0
  122. package/.claude/skills/documentation-as-code/resources/api-documentation.md +90 -0
  123. package/.claude/skills/documentation-as-code/resources/changelog-management.md +79 -0
  124. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +44 -0
  125. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +99 -0
  126. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +68 -0
  127. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +79 -0
  128. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +162 -0
  129. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +77 -0
  130. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +60 -0
  131. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +202 -0
  132. package/.claude/skills/engineering-management/SKILL.md +356 -0
  133. package/.claude/skills/engineering-management/resources/career-ladders.md +609 -0
  134. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +555 -0
  135. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +609 -0
  136. package/.claude/skills/engineering-management/resources/resource-planning.md +557 -0
  137. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +491 -0
  138. package/.claude/skills/engineering-management/resources/technical-interviews.md +474 -0
  139. package/.claude/skills/engineering-operations-management/SKILL.md +817 -0
  140. package/.claude/skills/error-tracking/SKILL.md +379 -0
  141. package/.claude/skills/frontend-dev-guidelines/SKILL.md +403 -0
  142. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
  143. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
  144. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
  145. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
  146. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
  147. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
  148. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +406 -0
  149. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
  150. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
  151. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
  152. package/.claude/skills/general-it-engineering/SKILL.md +393 -0
  153. package/.claude/skills/general-it-engineering/resources/asset-management.md +712 -0
  154. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +817 -0
  155. package/.claude/skills/general-it-engineering/resources/business-continuity.md +786 -0
  156. package/.claude/skills/general-it-engineering/resources/change-management.md +715 -0
  157. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +729 -0
  158. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +738 -0
  159. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +834 -0
  160. package/.claude/skills/general-it-engineering/resources/it-governance.md +753 -0
  161. package/.claude/skills/general-it-engineering/resources/itil-framework.md +503 -0
  162. package/.claude/skills/general-it-engineering/resources/service-management.md +669 -0
  163. package/.claude/skills/infrastructure-architecture/SKILL.md +328 -0
  164. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +505 -0
  165. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +528 -0
  166. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +453 -0
  167. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +773 -0
  168. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +499 -0
  169. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +501 -0
  170. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +535 -0
  171. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +512 -0
  172. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +608 -0
  173. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +562 -0
  174. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +538 -0
  175. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +489 -0
  176. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +1000 -0
  177. package/.claude/skills/infrastructure-strategy/SKILL.md +924 -0
  178. package/.claude/skills/network-engineering/SKILL.md +385 -0
  179. package/.claude/skills/network-engineering/resources/dns-management.md +738 -0
  180. package/.claude/skills/network-engineering/resources/load-balancing.md +820 -0
  181. package/.claude/skills/network-engineering/resources/network-architecture.md +546 -0
  182. package/.claude/skills/network-engineering/resources/network-security.md +921 -0
  183. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +749 -0
  184. package/.claude/skills/network-engineering/resources/routing-switching.md +373 -0
  185. package/.claude/skills/network-engineering/resources/sdn-networking.md +695 -0
  186. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +777 -0
  187. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +444 -0
  188. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +672 -0
  189. package/.claude/skills/observability-engineering/SKILL.md +101 -0
  190. package/.claude/skills/observability-engineering/resources/apm-tools.md +97 -0
  191. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +87 -0
  192. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +98 -0
  193. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +118 -0
  194. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +141 -0
  195. package/.claude/skills/observability-engineering/resources/opentelemetry.md +110 -0
  196. package/.claude/skills/platform-engineering/SKILL.md +555 -0
  197. package/.claude/skills/platform-engineering/resources/architecture-overview.md +600 -0
  198. package/.claude/skills/platform-engineering/resources/container-orchestration.md +916 -0
  199. package/.claude/skills/platform-engineering/resources/cost-optimization.md +634 -0
  200. package/.claude/skills/platform-engineering/resources/developer-platforms.md +670 -0
  201. package/.claude/skills/platform-engineering/resources/gitops-automation.md +650 -0
  202. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +778 -0
  203. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +708 -0
  204. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +602 -0
  205. package/.claude/skills/platform-engineering/resources/platform-security.md +711 -0
  206. package/.claude/skills/platform-engineering/resources/resource-management.md +592 -0
  207. package/.claude/skills/platform-engineering/resources/service-mesh.md +628 -0
  208. package/.claude/skills/release-engineering/SKILL.md +393 -0
  209. package/.claude/skills/release-engineering/resources/artifact-management.md +108 -0
  210. package/.claude/skills/release-engineering/resources/build-optimization.md +84 -0
  211. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +411 -0
  212. package/.claude/skills/release-engineering/resources/deployment-strategies.md +197 -0
  213. package/.claude/skills/release-engineering/resources/pipeline-security.md +62 -0
  214. package/.claude/skills/release-engineering/resources/progressive-delivery.md +83 -0
  215. package/.claude/skills/release-engineering/resources/release-automation.md +68 -0
  216. package/.claude/skills/release-engineering/resources/release-orchestration.md +77 -0
  217. package/.claude/skills/release-engineering/resources/rollback-strategies.md +66 -0
  218. package/.claude/skills/release-engineering/resources/versioning-strategies.md +59 -0
  219. package/.claude/skills/route-tester/SKILL.md +392 -0
  220. package/.claude/skills/skill-developer/ADVANCED.md +197 -0
  221. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
  222. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
  223. package/.claude/skills/skill-developer/SKILL.md +430 -0
  224. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
  225. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
  226. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
  227. package/.claude/skills/skill-rules.json +2940 -0
  228. package/.claude/skills/sre/SKILL.md +464 -0
  229. package/.claude/skills/sre/resources/alerting-best-practices.md +282 -0
  230. package/.claude/skills/sre/resources/capacity-planning.md +226 -0
  231. package/.claude/skills/sre/resources/chaos-engineering.md +193 -0
  232. package/.claude/skills/sre/resources/disaster-recovery.md +232 -0
  233. package/.claude/skills/sre/resources/incident-management.md +436 -0
  234. package/.claude/skills/sre/resources/observability-stack.md +240 -0
  235. package/.claude/skills/sre/resources/on-call-runbooks.md +167 -0
  236. package/.claude/skills/sre/resources/performance-optimization.md +108 -0
  237. package/.claude/skills/sre/resources/reliability-patterns.md +183 -0
  238. package/.claude/skills/sre/resources/slo-sli-sla.md +464 -0
  239. package/.claude/skills/sre/resources/toil-reduction.md +145 -0
  240. package/.claude/skills/systems-engineering/SKILL.md +648 -0
  241. package/.claude/skills/systems-engineering/resources/automation-patterns.md +771 -0
  242. package/.claude/skills/systems-engineering/resources/configuration-management.md +998 -0
  243. package/.claude/skills/systems-engineering/resources/linux-administration.md +672 -0
  244. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +982 -0
  245. package/.claude/skills/systems-engineering/resources/performance-tuning.md +871 -0
  246. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +482 -0
  247. package/.claude/skills/systems-engineering/resources/security-hardening.md +739 -0
  248. package/.claude/skills/systems-engineering/resources/shell-scripting.md +915 -0
  249. package/.claude/skills/systems-engineering/resources/storage-management.md +628 -0
  250. package/.claude/skills/systems-engineering/resources/system-monitoring.md +787 -0
  251. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +753 -0
  252. package/.claude/skills/systems-engineering/resources/windows-administration.md +738 -0
  253. package/.claude/skills/technical-leadership/SKILL.md +728 -0
  254. package/CHANGELOG.md +90 -39
  255. package/README.md +94 -0
  256. package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
  257. package/backend/jest.config.js +59 -0
  258. package/backend/package-lock.json +6129 -0
  259. package/backend/package.json +16 -4
  260. package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
  261. package/backend/prisma/schema.prisma +33 -0
  262. package/backend/src/__tests__/core/DependencyService.test.js +336 -0
  263. package/backend/src/__tests__/core/UserService.test.js +875 -0
  264. package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
  265. package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
  266. package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
  267. package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
  268. package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
  269. package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
  270. package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
  271. package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
  272. package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
  273. package/backend/src/__tests__/secretsFilter.test.js +425 -0
  274. package/backend/src/__tests__/services/BotLifecycleService.test.js +411 -0
  275. package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
  276. package/backend/src/__tests__/services/CacheManager.test.js +125 -0
  277. package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
  278. package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
  279. package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
  280. package/backend/src/__tests__/setup.js +25 -0
  281. package/backend/src/api/routes/apiKeys.js +181 -0
  282. package/backend/src/api/routes/bots.js +49 -7
  283. package/backend/src/api/routes/plugins.js +2 -1
  284. package/backend/src/api/routes/system.js +174 -0
  285. package/backend/src/container.js +82 -0
  286. package/backend/src/core/BotManager.js +142 -871
  287. package/backend/src/core/BotManager.old.js +1093 -0
  288. package/backend/src/core/BotProcess.js +1092 -850
  289. package/backend/src/core/BreakLoopSignal.js +8 -0
  290. package/backend/src/core/EventGraphManager.js +280 -193
  291. package/backend/src/core/GraphExecutionEngine.js +321 -928
  292. package/backend/src/core/MessageQueue.js +27 -6
  293. package/backend/src/core/NodeRegistry.js +37 -991
  294. package/backend/src/core/PluginManager.js +62 -12
  295. package/backend/src/core/PrismaService.js +32 -0
  296. package/backend/src/core/UserService.js +3 -3
  297. package/backend/src/core/__tests__/PrismaService.test.js +24 -0
  298. package/backend/src/core/commands/README.md +305 -0
  299. package/backend/src/core/commands/dev.js +13 -7
  300. package/backend/src/core/commands/ping.js +10 -4
  301. package/backend/src/core/commands/whois.js +63 -0
  302. package/backend/src/core/config/validation.js +27 -0
  303. package/backend/src/core/constants/graphTypes.js +21 -0
  304. package/backend/src/core/node-registries/actions.js +132 -0
  305. package/backend/src/core/node-registries/arrays.js +137 -0
  306. package/backend/src/core/node-registries/bot.js +23 -0
  307. package/backend/src/core/node-registries/data.js +290 -0
  308. package/backend/src/core/node-registries/debug.js +26 -0
  309. package/backend/src/core/node-registries/events.js +187 -0
  310. package/backend/src/core/node-registries/flow.js +139 -0
  311. package/backend/src/core/node-registries/logic.js +45 -0
  312. package/backend/src/core/node-registries/math.js +42 -0
  313. package/backend/src/core/node-registries/objects.js +98 -0
  314. package/backend/src/core/node-registries/strings.js +153 -0
  315. package/backend/src/core/node-registries/time.js +113 -0
  316. package/backend/src/core/node-registries/users.js +79 -0
  317. package/backend/src/core/nodes/actions/bot_look_at.js +36 -0
  318. package/backend/src/core/nodes/actions/bot_set_variable.js +32 -0
  319. package/backend/src/core/nodes/actions/http_request.js +98 -0
  320. package/backend/src/core/nodes/actions/send_log.js +28 -0
  321. package/backend/src/core/nodes/actions/send_message.js +32 -0
  322. package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
  323. package/backend/src/core/nodes/arrays/add_element.js +23 -0
  324. package/backend/src/core/nodes/arrays/contains.js +40 -0
  325. package/backend/src/core/nodes/arrays/find_index.js +23 -0
  326. package/backend/src/core/nodes/arrays/get_by_index.js +23 -0
  327. package/backend/src/core/nodes/arrays/get_next.js +35 -0
  328. package/backend/src/core/nodes/arrays/get_random_element.js +32 -0
  329. package/backend/src/core/nodes/arrays/remove_by_index.js +30 -0
  330. package/backend/src/core/nodes/bot/get_position.js +20 -0
  331. package/backend/src/core/nodes/data/array_literal.js +31 -0
  332. package/backend/src/core/nodes/data/boolean_literal.js +21 -0
  333. package/backend/src/core/nodes/data/cast.js +42 -0
  334. package/backend/src/core/nodes/data/datetime_literal.js +27 -0
  335. package/backend/src/core/nodes/data/entity_info.js +69 -0
  336. package/backend/src/core/nodes/data/get_argument.js +23 -0
  337. package/backend/src/core/nodes/data/get_bot_look.js +14 -0
  338. package/backend/src/core/nodes/data/get_entity_field.js +18 -0
  339. package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
  340. package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
  341. package/backend/src/core/nodes/data/get_server_players.js +18 -0
  342. package/backend/src/core/nodes/data/get_user_field.js +40 -0
  343. package/backend/src/core/nodes/data/get_variable.js +23 -0
  344. package/backend/src/core/nodes/data/length.js +25 -0
  345. package/backend/src/core/nodes/data/make_object.js +31 -0
  346. package/backend/src/core/nodes/data/number_literal.js +21 -0
  347. package/backend/src/core/nodes/data/string_literal.js +34 -0
  348. package/backend/src/core/nodes/data/type_check.js +53 -0
  349. package/backend/src/core/nodes/debug/log.js +16 -0
  350. package/backend/src/core/nodes/flow/branch.js +15 -0
  351. package/backend/src/core/nodes/flow/break.js +14 -0
  352. package/backend/src/core/nodes/flow/delay.js +43 -0
  353. package/backend/src/core/nodes/flow/for_each.js +39 -0
  354. package/backend/src/core/nodes/flow/sequence.js +16 -0
  355. package/backend/src/core/nodes/flow/switch.js +47 -0
  356. package/backend/src/core/nodes/flow/while.js +64 -0
  357. package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
  358. package/backend/src/core/nodes/logic/compare.js +33 -0
  359. package/backend/src/core/nodes/logic/operation.js +35 -0
  360. package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
  361. package/backend/src/core/nodes/math/operation.js +31 -0
  362. package/backend/src/core/nodes/math/random_number.js +43 -0
  363. package/backend/src/core/nodes/objects/create.js +40 -0
  364. package/backend/src/core/nodes/objects/delete.js +26 -0
  365. package/backend/src/core/nodes/objects/get.js +23 -0
  366. package/backend/src/core/nodes/objects/has_key.js +30 -0
  367. package/backend/src/core/nodes/objects/set.js +27 -0
  368. package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
  369. package/backend/src/core/nodes/strings/concat.js +27 -0
  370. package/backend/src/core/nodes/strings/contains.js +41 -0
  371. package/backend/src/core/nodes/strings/ends_with.js +43 -0
  372. package/backend/src/core/nodes/strings/equals.js +36 -0
  373. package/backend/src/core/nodes/strings/length.js +36 -0
  374. package/backend/src/core/nodes/strings/matches.js +39 -0
  375. package/backend/src/core/nodes/strings/split.js +37 -0
  376. package/backend/src/core/nodes/strings/starts_with.js +43 -0
  377. package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
  378. package/backend/src/core/nodes/time/add.js +33 -0
  379. package/backend/src/core/nodes/time/compare.js +35 -0
  380. package/backend/src/core/nodes/time/diff.js +29 -0
  381. package/backend/src/core/nodes/time/format.js +32 -0
  382. package/backend/src/core/nodes/time/now.js +18 -0
  383. package/backend/src/core/nodes/users/check_blacklist.js +37 -0
  384. package/backend/src/core/nodes/users/get_groups.js +36 -0
  385. package/backend/src/core/nodes/users/get_permissions.js +36 -0
  386. package/backend/src/core/nodes/users/set_blacklist.js +37 -0
  387. package/backend/src/core/services/BotLifecycleService.js +596 -0
  388. package/backend/src/core/services/BotProcessManager.js +163 -0
  389. package/backend/src/core/services/CacheManager.js +111 -0
  390. package/backend/src/core/services/CommandExecutionService.js +351 -0
  391. package/backend/src/core/services/ResourceMonitorService.js +90 -0
  392. package/backend/src/core/services/TelemetryService.js +124 -0
  393. package/backend/src/core/services/ValidationService.js +132 -0
  394. package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
  395. package/backend/src/core/services.js +20 -5
  396. package/backend/src/core/system/CommandContext.js +84 -0
  397. package/backend/src/core/system/Transport.js +78 -0
  398. package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
  399. package/backend/src/core/utils/jsonParser.js +18 -0
  400. package/backend/src/core/utils/secretsFilter.js +262 -0
  401. package/backend/src/core/utils/variableParser.js +89 -0
  402. package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
  403. package/backend/src/core/validation/nodeSchemas.js +112 -0
  404. package/backend/src/lib/prisma.js +2 -4
  405. package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
  406. package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
  407. package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
  408. package/backend/src/real-time/botApi/handlers/index.js +43 -0
  409. package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
  410. package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
  411. package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
  412. package/backend/src/real-time/botApi/index.js +40 -0
  413. package/backend/src/real-time/botApi/middleware.js +79 -0
  414. package/backend/src/real-time/botApi/utils.js +54 -0
  415. package/backend/src/real-time/socketHandler.js +6 -2
  416. package/backend/src/repositories/BaseRepository.js +43 -0
  417. package/backend/src/repositories/BotRepository.js +42 -0
  418. package/backend/src/repositories/CommandRepository.js +53 -0
  419. package/backend/src/repositories/EventGraphRepository.js +40 -0
  420. package/backend/src/repositories/GroupRepository.js +69 -0
  421. package/backend/src/repositories/PermissionRepository.js +48 -0
  422. package/backend/src/repositories/PluginRepository.js +42 -0
  423. package/backend/src/repositories/ServerRepository.js +27 -0
  424. package/backend/src/repositories/UserRepository.js +48 -0
  425. package/backend/src/server.js +3 -0
  426. package/backend/src/test-refactor.js +85 -0
  427. package/frontend/dist/assets/index-CfTo92bP.css +1 -0
  428. package/frontend/dist/assets/index-CiFD5X9Z.js +8344 -0
  429. package/frontend/dist/index.html +2 -2
  430. package/frontend/package.json +1 -5
  431. package/package.json +2 -1
  432. package/frontend/dist/assets/index-BFd7YoAj.css +0 -1
  433. package/frontend/dist/assets/index-CMMutadc.js +0 -8352
  434. package/nul +0 -0
@@ -0,0 +1,557 @@
1
+ # Resource Planning and Capacity Management
2
+
3
+ **Practical guide to team sizing, capacity planning, and resource allocation for engineering managers.**
4
+
5
+ ---
6
+
7
+ ## Team Capacity Model
8
+
9
+ ### Realistic Capacity Per Engineer
10
+
11
+ ```
12
+ Nominal Hours per Week: 40 hours
13
+ ├── Meetings: -5 hours (stand-ups, 1-on-1s, planning, retros)
14
+ ├── Code reviews: -2 hours
15
+ ├── Context switching: -3 hours (interruptions, Slack, email)
16
+ ├── Operational work: -3 hours (on-call, incidents, support)
17
+ ├── Administrative: -2 hours (timesheets, reports, training)
18
+ └── Productive work: ~25-28 hours
19
+
20
+ Adjust for:
21
+ ├── Junior engineers (L3): 20-25 hours (more learning/mentorship time)
22
+ ├── Mid engineers (L4): 25-30 hours
23
+ ├── Senior engineers (L5): 25-30 hours (more meetings/reviews)
24
+ └── Staff+ engineers (L6+): 20-25 hours (more strategic work, less coding)
25
+
26
+ On-call impact:
27
+ ├── Primary on-call week: -5 to -10 hours (interruptions + fatigue)
28
+ └── Post-incident week: -3 to -5 hours (postmortem, fixes)
29
+ ```
30
+
31
+ **Key insight:** Plan for **25-30 productive hours per engineer per week**, not 40.
32
+
33
+ ---
34
+
35
+ ## Capacity Planning Formula
36
+
37
+ ### Basic Formula
38
+
39
+ ```
40
+ Team Capacity = Engineers × Productive Hours × Utilization Target
41
+
42
+ Example:
43
+ ├── Team size: 8 engineers
44
+ ├── Productive hours: 28 hours/week per engineer
45
+ ├── Utilization target: 80% (leave buffer for unknowns)
46
+ └── Weekly capacity: 8 × 28 × 0.80 = 179 hours/week
47
+
48
+ Story points alternative:
49
+ ├── Average velocity: 40 points/sprint (2 weeks)
50
+ ├── 80% utilization: 32 points available for planned work
51
+ └── Buffer: 8 points for unplanned work, bugs, tech debt
52
+ ```
53
+
54
+ ### Capacity Allocation
55
+
56
+ ```
57
+ Recommended allocation:
58
+ ├── Feature work (planned): 60-70%
59
+ ├── Tech debt & refactoring: 15-20%
60
+ ├── Bug fixes & support: 10-15%
61
+ ├── Learning & innovation: 5-10%
62
+ └── Operational work: Always running (included in hours above)
63
+
64
+ Adjust by team type:
65
+ ├── Product teams: 70% features, 15% tech debt, 15% bugs/support
66
+ ├── Platform teams: 50% new features, 30% tech debt, 20% support
67
+ └── SRE teams: 40% projects, 30% reliability, 30% on-call/incidents
68
+ ```
69
+
70
+ **Why this matters:** Over-allocating capacity leads to burnout, missed deadlines, and quality issues.
71
+
72
+ ---
73
+
74
+ ## When to Hire
75
+
76
+ ### Capacity Indicators
77
+
78
+ **You likely need to hire when:**
79
+ 1. **Sustained overload:** Team at >90% capacity for 3+ months
80
+ 2. **Chronic delays:** Consistently missing commitments
81
+ 3. **Burnout signals:** Engineers working nights/weekends regularly
82
+ 4. **No slack time:** Zero buffer for innovation or learning
83
+ 5. **Key person risk:** Single points of failure across critical systems
84
+ 6. **Strategic initiatives blocked:** Can't invest in important projects due to capacity
85
+
86
+ **Calculate hiring need:**
87
+ ```
88
+ Current capacity: 8 engineers × 28 hours × 80% = 179 hours/week
89
+ Current demand: 220 hours/week of work
90
+ Gap: 41 hours/week
91
+
92
+ Hiring need: 41 / (28 × 0.80) = ~1.8 engineers
93
+ Decision: Hire 2 engineers
94
+
95
+ Timeline:
96
+ ├── Start hiring: Now
97
+ ├── First hire start: +3 months (hiring lag)
98
+ ├── Second hire start: +4 months
99
+ └── Full productivity: +6-9 months (ramp time)
100
+ ```
101
+
102
+ ### When NOT to Hire
103
+
104
+ **Don't hire if:**
105
+ 1. **Temporary spike:** Capacity crunch is project-specific and time-bound
106
+ 2. **Process problems:** Inefficiencies that adding people won't fix
107
+ - Too many meetings
108
+ - Unclear requirements or changing priorities
109
+ - Poor tooling or developer experience
110
+ 3. **Unclear scope:** Don't know what new hire would work on
111
+ 4. **Budget constraints:** Can't support sustained headcount
112
+ 5. **Can optimize instead:** Can address capacity through automation or tooling
113
+
114
+ **Alternative solutions:**
115
+ - **Descope:** Cut low-priority work
116
+ - **Delegate:** Push work to appropriate teams
117
+ - **Automate:** Invest in tooling to reduce toil
118
+ - **Contractors:** Temporary capacity for time-bound projects
119
+
120
+ ---
121
+
122
+ ## Team Sizing Guidelines
123
+
124
+ ### Optimal Team Sizes
125
+
126
+ **General principles:**
127
+ - **Small teams (5-8):** Optimal for communication and autonomy
128
+ - **Medium teams (8-12):** Need more structure and coordination
129
+ - **Large teams (12+):** Should split into multiple teams
130
+
131
+ **Amazon "two-pizza rule":** If you can't feed the team with two pizzas, it's too large.
132
+
133
+ ### Sizing by Team Type
134
+
135
+ **Product Engineering Teams:**
136
+ ```
137
+ Team composition (6-8 engineers):
138
+ ├── 1 Senior/Staff engineer (tech lead)
139
+ ├── 3-4 Mid-level engineers
140
+ ├── 1-2 Junior engineers
141
+ └── 1 Engineering Manager (if >5 people)
142
+
143
+ Ratio: ~1 senior : 2-3 mid : 1 junior
144
+ ```
145
+
146
+ **Platform Engineering Teams:**
147
+ ```
148
+ Team composition (8-10 engineers):
149
+ ├── 1 Staff engineer (platform architect)
150
+ ├── 4-5 Senior engineers (specialists)
151
+ ├── 2-3 Mid-level engineers
152
+ ├── 1 Junior engineer (optional)
153
+ └── 1 Engineering Manager
154
+
155
+ Ratio: Higher senior weighting for platform complexity
156
+ ```
157
+
158
+ **SRE Teams:**
159
+ ```
160
+ Team composition (6-8 SREs):
161
+ ├── 1 Senior SRE (team lead)
162
+ ├── 3-4 SREs
163
+ ├── 1-2 Junior SREs
164
+ └── 1 SRE Manager
165
+
166
+ Support ratio: 1 SRE per 50-100 engineers (mature org)
167
+ On-call rotation: Need 6-8 people for sustainable rotation
168
+ ```
169
+
170
+ **Security Teams:**
171
+ ```
172
+ Team composition (6-8 engineers):
173
+ ├── 1 Security architect
174
+ ├── 2-3 AppSec engineers
175
+ ├── 2-3 Infrastructure security engineers
176
+ ├── 1 Compliance specialist
177
+ └── 1 Security manager
178
+
179
+ Support ratio: 1 security engineer per 50-75 engineers
180
+ ```
181
+
182
+ ### Manager Span of Control
183
+
184
+ **Individual contributor managers:**
185
+ - **Optimal:** 6-8 direct reports
186
+ - **Acceptable:** 5-10 direct reports
187
+ - **Too few:** <4 (unless special circumstances)
188
+ - **Too many:** >10 (quality of management suffers)
189
+
190
+ **Manager of managers:**
191
+ - **Optimal:** 4-6 direct reports (other managers)
192
+ - **Acceptable:** 3-7 direct reports
193
+ - **Too many:** >7 (can't support managers effectively)
194
+
195
+ ---
196
+
197
+ ## Org Scaling Patterns
198
+
199
+ ### 1-25 Engineers: Single Team
200
+
201
+ ```
202
+ Structure:
203
+ ├── VP Engineering / CTO
204
+ └── 1-3 teams (product + infra combined)
205
+
206
+ Characteristics:
207
+ ├── Generalists, everyone does everything
208
+ ├── Informal processes
209
+ └── Fast but chaotic
210
+
211
+ Challenges:
212
+ ├── No specialization
213
+ ├── Scaling technical decisions
214
+ └── Knowledge silos emerging
215
+ ```
216
+
217
+ ### 25-100 Engineers: Functional Teams
218
+
219
+ ```
220
+ Structure:
221
+ ├── VP Engineering
222
+ ├── Product Engineering (3-4 teams)
223
+ ├── Platform/Infrastructure (1-2 teams)
224
+ └── Mobile/Frontend (1-2 teams)
225
+
226
+ Characteristics:
227
+ ├── Functional specialization emerging
228
+ ├── More formal processes
229
+ └── Coordination challenges
230
+
231
+ Challenges:
232
+ ├── Cross-team dependencies
233
+ ├── Resource allocation conflicts
234
+ └── Need for technical program management
235
+ ```
236
+
237
+ ### 100-300 Engineers: Product + Platform Org
238
+
239
+ ```
240
+ Structure:
241
+ ├── CTO
242
+ ├── VP Product Engineering
243
+ │ └── Multiple product teams
244
+ ├── VP Platform Engineering
245
+ │ ├── Developer experience team
246
+ │ ├── SRE team
247
+ │ └── Data platform team
248
+ └── VP/Director Security
249
+ └── Security team
250
+
251
+ Characteristics:
252
+ ├── Clear separation: product vs platform
253
+ ├── Platform as internal product
254
+ └── Enabling teams model
255
+
256
+ Challenges:
257
+ ├── Platform adoption (not mandated)
258
+ ├── Balancing product vs platform investment
259
+ └── Avoiding ivory tower platforms
260
+ ```
261
+
262
+ ### 300+ Engineers: Scaled Org
263
+
264
+ ```
265
+ Structure:
266
+ ├── CTO
267
+ ├── VP Product Engineering (multiple VPs by domain)
268
+ │ ├── Payments org (50 engineers)
269
+ │ ├── Growth org (40 engineers)
270
+ │ └── Core product org (60 engineers)
271
+ ├── VP Platform Engineering
272
+ │ ├── Developer experience (20 engineers)
273
+ │ ├── Data platform (15 engineers)
274
+ │ └── ML platform (10 engineers)
275
+ ├── VP SRE & Operations
276
+ │ ├── Production SRE (15 engineers)
277
+ │ ├── Observability (8 engineers)
278
+ │ └── Incident management (5 engineers)
279
+ └── VP Security / CISO
280
+ ├── AppSec (10 engineers)
281
+ ├── Infrastructure security (8 engineers)
282
+ └── Compliance (5 engineers)
283
+
284
+ Characteristics:
285
+ ├── Multiple layers of management
286
+ ├── Specialized organizations
287
+ └── Formal processes and governance
288
+
289
+ Challenges:
290
+ ├── Communication and alignment
291
+ ├── Avoiding silos and bureaucracy
292
+ └── Maintaining engineering culture
293
+ ```
294
+
295
+ ---
296
+
297
+ ## Headcount Planning
298
+
299
+ ### Annual Planning Process
300
+
301
+ **Timeline (for calendar year planning):**
302
+ ```
303
+ Sept-Oct: Strategic planning
304
+ ├── Product roadmap for next year
305
+ ├── Technical initiatives and investments
306
+ ├── Org growth targets
307
+
308
+ Oct-Nov: Headcount requests
309
+ ├── Each org submits headcount needs
310
+ ├── Justification with capacity models
311
+ └── Prioritization across company
312
+
313
+ Nov-Dec: Budget approval
314
+ ├── Finance reviews and approves budget
315
+ ├── Headcount allocated to orgs
316
+ └── Hiring plan created
317
+
318
+ Jan-Dec: Execution
319
+ ├── Hire according to plan
320
+ ├── Quarterly check-ins and adjustments
321
+ └── Handle attrition and changes
322
+ ```
323
+
324
+ ### Headcount Request Template
325
+
326
+ ```
327
+ Team: Platform Engineering
328
+ Manager: [Your Name]
329
+ Current headcount: 8 engineers
330
+ Requested headcount: +3 engineers (total 11)
331
+
332
+ Justification:
333
+ 1. Capacity Gap
334
+ - Current capacity: 179 hours/week
335
+ - Current demand: 240 hours/week
336
+ - Gap: 61 hours/week (2.7 FTE equivalent)
337
+
338
+ 2. Strategic Initiatives
339
+ - Multi-region platform expansion (1 engineer, 6 months)
340
+ - Developer experience improvements (1 engineer, ongoing)
341
+ - Observability platform rebuild (1 engineer, 9 months)
342
+
343
+ 3. Risk Mitigation
344
+ - Key person risk on K8s (single expert)
345
+ - On-call rotation understaffed (need 8 for sustainable rotation)
346
+
347
+ Proposed hires:
348
+ ├── Q1: Senior Platform Engineer (Kubernetes focus)
349
+ ├── Q2: Mid-level Platform Engineer (CI/CD focus)
350
+ └── Q3: Mid-level Platform Engineer (Observability focus)
351
+
352
+ Impact if not approved:
353
+ ├── Can't invest in developer experience (productivity loss)
354
+ ├── Multi-region delayed by 6-9 months (revenue impact)
355
+ └── Burnout risk on team (retention issue)
356
+
357
+ Cost:
358
+ ├── Senior engineer: $200K total comp
359
+ ├── Mid-level (2): $150K × 2 = $300K total comp
360
+ └── Total: $500K annual cost
361
+
362
+ ROI:
363
+ ├── Developer productivity: Save 50 engineers × 2 hours/week = 5,000 hours/year
364
+ ├── Value: 5,000 hours × $100/hour = $500K savings
365
+ └── Break-even: Year 1
366
+ ```
367
+
368
+ ---
369
+
370
+ ## Resource Allocation Frameworks
371
+
372
+ ### 70-20-10 Model
373
+
374
+ ```
375
+ 70% Core Business (Sustaining)
376
+ ├── Feature development for current products
377
+ ├── Bug fixes and maintenance
378
+ └── Customer support and requests
379
+
380
+ 20% Adjacent Opportunities (Growing)
381
+ ├── New features in existing products
382
+ ├── Platform improvements
383
+ └── Developer experience investments
384
+
385
+ 10% New Bets (Exploring)
386
+ ├── R&D and prototypes
387
+ ├── New technologies
388
+ └── Innovation time
389
+
390
+ Adjust by company stage:
391
+ ├── Early stage: 80% core, 15% adjacent, 5% new
392
+ ├── Growth stage: 70% core, 20% adjacent, 10% new
393
+ └── Mature stage: 60% core, 25% adjacent, 15% new
394
+ ```
395
+
396
+ ### Priority-Based Allocation
397
+
398
+ ```
399
+ P0: Must-Have (40-50% capacity)
400
+ ├── Critical customer commitments
401
+ ├── Security and compliance requirements
402
+ └── Production reliability
403
+
404
+ P1: Should-Have (30-40% capacity)
405
+ ├── Planned features and roadmap
406
+ ├── Technical debt reduction
407
+ └── Developer productivity improvements
408
+
409
+ P2: Nice-to-Have (10-20% capacity)
410
+ ├── Experimental projects
411
+ ├── Learning and innovation
412
+ └── Process improvements
413
+
414
+ P3: Backlog (not planned)
415
+ ├── Everything else
416
+ └── Revisit quarterly
417
+ ```
418
+
419
+ ---
420
+
421
+ ## Contractor vs. Full-Time Employee
422
+
423
+ ### When to Use Contractors
424
+
425
+ **Good use cases:**
426
+ - **Time-bound projects:** Clear scope with definite end date
427
+ - **Specialized skills:** Need expertise your team lacks temporarily
428
+ - **Capacity spikes:** Temporary increase in workload
429
+ - **Prototyping:** Experiment before committing to full hire
430
+ - **Cost constraints:** Budget for contractors but not headcount
431
+
432
+ **Bad use cases:**
433
+ - **Core product work:** Critical to business, long-term ownership needed
434
+ - **Tribal knowledge:** Work requiring deep context of your systems
435
+ - **Team culture:** Building team cohesion and culture
436
+ - **Mentorship:** Growing junior engineers
437
+
438
+ ### Cost Comparison
439
+
440
+ ```
441
+ Full-Time Engineer (L4):
442
+ ├── Base salary: $150K
443
+ ├── Benefits (30%): $45K
444
+ ├── Equity: $30K/year (vesting)
445
+ ├── Overhead: $25K (office, equipment, etc.)
446
+ └── Total: $250K/year
447
+
448
+ Contractor (equivalent level):
449
+ ├── Hourly rate: $100-150/hour
450
+ ├── Annual (40 hours × 50 weeks): $200K-300K
451
+ ├── No benefits or equity
452
+ └── Total: $200K-300K/year
453
+
454
+ Break-even: ~1 year of full-time work
455
+ Decision: If need >1 year, hire full-time
456
+ ```
457
+
458
+ ---
459
+
460
+ ## Productivity Metrics
461
+
462
+ ### Team Health Metrics
463
+
464
+ **Leading indicators (predict problems):**
465
+ - **Capacity utilization:** Target 70-80% (not 100%)
466
+ - **Cycle time:** Time from commit to production (target <1 day)
467
+ - **PR review time:** Time to first review (target <4 hours)
468
+ - **Deploy frequency:** How often deploy to production (target daily+)
469
+ - **Change failure rate:** % of deploys causing incidents (target <15%)
470
+
471
+ **Lagging indicators (measure outcomes):**
472
+ - **Velocity:** Story points completed per sprint (track trend)
473
+ - **Throughput:** Features shipped per quarter
474
+ - **Quality:** Bugs per feature, incident rate
475
+ - **Availability:** Uptime and reliability (SLO compliance)
476
+
477
+ **People metrics:**
478
+ - **Attrition:** <10% annual (healthy)
479
+ - **eNPS:** Employee net promoter score (>30 is good)
480
+ - **1-on-1 frequency:** Weekly 30-min minimum
481
+ - **Growth:** Promotion rate, skill development
482
+
483
+ ### What NOT to Measure
484
+
485
+ **Anti-patterns:**
486
+ - ❌ Lines of code written
487
+ - ❌ Number of commits
488
+ - ❌ Hours worked
489
+ - ❌ Number of tickets closed
490
+ - ❌ Individual velocity/output
491
+
492
+ **Why:** These metrics incentivize wrong behaviors and don't correlate with value delivered.
493
+
494
+ ---
495
+
496
+ ## Resource Planning Tools
497
+
498
+ ### Capacity Planning Spreadsheet
499
+
500
+ ```
501
+ Team Capacity Model (weekly):
502
+
503
+ Engineer | Level | Productive Hours | Utilization | Available Capacity
504
+ ---------|-------|------------------|-------------|-------------------
505
+ Alice | L5 | 25 | 80% | 20 hours
506
+ Bob | L4 | 28 | 80% | 22.4 hours
507
+ Carol | L4 | 28 | 80% | 22.4 hours
508
+ Dave | L3 | 23 | 80% | 18.4 hours
509
+ ... | ... | ... | ... | ...
510
+ TOTAL | - | - | - | 167 hours/week
511
+
512
+ Committed work:
513
+ ├── Feature A: 40 hours
514
+ ├── Feature B: 60 hours
515
+ ├── Tech debt: 30 hours
516
+ ├── Support/ops: 25 hours
517
+ └── Total: 155 hours
518
+
519
+ Buffer: 167 - 155 = 12 hours (7% slack) ✅ Healthy
520
+ ```
521
+
522
+ ### Project Estimation
523
+
524
+ ```
525
+ Feature estimation:
526
+ ├── Break down into tasks
527
+ ├── Estimate each task (hours or points)
528
+ ├── Add buffer (30-50% for unknowns)
529
+ ├── Account for dependencies and blockers
530
+ └── Reality check: Does timeline make sense?
531
+
532
+ Example:
533
+ ├── API implementation: 20 hours
534
+ ├── Frontend work: 30 hours
535
+ ├── Testing: 15 hours
536
+ ├── Documentation: 5 hours
537
+ ├── Subtotal: 70 hours
538
+ ├── Buffer (40%): 28 hours
539
+ └── Total estimate: 98 hours (~3-4 weeks with interruptions)
540
+ ```
541
+
542
+ ---
543
+
544
+ ## Key Takeaways for Managers
545
+
546
+ 1. **Plan for 25-30 productive hours** per engineer per week, not 40
547
+ 2. **Target 70-80% utilization** - leave buffer for unknowns
548
+ 3. **Hire when sustained overload** (>90% capacity for 3+ months)
549
+ 4. **Optimize before hiring** - fix process issues first
550
+ 5. **Keep teams small** (5-8 people) for effectiveness
551
+ 6. **Balance allocation:** 70% features, 20% tech debt, 10% innovation
552
+ 7. **Track leading indicators** - capacity, cycle time, deploy frequency
553
+ 8. **Don't measure individuals** - focus on team outcomes
554
+ 9. **Plan annually, adjust quarterly** - be flexible
555
+ 10. **Justify with data** - use capacity models for headcount requests
556
+
557
+ Resource planning is about enabling sustainable delivery, not maximizing utilization.