blockmine 1.24.0 → 1.27.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 (476) hide show
  1. package/CHANGELOG.md +76 -1
  2. package/README.en.md +427 -0
  3. package/README.md +40 -0
  4. package/backend/package.json +2 -2
  5. package/backend/prisma/migrations/20260328173000_add_plugin_source_ref/migration.sql +2 -0
  6. package/backend/prisma/migrations/migration_lock.toml +2 -2
  7. package/backend/prisma/schema.prisma +2 -0
  8. package/backend/src/ai/plugin-assistant-system-prompt.md +664 -5
  9. package/backend/src/api/routes/apiKeys.js +8 -0
  10. package/backend/src/api/routes/bots.js +271 -9
  11. package/backend/src/api/routes/eventGraphs.js +151 -1
  12. package/backend/src/api/routes/health.js +38 -0
  13. package/backend/src/api/routes/nodeRegistry.js +63 -0
  14. package/backend/src/api/routes/plugins.js +254 -29
  15. package/backend/src/api/routes/servers.js +14 -2
  16. package/backend/src/container.js +11 -8
  17. package/backend/src/core/BotCommandLoader.js +161 -0
  18. package/backend/src/core/BotConnection.js +125 -0
  19. package/backend/src/core/BotEventHandlers.js +234 -0
  20. package/backend/src/core/BotIPCHandler.js +445 -0
  21. package/backend/src/core/BotManager.js +15 -7
  22. package/backend/src/core/BotProcess.js +169 -140
  23. package/backend/src/core/EventGraphManager.js +7 -3
  24. package/backend/src/core/GraphDebugHandler.js +229 -0
  25. package/backend/src/core/GraphDebugIPC.js +117 -0
  26. package/backend/src/core/GraphExecutionEngine.js +545 -978
  27. package/backend/src/core/GraphTraversal.js +80 -0
  28. package/backend/src/core/GraphValidation.js +73 -0
  29. package/backend/src/core/NodeDefinition.js +138 -0
  30. package/backend/src/core/NodeRegistry.js +153 -141
  31. package/backend/src/core/PluginLoader.js +83 -3
  32. package/backend/src/core/PluginManager.js +346 -35
  33. package/backend/src/core/RewindSignal.js +9 -0
  34. package/backend/src/core/config/ConfigValidator.js +72 -0
  35. package/backend/src/core/config/FeatureFlags.js +52 -0
  36. package/backend/src/core/config/__tests__/ConfigValidator.test.js +232 -0
  37. package/backend/src/core/domain/entities/Bot.js +39 -0
  38. package/backend/src/core/domain/entities/Command.js +41 -0
  39. package/backend/src/core/domain/entities/EventGraph.js +39 -0
  40. package/backend/src/core/domain/entities/Plugin.js +45 -0
  41. package/backend/src/core/domain/entities/User.js +40 -0
  42. package/backend/src/core/domain/services/DependencyResolver.js +168 -0
  43. package/backend/src/core/domain/services/GraphValidator.js +117 -0
  44. package/backend/src/core/domain/services/PermissionChecker.js +34 -0
  45. package/backend/src/core/domain/services/__tests__/DependencyResolver.test.js +126 -0
  46. package/backend/src/core/domain/valueObjects/BotConfig.js +27 -0
  47. package/backend/src/core/domain/valueObjects/DependencyGraph.js +86 -0
  48. package/backend/src/core/domain/valueObjects/PluginManifest.js +36 -0
  49. package/backend/src/core/errors/BaseError.js +29 -0
  50. package/backend/src/core/errors/ErrorHandler.js +81 -0
  51. package/backend/src/core/errors/__tests__/ErrorHandler.test.js +188 -0
  52. package/backend/src/core/errors/index.js +68 -0
  53. package/backend/src/core/infrastructure/BatchingUtility.js +66 -0
  54. package/backend/src/core/infrastructure/CircuitBreaker.js +103 -0
  55. package/backend/src/core/infrastructure/ConnectionPool.js +81 -0
  56. package/backend/src/core/infrastructure/RateLimiter.js +64 -0
  57. package/backend/src/core/infrastructure/__tests__/BatchingUtility.test.js +86 -0
  58. package/backend/src/core/infrastructure/__tests__/CircuitBreaker.test.js +156 -0
  59. package/backend/src/core/infrastructure/__tests__/ConnectionPool.test.js +146 -0
  60. package/backend/src/core/infrastructure/__tests__/RateLimiter.test.js +171 -0
  61. package/backend/src/core/ipc/botApiFactory.js +72 -0
  62. package/backend/src/core/ipc/ipcMessageTypes.js +115 -0
  63. package/backend/src/core/logging/AuditLogger.js +61 -0
  64. package/backend/src/core/logging/StructuredLogger.js +80 -0
  65. package/backend/src/core/logging/__tests__/StructuredLogger.test.js +213 -0
  66. package/backend/src/core/logging/index.js +7 -0
  67. package/backend/src/core/metrics/MetricsCollector.js +104 -0
  68. package/backend/src/core/metrics/__tests__/MetricsCollector.test.js +131 -0
  69. package/backend/src/core/node-registries/actionsNodes.js +191 -0
  70. package/backend/src/core/node-registries/arraysNodes.js +152 -0
  71. package/backend/src/core/node-registries/botNodes.js +48 -0
  72. package/backend/src/core/node-registries/containerNodes.js +141 -0
  73. package/backend/src/core/node-registries/dataNodes.js +284 -0
  74. package/backend/src/core/node-registries/debugNodes.js +23 -0
  75. package/backend/src/core/node-registries/eventsNodes.js +223 -0
  76. package/backend/src/core/node-registries/flowNodes.js +151 -0
  77. package/backend/src/core/node-registries/furnaceNodes.js +123 -0
  78. package/backend/src/core/node-registries/index.js +108 -0
  79. package/backend/src/core/node-registries/inventory.js +102 -106
  80. package/backend/src/core/node-registries/logicNodes.js +54 -0
  81. package/backend/src/core/node-registries/mathNodes.js +38 -0
  82. package/backend/src/core/node-registries/navigationNodes.js +109 -0
  83. package/backend/src/core/node-registries/objectsNodes.js +90 -0
  84. package/backend/src/core/node-registries/stringsNodes.js +165 -0
  85. package/backend/src/core/node-registries/timeNodes.js +105 -0
  86. package/backend/src/core/node-registries/typeNodes.js +22 -0
  87. package/backend/src/core/node-registries/usersNodes.js +126 -0
  88. package/backend/src/core/nodes/arrays/shuffle.js +14 -0
  89. package/backend/src/core/nodes/bot/get_name.js +8 -0
  90. package/backend/src/core/nodes/bot/stop_bot.js +5 -0
  91. package/backend/src/core/nodes/container/open.js +101 -111
  92. package/backend/src/core/nodes/data/store_read.js +26 -0
  93. package/backend/src/core/nodes/data/store_write.js +23 -0
  94. package/backend/src/core/nodes/event/call_event.js +31 -0
  95. package/backend/src/core/nodes/event/custom_event.js +8 -0
  96. package/backend/src/core/nodes/flow/timer.js +35 -0
  97. package/backend/src/core/nodes/inventory/drop.js +73 -65
  98. package/backend/src/core/nodes/inventory/equip.js +54 -45
  99. package/backend/src/core/nodes/inventory/select_slot.js +48 -46
  100. package/backend/src/core/nodes/navigation/follow.js +54 -51
  101. package/backend/src/core/nodes/navigation/go_to.js +41 -53
  102. package/backend/src/core/nodes/navigation/go_to_entity.js +65 -69
  103. package/backend/src/core/nodes/navigation/go_to_player.js +65 -70
  104. package/backend/src/core/nodes/navigation/stop.js +17 -26
  105. package/backend/src/core/nodes/users/add_to_group.js +24 -0
  106. package/backend/src/core/nodes/users/check_permission.js +26 -0
  107. package/backend/src/core/nodes/users/remove_from_group.js +24 -0
  108. package/backend/src/core/services/BotIPCMessageRouter.js +337 -0
  109. package/backend/src/core/services/BotLifecycleService.js +43 -450
  110. package/backend/src/core/services/CacheManager.js +83 -23
  111. package/backend/src/core/services/CrashRestartManager.js +42 -0
  112. package/backend/src/core/services/DebugSessionManager.js +114 -12
  113. package/backend/src/core/services/EventGraphService.js +69 -0
  114. package/backend/src/core/services/MinecraftBotManager.js +9 -1
  115. package/backend/src/core/services/PluginManagementService.js +84 -0
  116. package/backend/src/core/services/TestModeContext.js +65 -0
  117. package/backend/src/core/services/__tests__/CacheManager.test.js +168 -0
  118. package/backend/src/core/services.js +1 -11
  119. package/backend/src/core/validation/InputValidator.js +167 -0
  120. package/backend/src/core/validation/__tests__/InputValidator.test.js +296 -0
  121. package/backend/src/real-time/botApi/index.js +1 -1
  122. package/backend/src/real-time/socketHandler.js +26 -0
  123. package/backend/src/server.js +21 -6
  124. package/frontend/dist/assets/browser-ponyfill-D8y0Ty7C.js +2 -0
  125. package/frontend/dist/assets/index-CFJLS0dk.css +32 -0
  126. package/frontend/dist/assets/index-D91UGNMG.js +11260 -0
  127. package/frontend/dist/flags/en.svg +32 -0
  128. package/frontend/dist/flags/ru.svg +5 -0
  129. package/frontend/dist/index.html +2 -2
  130. package/frontend/dist/locales/en/admin.json +100 -0
  131. package/frontend/dist/locales/en/api-keys.json +58 -0
  132. package/frontend/dist/locales/en/bots.json +113 -0
  133. package/frontend/dist/locales/en/common.json +53 -0
  134. package/frontend/dist/locales/en/configuration.json +22 -0
  135. package/frontend/dist/locales/en/console.json +10 -0
  136. package/frontend/dist/locales/en/dashboard.json +85 -0
  137. package/frontend/dist/locales/en/dialogs.json +70 -0
  138. package/frontend/dist/locales/en/event-graphs.json +50 -0
  139. package/frontend/dist/locales/en/graph-store.json +70 -0
  140. package/frontend/dist/locales/en/login.json +36 -0
  141. package/frontend/dist/locales/en/management.json +192 -0
  142. package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
  143. package/frontend/dist/locales/en/nodes.json +1132 -0
  144. package/frontend/dist/locales/en/permissions.json +50 -0
  145. package/frontend/dist/locales/en/plugin-detail.json +69 -0
  146. package/frontend/dist/locales/en/plugins.json +329 -0
  147. package/frontend/dist/locales/en/proxies.json +81 -0
  148. package/frontend/dist/locales/en/servers.json +39 -0
  149. package/frontend/dist/locales/en/setup.json +19 -0
  150. package/frontend/dist/locales/en/sidebar.json +195 -0
  151. package/frontend/dist/locales/en/tasks.json +62 -0
  152. package/frontend/dist/locales/en/visual-editor.json +418 -0
  153. package/frontend/dist/locales/en/websocket.json +86 -0
  154. package/frontend/dist/locales/ru/admin.json +100 -0
  155. package/frontend/dist/locales/ru/api-keys.json +58 -0
  156. package/frontend/dist/locales/ru/bots.json +113 -0
  157. package/frontend/dist/locales/ru/common.json +49 -0
  158. package/frontend/dist/locales/ru/configuration.json +22 -0
  159. package/frontend/dist/locales/ru/console.json +10 -0
  160. package/frontend/dist/locales/ru/dashboard.json +85 -0
  161. package/frontend/dist/locales/ru/dialogs.json +70 -0
  162. package/frontend/dist/locales/ru/event-graphs.json +50 -0
  163. package/frontend/dist/locales/ru/graph-store.json +70 -0
  164. package/frontend/dist/locales/ru/login.json +36 -0
  165. package/frontend/dist/locales/ru/management.json +192 -0
  166. package/frontend/dist/locales/ru/minecraft-viewer.json +30 -0
  167. package/frontend/dist/locales/ru/nodes.json +1131 -0
  168. package/frontend/dist/locales/ru/permissions.json +50 -0
  169. package/frontend/dist/locales/ru/plugin-detail.json +49 -0
  170. package/frontend/dist/locales/ru/plugins.json +209 -0
  171. package/frontend/dist/locales/ru/proxies.json +81 -0
  172. package/frontend/dist/locales/ru/servers.json +39 -0
  173. package/frontend/dist/locales/ru/setup.json +19 -0
  174. package/frontend/dist/locales/ru/sidebar.json +195 -0
  175. package/frontend/dist/locales/ru/tasks.json +62 -0
  176. package/frontend/dist/locales/ru/visual-editor.json +420 -0
  177. package/frontend/dist/locales/ru/websocket.json +86 -0
  178. package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
  179. package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
  180. package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
  181. package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
  182. package/frontend/package.json +6 -0
  183. package/nul +12 -0
  184. package/package.json +3 -3
  185. package/screen/3dviewer.png +0 -0
  186. package/screen/console.png +0 -0
  187. package/screen/dashboard.png +0 -0
  188. package/screen/graph_collabe.png +0 -0
  189. package/screen/graph_live_debug.png +0 -0
  190. package/screen/language_selector.png +0 -0
  191. package/screen/management_command.png +0 -0
  192. package/screen/node_debug_trace.png +0 -0
  193. package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
  194. package/screen/websocket.png +0 -0
  195. 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
  196. 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
  197. package/.claude/agents/README.md +0 -469
  198. package/.claude/agents/auth-route-debugger.md +0 -118
  199. package/.claude/agents/auth-route-tester.md +0 -93
  200. package/.claude/agents/auto-error-resolver.md +0 -97
  201. package/.claude/agents/build-optimizer.md +0 -236
  202. package/.claude/agents/code-architect.md +0 -34
  203. package/.claude/agents/code-architecture-reviewer.md +0 -83
  204. package/.claude/agents/code-explorer.md +0 -51
  205. package/.claude/agents/code-refactor-master.md +0 -94
  206. package/.claude/agents/code-reviewer.md +0 -46
  207. package/.claude/agents/cost-optimizer.md +0 -134
  208. package/.claude/agents/deployment-orchestrator.md +0 -113
  209. package/.claude/agents/documentation-architect.md +0 -82
  210. package/.claude/agents/frontend-error-fixer.md +0 -77
  211. package/.claude/agents/iac-code-generator.md +0 -71
  212. package/.claude/agents/incident-responder.md +0 -346
  213. package/.claude/agents/infrastructure-architect.md +0 -31
  214. package/.claude/agents/kubernetes-specialist.md +0 -56
  215. package/.claude/agents/migration-planner.md +0 -181
  216. package/.claude/agents/network-architect.md +0 -196
  217. package/.claude/agents/plan-reviewer.md +0 -52
  218. package/.claude/agents/refactor-planner.md +0 -63
  219. package/.claude/agents/security-scanner.md +0 -102
  220. package/.claude/agents/web-research-specialist.md +0 -78
  221. package/.claude/commands/cost-analysis.md +0 -315
  222. package/.claude/commands/dev-docs-update.md +0 -55
  223. package/.claude/commands/dev-docs.md +0 -51
  224. package/.claude/commands/feature-dev.md +0 -125
  225. package/.claude/commands/incident-debug.md +0 -247
  226. package/.claude/commands/infra-plan.md +0 -81
  227. package/.claude/commands/migration-plan.md +0 -478
  228. package/.claude/commands/route-research-for-testing.md +0 -37
  229. package/.claude/commands/security-review.md +0 -66
  230. package/.claude/hooks/CONFIG.md +0 -448
  231. package/.claude/hooks/README.md +0 -163
  232. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
  233. package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
  234. package/.claude/hooks/add-skill-activation-banners.ts +0 -132
  235. package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
  236. package/.claude/hooks/error-handling-reminder.sh +0 -12
  237. package/.claude/hooks/error-handling-reminder.ts +0 -222
  238. package/.claude/hooks/k8s-manifest-validator.sh +0 -56
  239. package/.claude/hooks/package-lock.json +0 -556
  240. package/.claude/hooks/package.json +0 -16
  241. package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
  242. package/.claude/hooks/post-tool-use-tracker.sh +0 -183
  243. package/.claude/hooks/security-policy-check.sh +0 -247
  244. package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
  245. package/.claude/hooks/skill-activation-prompt.sh +0 -10
  246. package/.claude/hooks/skill-activation-prompt.ts +0 -141
  247. package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
  248. package/.claude/hooks/terraform-validator.sh +0 -53
  249. package/.claude/hooks/test-input.json +0 -7
  250. package/.claude/hooks/test-skill-activation.ts +0 -427
  251. package/.claude/hooks/trigger-build-resolver.sh +0 -79
  252. package/.claude/hooks/tsc-check.sh +0 -173
  253. package/.claude/hooks/tsconfig.json +0 -19
  254. package/.claude/settings.json +0 -59
  255. package/.claude/settings.local.json +0 -67
  256. package/.claude/skills/README.md +0 -507
  257. package/.claude/skills/api-engineering/SKILL.md +0 -63
  258. package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
  259. package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
  260. package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
  261. package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
  262. package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
  263. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
  264. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
  265. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
  266. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
  267. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
  268. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
  269. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
  270. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
  271. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
  272. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
  273. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
  274. package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
  275. package/.claude/skills/build-engineering/SKILL.md +0 -431
  276. package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
  277. package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
  278. package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
  279. package/.claude/skills/build-engineering/resources/build-security.md +0 -95
  280. package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
  281. package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
  282. package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
  283. package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
  284. package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
  285. package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
  286. package/.claude/skills/cloud-engineering/SKILL.md +0 -675
  287. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
  288. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
  289. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
  290. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
  291. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
  292. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
  293. package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
  294. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
  295. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
  296. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
  297. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
  298. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
  299. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
  300. package/.claude/skills/cybersecurity/SKILL.md +0 -409
  301. package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
  302. package/.claude/skills/database-engineering/SKILL.md +0 -61
  303. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
  304. package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
  305. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
  306. package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
  307. package/.claude/skills/devsecops/SKILL.md +0 -374
  308. package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
  309. package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
  310. package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
  311. package/.claude/skills/devsecops/resources/container-security.md +0 -915
  312. package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
  313. package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
  314. package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
  315. package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
  316. package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
  317. package/.claude/skills/devsecops/resources/security-testing.md +0 -203
  318. package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
  319. package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
  320. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
  321. package/.claude/skills/documentation-as-code/SKILL.md +0 -323
  322. package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
  323. package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
  324. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
  325. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
  326. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
  327. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
  328. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
  329. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
  330. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
  331. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
  332. package/.claude/skills/engineering-management/SKILL.md +0 -356
  333. package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
  334. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
  335. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
  336. package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
  337. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
  338. package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
  339. package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
  340. package/.claude/skills/error-tracking/SKILL.md +0 -379
  341. package/.claude/skills/frontend-design/SKILL.md +0 -42
  342. package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
  343. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
  344. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
  345. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
  346. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
  347. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
  348. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
  349. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
  350. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
  351. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
  352. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
  353. package/.claude/skills/general-it-engineering/SKILL.md +0 -393
  354. package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
  355. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
  356. package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
  357. package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
  358. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
  359. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
  360. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
  361. package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
  362. package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
  363. package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
  364. package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
  365. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
  366. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
  367. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
  368. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
  369. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
  370. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
  371. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
  372. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
  373. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
  374. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
  375. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
  376. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
  377. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
  378. package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
  379. package/.claude/skills/network-engineering/SKILL.md +0 -385
  380. package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
  381. package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
  382. package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
  383. package/.claude/skills/network-engineering/resources/network-security.md +0 -921
  384. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
  385. package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
  386. package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
  387. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
  388. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
  389. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
  390. package/.claude/skills/node-development/SKILL.md +0 -317
  391. package/.claude/skills/observability-engineering/SKILL.md +0 -101
  392. package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
  393. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
  394. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
  395. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
  396. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
  397. package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
  398. package/.claude/skills/platform-engineering/SKILL.md +0 -555
  399. package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
  400. package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
  401. package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
  402. package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
  403. package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
  404. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
  405. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
  406. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
  407. package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
  408. package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
  409. package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
  410. package/.claude/skills/release-engineering/SKILL.md +0 -393
  411. package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
  412. package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
  413. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
  414. package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
  415. package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
  416. package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
  417. package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
  418. package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
  419. package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
  420. package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
  421. package/.claude/skills/route-tester/SKILL.md +0 -392
  422. package/.claude/skills/skill-developer/ADVANCED.md +0 -197
  423. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
  424. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
  425. package/.claude/skills/skill-developer/SKILL.md +0 -430
  426. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
  427. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
  428. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
  429. package/.claude/skills/skill-rules.json +0 -2989
  430. package/.claude/skills/sre/SKILL.md +0 -464
  431. package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
  432. package/.claude/skills/sre/resources/capacity-planning.md +0 -226
  433. package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
  434. package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
  435. package/.claude/skills/sre/resources/incident-management.md +0 -436
  436. package/.claude/skills/sre/resources/observability-stack.md +0 -240
  437. package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
  438. package/.claude/skills/sre/resources/performance-optimization.md +0 -108
  439. package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
  440. package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
  441. package/.claude/skills/sre/resources/toil-reduction.md +0 -145
  442. package/.claude/skills/systems-engineering/SKILL.md +0 -648
  443. package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
  444. package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
  445. package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
  446. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
  447. package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
  448. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
  449. package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
  450. package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
  451. package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
  452. package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
  453. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
  454. package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
  455. package/.claude/skills/technical-leadership/SKILL.md +0 -728
  456. package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
  457. package/backend/package-lock.json +0 -6801
  458. package/backend/src/core/node-registries/actions.js +0 -202
  459. package/backend/src/core/node-registries/arrays.js +0 -155
  460. package/backend/src/core/node-registries/bot.js +0 -23
  461. package/backend/src/core/node-registries/container.js +0 -162
  462. package/backend/src/core/node-registries/data.js +0 -290
  463. package/backend/src/core/node-registries/debug.js +0 -26
  464. package/backend/src/core/node-registries/events.js +0 -201
  465. package/backend/src/core/node-registries/flow.js +0 -139
  466. package/backend/src/core/node-registries/furnace.js +0 -143
  467. package/backend/src/core/node-registries/logic.js +0 -62
  468. package/backend/src/core/node-registries/math.js +0 -42
  469. package/backend/src/core/node-registries/navigation.js +0 -111
  470. package/backend/src/core/node-registries/objects.js +0 -98
  471. package/backend/src/core/node-registries/strings.js +0 -187
  472. package/backend/src/core/node-registries/time.js +0 -113
  473. package/backend/src/core/node-registries/type.js +0 -25
  474. package/backend/src/core/node-registries/users.js +0 -79
  475. package/frontend/dist/assets/index-BC-NbKXi.css +0 -32
  476. package/frontend/dist/assets/index-DqJXZMHY.js +0 -11266
@@ -1,557 +0,0 @@
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.