blockmine 1.24.0 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.en.md +427 -0
- package/README.md +40 -0
- package/backend/cli.js +1 -1
- package/backend/src/ai/plugin-assistant-system-prompt.md +664 -5
- package/backend/src/api/routes/bots.js +13 -0
- package/backend/src/api/routes/servers.js +14 -2
- package/backend/src/core/BotProcess.js +98 -2
- package/backend/src/core/PluginLoader.js +83 -3
- package/backend/src/core/PluginManager.js +75 -5
- package/backend/src/core/services/BotLifecycleService.js +186 -2
- package/backend/src/server.js +11 -1
- package/frontend/dist/assets/browser-ponyfill-DN7pwmHT.js +2 -0
- package/frontend/dist/assets/index-LSy71uwm.js +11261 -0
- package/frontend/dist/assets/index-SfhKxI4-.css +32 -0
- package/frontend/dist/flags/en.svg +32 -0
- package/frontend/dist/flags/ru.svg +5 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/dist/locales/en/admin.json +100 -0
- package/frontend/dist/locales/en/api-keys.json +58 -0
- package/frontend/dist/locales/en/bots.json +110 -0
- package/frontend/dist/locales/en/common.json +47 -0
- package/frontend/dist/locales/en/configuration.json +22 -0
- package/frontend/dist/locales/en/console.json +10 -0
- package/frontend/dist/locales/en/dashboard.json +85 -0
- package/frontend/dist/locales/en/dialogs.json +70 -0
- package/frontend/dist/locales/en/event-graphs.json +50 -0
- package/frontend/dist/locales/en/graph-store.json +70 -0
- package/frontend/dist/locales/en/login.json +34 -0
- package/frontend/dist/locales/en/management.json +114 -0
- package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
- package/frontend/dist/locales/en/nodes.json +1077 -0
- package/frontend/dist/locales/en/permissions.json +50 -0
- package/frontend/dist/locales/en/plugin-detail.json +49 -0
- package/frontend/dist/locales/en/plugins.json +110 -0
- package/frontend/dist/locales/en/proxies.json +81 -0
- package/frontend/dist/locales/en/servers.json +39 -0
- package/frontend/dist/locales/en/setup.json +17 -0
- package/frontend/dist/locales/en/sidebar.json +27 -0
- package/frontend/dist/locales/en/tasks.json +62 -0
- package/frontend/dist/locales/en/visual-editor.json +219 -0
- package/frontend/dist/locales/en/websocket.json +86 -0
- package/frontend/dist/locales/ru/admin.json +100 -0
- package/frontend/dist/locales/ru/api-keys.json +58 -0
- package/frontend/dist/locales/ru/bots.json +110 -0
- package/frontend/dist/locales/ru/common.json +49 -0
- package/frontend/dist/locales/ru/configuration.json +22 -0
- package/frontend/dist/locales/ru/console.json +10 -0
- package/frontend/dist/locales/ru/dashboard.json +85 -0
- package/frontend/dist/locales/ru/dialogs.json +70 -0
- package/frontend/dist/locales/ru/event-graphs.json +50 -0
- package/frontend/dist/locales/ru/graph-store.json +70 -0
- package/frontend/dist/locales/ru/login.json +34 -0
- package/frontend/dist/locales/ru/management.json +114 -0
- package/frontend/dist/locales/ru/minecraft-viewer.json +27 -0
- package/frontend/dist/locales/ru/nodes.json +1077 -0
- package/frontend/dist/locales/ru/permissions.json +50 -0
- package/frontend/dist/locales/ru/plugin-detail.json +49 -0
- package/frontend/dist/locales/ru/plugins.json +110 -0
- package/frontend/dist/locales/ru/proxies.json +81 -0
- package/frontend/dist/locales/ru/servers.json +39 -0
- package/frontend/dist/locales/ru/setup.json +17 -0
- package/frontend/dist/locales/ru/sidebar.json +27 -0
- package/frontend/dist/locales/ru/tasks.json +62 -0
- package/frontend/dist/locales/ru/visual-editor.json +221 -0
- package/frontend/dist/locales/ru/websocket.json +86 -0
- package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
- package/frontend/package.json +4 -0
- package/package.json +1 -1
- package/screen/3dviewer.png +0 -0
- package/screen/console.png +0 -0
- package/screen/dashboard.png +0 -0
- package/screen/graph_collabe.png +0 -0
- package/screen/graph_live_debug.png +0 -0
- package/screen/language_selector.png +0 -0
- package/screen/management_command.png +0 -0
- package/screen/node_debug_trace.png +0 -0
- package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
- package/screen/websocket.png +0 -0
- package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
- package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
- package/.claude/agents/README.md +0 -469
- package/.claude/agents/auth-route-debugger.md +0 -118
- package/.claude/agents/auth-route-tester.md +0 -93
- package/.claude/agents/auto-error-resolver.md +0 -97
- package/.claude/agents/build-optimizer.md +0 -236
- package/.claude/agents/code-architect.md +0 -34
- package/.claude/agents/code-architecture-reviewer.md +0 -83
- package/.claude/agents/code-explorer.md +0 -51
- package/.claude/agents/code-refactor-master.md +0 -94
- package/.claude/agents/code-reviewer.md +0 -46
- package/.claude/agents/cost-optimizer.md +0 -134
- package/.claude/agents/deployment-orchestrator.md +0 -113
- package/.claude/agents/documentation-architect.md +0 -82
- package/.claude/agents/frontend-error-fixer.md +0 -77
- package/.claude/agents/iac-code-generator.md +0 -71
- package/.claude/agents/incident-responder.md +0 -346
- package/.claude/agents/infrastructure-architect.md +0 -31
- package/.claude/agents/kubernetes-specialist.md +0 -56
- package/.claude/agents/migration-planner.md +0 -181
- package/.claude/agents/network-architect.md +0 -196
- package/.claude/agents/plan-reviewer.md +0 -52
- package/.claude/agents/refactor-planner.md +0 -63
- package/.claude/agents/security-scanner.md +0 -102
- package/.claude/agents/web-research-specialist.md +0 -78
- package/.claude/commands/cost-analysis.md +0 -315
- package/.claude/commands/dev-docs-update.md +0 -55
- package/.claude/commands/dev-docs.md +0 -51
- package/.claude/commands/feature-dev.md +0 -125
- package/.claude/commands/incident-debug.md +0 -247
- package/.claude/commands/infra-plan.md +0 -81
- package/.claude/commands/migration-plan.md +0 -478
- package/.claude/commands/route-research-for-testing.md +0 -37
- package/.claude/commands/security-review.md +0 -66
- package/.claude/hooks/CONFIG.md +0 -448
- package/.claude/hooks/README.md +0 -163
- package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
- package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
- package/.claude/hooks/add-skill-activation-banners.ts +0 -132
- package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
- package/.claude/hooks/error-handling-reminder.sh +0 -12
- package/.claude/hooks/error-handling-reminder.ts +0 -222
- package/.claude/hooks/k8s-manifest-validator.sh +0 -56
- package/.claude/hooks/package-lock.json +0 -556
- package/.claude/hooks/package.json +0 -16
- package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
- package/.claude/hooks/post-tool-use-tracker.sh +0 -183
- package/.claude/hooks/security-policy-check.sh +0 -247
- package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
- package/.claude/hooks/skill-activation-prompt.sh +0 -10
- package/.claude/hooks/skill-activation-prompt.ts +0 -141
- package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
- package/.claude/hooks/terraform-validator.sh +0 -53
- package/.claude/hooks/test-input.json +0 -7
- package/.claude/hooks/test-skill-activation.ts +0 -427
- package/.claude/hooks/trigger-build-resolver.sh +0 -79
- package/.claude/hooks/tsc-check.sh +0 -173
- package/.claude/hooks/tsconfig.json +0 -19
- package/.claude/settings.json +0 -59
- package/.claude/settings.local.json +0 -67
- package/.claude/skills/README.md +0 -507
- package/.claude/skills/api-engineering/SKILL.md +0 -63
- package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
- package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
- package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
- package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
- package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
- package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
- package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
- package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
- package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
- package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
- package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
- package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
- package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
- package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
- package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
- package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
- package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
- package/.claude/skills/build-engineering/SKILL.md +0 -431
- package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
- package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
- package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
- package/.claude/skills/build-engineering/resources/build-security.md +0 -95
- package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
- package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
- package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
- package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
- package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
- package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
- package/.claude/skills/cloud-engineering/SKILL.md +0 -675
- package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
- package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
- package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
- package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
- package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
- package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
- package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
- package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
- package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
- package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
- package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
- package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
- package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
- package/.claude/skills/cybersecurity/SKILL.md +0 -409
- package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
- package/.claude/skills/database-engineering/SKILL.md +0 -61
- package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
- package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
- package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
- package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
- package/.claude/skills/devsecops/SKILL.md +0 -374
- package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
- package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
- package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
- package/.claude/skills/devsecops/resources/container-security.md +0 -915
- package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
- package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
- package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
- package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
- package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
- package/.claude/skills/devsecops/resources/security-testing.md +0 -203
- package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
- package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
- package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
- package/.claude/skills/documentation-as-code/SKILL.md +0 -323
- package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
- package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
- package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
- package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
- package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
- package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
- package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
- package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
- package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
- package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
- package/.claude/skills/engineering-management/SKILL.md +0 -356
- package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
- package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
- package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
- package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
- package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
- package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
- package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
- package/.claude/skills/error-tracking/SKILL.md +0 -379
- package/.claude/skills/frontend-design/SKILL.md +0 -42
- package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
- package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
- package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
- package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
- package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
- package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
- package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
- package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
- package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
- package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
- package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
- package/.claude/skills/general-it-engineering/SKILL.md +0 -393
- package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
- package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
- package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
- package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
- package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
- package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
- package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
- package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
- package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
- package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
- package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
- package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
- package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
- package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
- package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
- package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
- package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
- package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
- package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
- package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
- package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
- package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
- package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
- package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
- package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
- package/.claude/skills/network-engineering/SKILL.md +0 -385
- package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
- package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
- package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
- package/.claude/skills/network-engineering/resources/network-security.md +0 -921
- package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
- package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
- package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
- package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
- package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
- package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
- package/.claude/skills/node-development/SKILL.md +0 -317
- package/.claude/skills/observability-engineering/SKILL.md +0 -101
- package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
- package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
- package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
- package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
- package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
- package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
- package/.claude/skills/platform-engineering/SKILL.md +0 -555
- package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
- package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
- package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
- package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
- package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
- package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
- package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
- package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
- package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
- package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
- package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
- package/.claude/skills/release-engineering/SKILL.md +0 -393
- package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
- package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
- package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
- package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
- package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
- package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
- package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
- package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
- package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
- package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
- package/.claude/skills/route-tester/SKILL.md +0 -392
- package/.claude/skills/skill-developer/ADVANCED.md +0 -197
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
- package/.claude/skills/skill-developer/SKILL.md +0 -430
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
- package/.claude/skills/skill-rules.json +0 -2989
- package/.claude/skills/sre/SKILL.md +0 -464
- package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
- package/.claude/skills/sre/resources/capacity-planning.md +0 -226
- package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
- package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
- package/.claude/skills/sre/resources/incident-management.md +0 -436
- package/.claude/skills/sre/resources/observability-stack.md +0 -240
- package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
- package/.claude/skills/sre/resources/performance-optimization.md +0 -108
- package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
- package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
- package/.claude/skills/sre/resources/toil-reduction.md +0 -145
- package/.claude/skills/systems-engineering/SKILL.md +0 -648
- package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
- package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
- package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
- package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
- package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
- package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
- package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
- package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
- package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
- package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
- package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
- package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
- package/.claude/skills/technical-leadership/SKILL.md +0 -728
- package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
- package/frontend/dist/assets/index-BC-NbKXi.css +0 -32
- package/frontend/dist/assets/index-DqJXZMHY.js +0 -11266
|
@@ -1,728 +0,0 @@
|
|
|
1
|
-
# Technical Leadership for Managers
|
|
2
|
-
|
|
3
|
-
**For engineering managers who need to make sound technical decisions without being hands-on.**
|
|
4
|
-
|
|
5
|
-
> You don't need to be the best coder on your team. You need to ask the right questions, evaluate proposals effectively, and make decisions that balance technical excellence with business needs.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
9
|
-
🎯 SKILL ACTIVATED: technical-leadership
|
|
10
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
## When to Use This Skill
|
|
14
|
-
|
|
15
|
-
**You're a manager who needs help with:**
|
|
16
|
-
- Reviewing architecture proposals from your team
|
|
17
|
-
- Evaluating technical decisions (build vs buy, technology choices)
|
|
18
|
-
- Assessing technical risk without deep expertise
|
|
19
|
-
- Prioritizing technical debt vs features
|
|
20
|
-
- Knowing when to push back on engineering decisions
|
|
21
|
-
- Asking insightful questions in technical discussions
|
|
22
|
-
|
|
23
|
-
**This skill does NOT cover:**
|
|
24
|
-
- Hands-on technical implementation (see technical skills)
|
|
25
|
-
- People management (see engineering-management skill)
|
|
26
|
-
- Budget/cost decisions (see budget-and-cost-management skill)
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Core Principle
|
|
31
|
-
|
|
32
|
-
**Your job is to:**
|
|
33
|
-
1. **Ask good questions** - Probe assumptions and alternatives
|
|
34
|
-
2. **Evaluate trade-offs** - Understand pros/cons of technical choices
|
|
35
|
-
3. **Assess risk** - Identify what could go wrong
|
|
36
|
-
4. **Make decisions** - Choose direction when team is split
|
|
37
|
-
5. **Provide context** - Connect technical work to business goals
|
|
38
|
-
|
|
39
|
-
**You are NOT expected to:**
|
|
40
|
-
- Write the code or design the system yourself
|
|
41
|
-
- Be the most technical person in the room
|
|
42
|
-
- Know every technology in depth
|
|
43
|
-
- Make all technical decisions (empower your team)
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## 1. Architecture Review Framework
|
|
48
|
-
|
|
49
|
-
### Questions to Ask in Architecture Reviews
|
|
50
|
-
|
|
51
|
-
**Problem Understanding:**
|
|
52
|
-
- "What problem are we solving? For whom?"
|
|
53
|
-
- "What happens if we don't solve this?"
|
|
54
|
-
- "Have we validated this is a real problem?"
|
|
55
|
-
- "What's the simplest solution that could work?"
|
|
56
|
-
|
|
57
|
-
**Requirements & Constraints:**
|
|
58
|
-
- "What are the non-functional requirements?" (scale, latency, availability)
|
|
59
|
-
- "What constraints do we have?" (time, budget, team skills, existing systems)
|
|
60
|
-
- "What's our SLO/SLA commitment?"
|
|
61
|
-
- "What's the expected growth over next 1-2 years?"
|
|
62
|
-
|
|
63
|
-
**Proposed Solution:**
|
|
64
|
-
- "Why this approach vs alternatives?"
|
|
65
|
-
- "What did you consider and reject? Why?"
|
|
66
|
-
- "What are the trade-offs of this design?"
|
|
67
|
-
- "What could go wrong? How do we mitigate?"
|
|
68
|
-
- "How does this align with our existing architecture?"
|
|
69
|
-
|
|
70
|
-
**Implementation & Operations:**
|
|
71
|
-
- "What's the rollout plan? Can we do this incrementally?"
|
|
72
|
-
- "How do we test this?"
|
|
73
|
-
- "What's the operational burden?" (monitoring, on-call, maintenance)
|
|
74
|
-
- "How do we roll back if something goes wrong?"
|
|
75
|
-
- "What documentation will we create?"
|
|
76
|
-
|
|
77
|
-
**Decision Criteria:**
|
|
78
|
-
- "Does this solve the problem effectively?"
|
|
79
|
-
- "Is the complexity justified?"
|
|
80
|
-
- "Can our team build and maintain this?"
|
|
81
|
-
- "Does this align with our technical strategy?"
|
|
82
|
-
- "What's the risk if we're wrong?"
|
|
83
|
-
|
|
84
|
-
### Red Flags in Proposals
|
|
85
|
-
|
|
86
|
-
**🚩 Over-engineering:**
|
|
87
|
-
- Solution is much more complex than the problem
|
|
88
|
-
- "We might need this someday" without clear requirement
|
|
89
|
-
- Adopting bleeding-edge technology for no clear reason
|
|
90
|
-
- **Example:** "Engineer wants to add Kafka for everything" when simple queues would work
|
|
91
|
-
- **Example:** "Team wants to rewrite in Rust for performance" without proof of bottleneck
|
|
92
|
-
|
|
93
|
-
**🚩 Under-engineering:**
|
|
94
|
-
- Doesn't consider scale or growth
|
|
95
|
-
- No error handling or failure modes
|
|
96
|
-
- Ignores operational concerns
|
|
97
|
-
- **Example:** "What if traffic spikes 100x?" is met with "We'll deal with it then"
|
|
98
|
-
- **Example:** No plan for handling partial failures in distributed system
|
|
99
|
-
|
|
100
|
-
**🚩 Resume-driven development:**
|
|
101
|
-
- Engineer wants to use cool new tech
|
|
102
|
-
- No clear business justification
|
|
103
|
-
- Team lacks skills to maintain it
|
|
104
|
-
- **Example:** "Let's use blockchain" without clear need for distributed ledger
|
|
105
|
-
- **Example:** "This needs GraphQL" when REST API works fine
|
|
106
|
-
|
|
107
|
-
**🚩 Not invented here syndrome:**
|
|
108
|
-
- Rebuilding something that exists
|
|
109
|
-
- "Our use case is special" without evidence
|
|
110
|
-
- Ignoring proven solutions
|
|
111
|
-
- **Example:** Building own authentication instead of using Auth0/Okta
|
|
112
|
-
- **Example:** Creating custom service mesh instead of using Istio
|
|
113
|
-
|
|
114
|
-
**🚩 Analysis paralysis:**
|
|
115
|
-
- Perfect is the enemy of good
|
|
116
|
-
- Endless debate without decision
|
|
117
|
-
- Fear of making wrong choice
|
|
118
|
-
- **Example:** 3 months of architecture docs, zero code written
|
|
119
|
-
- **Example:** Evaluating 10 different databases without clear decision criteria
|
|
120
|
-
|
|
121
|
-
**🚩 Too many external dependencies:**
|
|
122
|
-
- Proposal adds excessive third-party dependencies
|
|
123
|
-
- Each dependency increases risk and maintenance burden
|
|
124
|
-
- **Example:** "This has too many external dependencies" - assess if each one is truly needed
|
|
125
|
-
- **Ask:** "What's our risk if this dependency is abandoned or has a security vulnerability?"
|
|
126
|
-
|
|
127
|
-
### Decision-Making Framework
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
Step 1: Clarify the Problem
|
|
131
|
-
├── Is this a real problem worth solving?
|
|
132
|
-
├── What's the impact of not solving it?
|
|
133
|
-
└── Have we validated with users/data?
|
|
134
|
-
|
|
135
|
-
Step 2: Evaluate Options (usually 2-3 viable options)
|
|
136
|
-
├── What are pros/cons of each?
|
|
137
|
-
├── What's the risk of each?
|
|
138
|
-
├── What's the cost (time, complexity, maintenance)?
|
|
139
|
-
└── Which aligns best with our strategy?
|
|
140
|
-
|
|
141
|
-
Step 3: Make Decision
|
|
142
|
-
├── Choose based on trade-offs
|
|
143
|
-
├── Document rationale (ADR - Architecture Decision Record)
|
|
144
|
-
├── Communicate decision clearly
|
|
145
|
-
└── Set review point to validate
|
|
146
|
-
|
|
147
|
-
Step 4: Support the Decision
|
|
148
|
-
├── Allocate resources
|
|
149
|
-
├── Remove blockers
|
|
150
|
-
├── Monitor progress
|
|
151
|
-
└── Adjust if assumptions prove wrong
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
**When to defer to the team:**
|
|
155
|
-
- Technical details within established patterns
|
|
156
|
-
- Team has more context than you
|
|
157
|
-
- Decision is reversible
|
|
158
|
-
- Team consensus exists
|
|
159
|
-
|
|
160
|
-
**When to make the call:**
|
|
161
|
-
- Team is deadlocked
|
|
162
|
-
- Strategic direction is unclear
|
|
163
|
-
- Cross-team coordination needed
|
|
164
|
-
- Business context that team doesn't have
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
## 2. Evaluating Technical Proposals
|
|
169
|
-
|
|
170
|
-
### Template: One-Page Technical Proposal
|
|
171
|
-
|
|
172
|
-
**Your team should submit proposals in this format:**
|
|
173
|
-
|
|
174
|
-
```markdown
|
|
175
|
-
# Proposal: [Title]
|
|
176
|
-
|
|
177
|
-
## Problem
|
|
178
|
-
[2-3 sentences: What problem are we solving? Why does it matter?]
|
|
179
|
-
|
|
180
|
-
## Proposed Solution
|
|
181
|
-
[1 paragraph: High-level approach]
|
|
182
|
-
|
|
183
|
-
## Alternatives Considered
|
|
184
|
-
1. Option A: [Brief description] - Rejected because [reason]
|
|
185
|
-
2. Option B: [Brief description] - Rejected because [reason]
|
|
186
|
-
|
|
187
|
-
## Trade-offs
|
|
188
|
-
Pros:
|
|
189
|
-
- [Benefit 1]
|
|
190
|
-
- [Benefit 2]
|
|
191
|
-
|
|
192
|
-
Cons:
|
|
193
|
-
- [Cost/Risk 1]
|
|
194
|
-
- [Cost/Risk 2]
|
|
195
|
-
|
|
196
|
-
## Implementation Plan
|
|
197
|
-
- Phase 1: [Milestone, timeline]
|
|
198
|
-
- Phase 2: [Milestone, timeline]
|
|
199
|
-
- Rollback plan: [How we revert if needed]
|
|
200
|
-
|
|
201
|
-
## Success Metrics
|
|
202
|
-
- [How we measure success]
|
|
203
|
-
- [What "done" looks like]
|
|
204
|
-
|
|
205
|
-
## Open Questions
|
|
206
|
-
- [Thing we're still figuring out]
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### Evaluation Rubric
|
|
210
|
-
|
|
211
|
-
| Criterion | Questions | Weight |
|
|
212
|
-
|-----------|-----------|--------|
|
|
213
|
-
| **Problem Clarity** | Is the problem well-defined? Is it worth solving? | High |
|
|
214
|
-
| **Solution Quality** | Is the approach sound? Are alternatives considered? | High |
|
|
215
|
-
| **Risk Assessment** | What could go wrong? Are mitigations identified? | High |
|
|
216
|
-
| **Feasibility** | Can our team actually build this? In the proposed timeline? | High |
|
|
217
|
-
| **Alignment** | Does this fit our architecture and strategy? | Medium |
|
|
218
|
-
| **Operational Impact** | Can we operate/maintain this? What's the burden? | Medium |
|
|
219
|
-
| **Cost** | Time, complexity, ongoing maintenance costs? | Medium |
|
|
220
|
-
|
|
221
|
-
**Decision matrix:**
|
|
222
|
-
- All High criteria met → Approve
|
|
223
|
-
- 1-2 High criteria concerns → Request revision
|
|
224
|
-
- 3+ High criteria concerns → Reject or significantly scope down
|
|
225
|
-
|
|
226
|
-
### Common Proposal Scenarios
|
|
227
|
-
|
|
228
|
-
**Scenario: "Should I approve this architecture document?"**
|
|
229
|
-
- ✅ **Approve if:** Problem is clear, alternatives considered, trade-offs documented, team can execute
|
|
230
|
-
- ❌ **Request revision if:** Missing key details (alternatives, risks, rollback plan)
|
|
231
|
-
- ❌ **Reject if:** Solving wrong problem, unrealistic timeline, team lacks skills
|
|
232
|
-
|
|
233
|
-
**Scenario: Microservices adoption**
|
|
234
|
-
- **Ask:** "Why microservices? What problems do they solve for us?"
|
|
235
|
-
- **Red flag:** "Everyone else is doing microservices" (not a reason)
|
|
236
|
-
- **Good answer:** "We have 3 teams stepping on each other in the monolith, need independent deployment"
|
|
237
|
-
- **Consider:** Start with 2-3 services, not 20. Monoliths aren't inherently bad.
|
|
238
|
-
|
|
239
|
-
**Scenario: Event-driven architecture proposal**
|
|
240
|
-
- **Ask:** "What events are we handling? Why not synchronous APIs?"
|
|
241
|
-
- **Good fit:** Async workflows, multiple consumers, need for replay/audit
|
|
242
|
-
- **Bad fit:** Simple CRUD operations, tight coupling acceptable, team unfamiliar with event-driven
|
|
243
|
-
|
|
244
|
-
**Scenario: CQRS (Command Query Responsibility Segregation)**
|
|
245
|
-
- **Ask:** "Do we really need separate read/write models? What's the complexity cost?"
|
|
246
|
-
- **Good fit:** Very different read vs write patterns, high read volume with complex queries
|
|
247
|
-
- **Bad fit:** Simple CRUD app, team unfamiliar with pattern, premature optimization
|
|
248
|
-
|
|
249
|
-
**Scenario: Monolith splitting decision**
|
|
250
|
-
- **Ask:** "Which part should we extract first? What's the business value?"
|
|
251
|
-
- **Start with:** Bounded contexts with clear boundaries (e.g., authentication, billing)
|
|
252
|
-
- **Avoid:** Splitting prematurely - distributed systems are complex
|
|
253
|
-
|
|
254
|
-
**Scenario: Premature abstraction**
|
|
255
|
-
- **Signal:** "Let's make this generic and reusable" before it's used twice
|
|
256
|
-
- **Ask:** "How many places will use this? When? Let's wait until we have 2-3 use cases"
|
|
257
|
-
- **Remember:** Duplication is cheaper than wrong abstraction
|
|
258
|
-
|
|
259
|
-
---
|
|
260
|
-
|
|
261
|
-
## 3. Risk Assessment for Managers
|
|
262
|
-
|
|
263
|
-
### Types of Technical Risk
|
|
264
|
-
|
|
265
|
-
**1. Technology Risk**
|
|
266
|
-
- **New technology:** Team lacks experience
|
|
267
|
-
- **Bleeding edge:** Immature ecosystem, breaking changes
|
|
268
|
-
- **Deprecated tech:** End-of-life, security vulnerabilities
|
|
269
|
-
|
|
270
|
-
**Assessment:**
|
|
271
|
-
- "Have we used this before? If not, what's our learning plan?"
|
|
272
|
-
- "How mature is this technology? Is it production-ready?"
|
|
273
|
-
- "What's our exit strategy if this doesn't work out?"
|
|
274
|
-
|
|
275
|
-
**2. Complexity Risk**
|
|
276
|
-
- **High complexity:** Hard to understand, debug, maintain
|
|
277
|
-
- **Many moving parts:** Increased failure modes
|
|
278
|
-
- **Tight coupling:** Changes cascade across system
|
|
279
|
-
|
|
280
|
-
**Assessment:**
|
|
281
|
-
- "Can a new engineer understand this in a week?"
|
|
282
|
-
- "What breaks if component X fails?"
|
|
283
|
-
- "How do we test this?"
|
|
284
|
-
|
|
285
|
-
**3. Scale Risk**
|
|
286
|
-
- **Performance:** Won't handle expected load
|
|
287
|
-
- **Cost:** Expenses grow faster than value
|
|
288
|
-
- **Data:** Volume overwhelms system
|
|
289
|
-
|
|
290
|
-
**Assessment:**
|
|
291
|
-
- "Have we load tested this?"
|
|
292
|
-
- "What happens at 10x current traffic?"
|
|
293
|
-
- "What's the cost curve as we scale?"
|
|
294
|
-
|
|
295
|
-
**4. Operational Risk**
|
|
296
|
-
- **Operational burden:** Requires constant babysitting
|
|
297
|
-
- **Hard to debug:** No observability or logs
|
|
298
|
-
- **Fragile:** Frequent incidents and outages
|
|
299
|
-
|
|
300
|
-
**Assessment:**
|
|
301
|
-
- "Who gets paged when this breaks?"
|
|
302
|
-
- "How do we debug issues in production?"
|
|
303
|
-
- "What's the MTTR (mean time to recovery)?"
|
|
304
|
-
|
|
305
|
-
**5. People Risk**
|
|
306
|
-
- **Key person dependency:** Only one person understands it
|
|
307
|
-
- **Skill gap:** Team can't maintain it
|
|
308
|
-
- **Burnout risk:** Unsustainable workload
|
|
309
|
-
|
|
310
|
-
**Assessment:**
|
|
311
|
-
- "What happens if [engineer] leaves?"
|
|
312
|
-
- "Does the team have skills to maintain this?"
|
|
313
|
-
- "Is this creating unsustainable on-call burden?"
|
|
314
|
-
|
|
315
|
-
### Risk Assessment Scenarios
|
|
316
|
-
|
|
317
|
-
**Scenario: "This approach feels too risky"**
|
|
318
|
-
- **Dig deeper:** "What specifically worries you? Complexity? Unfamiliar tech? Scale concerns?"
|
|
319
|
-
- **Quantify:** "What's the probability? What's the impact if it goes wrong?"
|
|
320
|
-
- **Mitigate:** "How can we reduce the risk? Prototype? Incremental rollout?"
|
|
321
|
-
|
|
322
|
-
**Scenario: Dependency risk - "This has too many external dependencies"**
|
|
323
|
-
- **Assess each:** "Is each dependency necessary? Can we use fewer?"
|
|
324
|
-
- **Check health:** "Is the dependency actively maintained? Large community? Corporate backing?"
|
|
325
|
-
- **Plan alternatives:** "What's our fallback if a dependency is abandoned?"
|
|
326
|
-
- **Track:** Maintain a dependency registry with last-updated dates and CVE count
|
|
327
|
-
|
|
328
|
-
**Scenario: Traffic spike risk - "What if traffic spikes 100x?"**
|
|
329
|
-
- **Current capacity:** "What's our current capacity? Where's the bottleneck?"
|
|
330
|
-
- **Auto-scaling:** "Can we auto-scale? What's the cost?"
|
|
331
|
-
- **Graceful degradation:** "Can we shed load gracefully? What features are optional?"
|
|
332
|
-
- **Load testing:** "Have we load tested at expected peak? Plus safety margin?"
|
|
333
|
-
|
|
334
|
-
**Scenario: Scalability risk - "Will this work at 1M users?"**
|
|
335
|
-
- **Model it:** "What's the resource usage per user? Calculate total at 1M"
|
|
336
|
-
- **Bottlenecks:** "Where will it break first? Database? API? Network?"
|
|
337
|
-
- **Growth timeline:** "When do we expect 1M users? Can we refactor before then?"
|
|
338
|
-
- **Reality check:** "Do we really need to plan for 1M now, or can we solve for 10K first?"
|
|
339
|
-
|
|
340
|
-
**Scenario: Key person dependency (Bus Factor = 1)**
|
|
341
|
-
- **Document:** "Can we document the critical knowledge this week?"
|
|
342
|
-
- **Pair:** "Who can pair with them to spread knowledge?"
|
|
343
|
-
- **Simplify:** "Can we reduce complexity so others can learn it?"
|
|
344
|
-
- **Accept:** "Is this temporary? If so, what's the risk tolerance?"
|
|
345
|
-
|
|
346
|
-
### Risk Matrix
|
|
347
|
-
|
|
348
|
-
| Risk Level | Likelihood | Impact | Action |
|
|
349
|
-
|------------|------------|--------|--------|
|
|
350
|
-
| **Critical** | High | High | Must mitigate before proceeding |
|
|
351
|
-
| **High** | High | Medium | Mitigate or accept with plan |
|
|
352
|
-
| **Medium** | Medium | Medium | Monitor and manage |
|
|
353
|
-
| **Low** | Low | Low | Accept and document |
|
|
354
|
-
|
|
355
|
-
**Risk Mitigation Strategies:**
|
|
356
|
-
- **Prototype first:** Build small version to validate
|
|
357
|
-
- **Incremental rollout:** Phase deployment, easier to roll back
|
|
358
|
-
- **Fallback plan:** Have plan B ready
|
|
359
|
-
- **Monitoring:** Detect problems early
|
|
360
|
-
- **Documentation:** Reduce key person risk
|
|
361
|
-
|
|
362
|
-
---
|
|
363
|
-
|
|
364
|
-
## 4. Technical Debt Prioritization
|
|
365
|
-
|
|
366
|
-
### What is Technical Debt?
|
|
367
|
-
|
|
368
|
-
**Technical debt is the cost of choosing a faster/easier solution now instead of a better approach that would take longer.**
|
|
369
|
-
|
|
370
|
-
Not all technical debt is bad:
|
|
371
|
-
- ✅ **Good debt:** Intentional shortcuts to ship faster, with plan to pay back
|
|
372
|
-
- ❌ **Bad debt:** Accidental complexity, lack of understanding, rushing without thinking
|
|
373
|
-
|
|
374
|
-
### Categorizing Technical Debt
|
|
375
|
-
|
|
376
|
-
**Type 1: Critical Debt (Fix Now)**
|
|
377
|
-
- Security vulnerabilities
|
|
378
|
-
- Data corruption risks
|
|
379
|
-
- System instability causing frequent outages
|
|
380
|
-
- Blocking new development
|
|
381
|
-
|
|
382
|
-
**Type 2: Important Debt (Plan to Fix)**
|
|
383
|
-
- Slowing down development (takes 2x longer to ship)
|
|
384
|
-
- Increasing bug rate
|
|
385
|
-
- Making on-call painful
|
|
386
|
-
- Approaching technical limits (database size, API rate limits)
|
|
387
|
-
|
|
388
|
-
**Type 3: Nice-to-Have Debt (Opportunistic)**
|
|
389
|
-
- Code quality improvements
|
|
390
|
-
- Better test coverage
|
|
391
|
-
- Refactoring for cleaner code
|
|
392
|
-
- Upgrading dependencies
|
|
393
|
-
|
|
394
|
-
**Type 4: Not Actually Debt**
|
|
395
|
-
- Engineer preference ("I like X better than Y")
|
|
396
|
-
- Premature optimization
|
|
397
|
-
- Hypothetical future needs
|
|
398
|
-
|
|
399
|
-
### Prioritization Framework
|
|
400
|
-
|
|
401
|
-
**Formula: Priority = (Impact × Frequency) / Effort**
|
|
402
|
-
|
|
403
|
-
- **Impact:** How much does this slow us down or cause problems? (1-10)
|
|
404
|
-
- **Frequency:** How often do we hit this problem? (1-10)
|
|
405
|
-
- **Effort:** How hard is it to fix? (1-10)
|
|
406
|
-
|
|
407
|
-
**Example:**
|
|
408
|
-
- Flaky CI tests: Impact=7, Frequency=10, Effort=3 → Priority = 23 (High!)
|
|
409
|
-
- Old dependency: Impact=2, Frequency=1, Effort=8 → Priority = 0.25 (Low)
|
|
410
|
-
|
|
411
|
-
### Allocation Strategy
|
|
412
|
-
|
|
413
|
-
**Recommended allocation:**
|
|
414
|
-
- 70-80% new features and product work
|
|
415
|
-
- 15-20% technical debt and refactoring
|
|
416
|
-
- 5-10% learning and innovation
|
|
417
|
-
|
|
418
|
-
**How to allocate tech debt time:**
|
|
419
|
-
- Dedicate time each sprint (e.g., 20% of capacity)
|
|
420
|
-
- OR: Full sprint every quarter focused on tech debt
|
|
421
|
-
- OR: "You break it, you fix it" - engineers fix debt they create
|
|
422
|
-
|
|
423
|
-
**Red flags you're neglecting debt:**
|
|
424
|
-
- Slowing velocity (takes longer to ship each sprint)
|
|
425
|
-
- Increasing bug rate
|
|
426
|
-
- Engineers frustrated or burned out
|
|
427
|
-
- Frequent production incidents
|
|
428
|
-
- Hard to hire/onboard (codebase is a mess)
|
|
429
|
-
|
|
430
|
-
### Tech Debt Decision Scenarios
|
|
431
|
-
|
|
432
|
-
**Scenario: Refactoring time allocation**
|
|
433
|
-
- **Question:** "How many sprints should we dedicate to refactoring?"
|
|
434
|
-
- **Answer:** Depends on debt severity. Options:
|
|
435
|
-
- **Ongoing:** 15-20% of each sprint (sustainable)
|
|
436
|
-
- **Burst:** 1 full sprint per quarter for major refactoring
|
|
437
|
-
- **Crisis:** Stop features entirely for 1-2 sprints if critically broken
|
|
438
|
-
|
|
439
|
-
**Scenario: Code coverage policy**
|
|
440
|
-
- **Question:** "Should we enforce 80% code coverage?"
|
|
441
|
-
- **Answer:** Coverage % is a vanity metric. Focus on:
|
|
442
|
-
- ✅ Critical paths are tested (auth, payments, data integrity)
|
|
443
|
-
- ✅ Business logic has unit tests
|
|
444
|
-
- ✅ Integration tests cover happy path + key error cases
|
|
445
|
-
- ❌ Don't write tests just to hit a coverage number
|
|
446
|
-
|
|
447
|
-
**Scenario: Rewrite cost-benefit - "Is this module worth rewriting?"**
|
|
448
|
-
- **Cost:** Time to rewrite + risk of bugs + distraction from features
|
|
449
|
-
- **Benefit:** Faster development + fewer bugs + better maintainability
|
|
450
|
-
- **Decision:** Rewrite if benefit > 3x cost (because rewrites always take longer than estimated)
|
|
451
|
-
- **Alternative:** Can you refactor incrementally instead?
|
|
452
|
-
|
|
453
|
-
**Scenario: Bug prioritization vs new features**
|
|
454
|
-
- **P0 bugs:** Fix immediately (data loss, security, system down)
|
|
455
|
-
- **P1 bugs:** Fix this sprint (major feature broken, many users affected)
|
|
456
|
-
- **P2 bugs:** Fix when convenient (minor issues, workarounds exist)
|
|
457
|
-
- **P3 bugs:** Backlog/won't fix (cosmetic, rare edge cases)
|
|
458
|
-
- **Balance:** ~10-20% of capacity on bugs, rest on features
|
|
459
|
-
|
|
460
|
-
**Scenario: Testing vs shipping - "Should we delay to add more tests?"**
|
|
461
|
-
- **Ship without tests if:** Small change, easily reversible, low risk
|
|
462
|
-
- **Add tests first if:** Core functionality, many edge cases, hard to debug in production
|
|
463
|
-
- **Middle ground:** Ship with basic tests, add comprehensive tests later if it proves important
|
|
464
|
-
|
|
465
|
-
---
|
|
466
|
-
|
|
467
|
-
## 5. When to Push Back
|
|
468
|
-
|
|
469
|
-
### Situations Where You Should Push Back
|
|
470
|
-
|
|
471
|
-
**1. Scope Creep**
|
|
472
|
-
- **Signal:** "While we're at it, let's also..."
|
|
473
|
-
- **Push back:** "Let's ship the core feature first, then decide if we need that"
|
|
474
|
-
- **Why:** Prevents projects from ballooning, keeps focus
|
|
475
|
-
|
|
476
|
-
**2. Gold Plating**
|
|
477
|
-
- **Signal:** Over-engineering beyond requirements
|
|
478
|
-
- **Push back:** "What's the simplest solution that meets the requirement?"
|
|
479
|
-
- **Why:** Complexity has ongoing cost
|
|
480
|
-
|
|
481
|
-
**3. Resume-Driven Development**
|
|
482
|
-
- **Signal:** "I want to try this new framework"
|
|
483
|
-
- **Push back:** "What problem does this solve that our current approach doesn't?"
|
|
484
|
-
- **Why:** Stability and team knowledge matter
|
|
485
|
-
|
|
486
|
-
**4. Analysis Paralysis**
|
|
487
|
-
- **Signal:** Weeks of design docs, no code
|
|
488
|
-
- **Push back:** "Let's build a prototype this week and learn from it"
|
|
489
|
-
- **Why:** Bias toward action, learn by doing
|
|
490
|
-
|
|
491
|
-
**5. Ignoring Operations**
|
|
492
|
-
- **Signal:** "We'll figure out monitoring after we ship"
|
|
493
|
-
- **Push back:** "How will we know if this is working? Who gets paged?"
|
|
494
|
-
- **Why:** Operational burden falls on team
|
|
495
|
-
|
|
496
|
-
**6. No Rollback Plan**
|
|
497
|
-
- **Signal:** "We'll just push to production and see"
|
|
498
|
-
- **Push back:** "What's our rollback plan if this breaks?"
|
|
499
|
-
- **Why:** Reduces risk, enables faster recovery
|
|
500
|
-
|
|
501
|
-
**7. Skipping Testing**
|
|
502
|
-
- **Signal:** "We'll test in production"
|
|
503
|
-
- **Push back:** "What's our testing strategy? How do we gain confidence?"
|
|
504
|
-
- **Why:** Quality and stability matter
|
|
505
|
-
|
|
506
|
-
### How to Push Back Effectively
|
|
507
|
-
|
|
508
|
-
**Bad push back:**
|
|
509
|
-
- ❌ "No, that's a terrible idea"
|
|
510
|
-
- ❌ "We've always done it this way"
|
|
511
|
-
- ❌ "I don't like that approach"
|
|
512
|
-
|
|
513
|
-
**Good push back:**
|
|
514
|
-
- ✅ "Help me understand the trade-offs of this approach"
|
|
515
|
-
- ✅ "What problem does this solve that we can't solve simpler?"
|
|
516
|
-
- ✅ "What's the operational burden? Can we support this long-term?"
|
|
517
|
-
- ✅ "Let's prototype both approaches and compare"
|
|
518
|
-
|
|
519
|
-
**Framework:**
|
|
520
|
-
1. **Ask questions** to understand the reasoning
|
|
521
|
-
2. **State your concern** clearly and specifically
|
|
522
|
-
3. **Propose alternative** or request modification
|
|
523
|
-
4. **Explain why** in terms of business impact, not personal preference
|
|
524
|
-
5. **Listen** to their response - you might be wrong!
|
|
525
|
-
6. **Decide** - either accept their approach or make the call
|
|
526
|
-
|
|
527
|
-
### Difficult Decision Scenarios
|
|
528
|
-
|
|
529
|
-
**Scenario: Handling stubborn engineers**
|
|
530
|
-
- **Signal:** Engineer insists on their approach despite concerns
|
|
531
|
-
- **Step 1:** "Help me understand why this approach is important to you"
|
|
532
|
-
- **Step 2:** "I hear your technical reasoning. My concern is [business impact/risk/complexity]"
|
|
533
|
-
- **Step 3:** "Can we find a middle ground? Or run a time-boxed experiment?"
|
|
534
|
-
- **Step 4 (if needed):** "I've decided we're going with [alternative] because [clear reasoning]"
|
|
535
|
-
- **Follow-up:** Revisit decision in 1-2 months - were you right or wrong? Learn from it.
|
|
536
|
-
|
|
537
|
-
**Scenario: Decision override consideration**
|
|
538
|
-
- **When to override:** Team decision creates significant risk/cost, misaligns with strategy, or lacks key context
|
|
539
|
-
- **How to override:**
|
|
540
|
-
1. Acknowledge their expertise and work
|
|
541
|
-
2. Explain the context they may be missing (business constraints, strategic direction)
|
|
542
|
-
3. Make the call clearly with reasoning
|
|
543
|
-
4. Own the outcome - if you're wrong, admit it and adjust
|
|
544
|
-
|
|
545
|
-
**Scenario: Engineer resisting new technology**
|
|
546
|
-
- **Question:** "Why are you hesitant? What's your concern?"
|
|
547
|
-
- **Valid concerns:** "We don't have skills", "It's immature", "We just migrated to current stack"
|
|
548
|
-
- **Invalid concerns:** "I don't like it", "I prefer X", "Change is hard"
|
|
549
|
-
- **Decision:** Balance innovation with stability - not every new tech is worth adopting
|
|
550
|
-
|
|
551
|
-
**Scenario: Perfectionism pushback**
|
|
552
|
-
- **Signal:** "We can't ship until it's perfect"
|
|
553
|
-
- **Push back:** "What's the minimum we need to launch and learn? What can we improve post-launch?"
|
|
554
|
-
- **Reality:** Perfect is the enemy of shipped. Ship, measure, iterate.
|
|
555
|
-
|
|
556
|
-
---
|
|
557
|
-
|
|
558
|
-
## 6. Questions to Ask Your Team
|
|
559
|
-
|
|
560
|
-
### Weekly Team Check-ins
|
|
561
|
-
|
|
562
|
-
**Project Progress:**
|
|
563
|
-
- "What's at risk this week?"
|
|
564
|
-
- "What blockers can I help remove?"
|
|
565
|
-
- "Are we on track to hit our milestone?"
|
|
566
|
-
- "What changed since last week?"
|
|
567
|
-
|
|
568
|
-
**Technical Health:**
|
|
569
|
-
- "Any incidents or outages this week?"
|
|
570
|
-
- "How's our on-call been?"
|
|
571
|
-
- "Are there any technical concerns I should know about?"
|
|
572
|
-
- "What technical debt is bothering you most?"
|
|
573
|
-
|
|
574
|
-
**Team Health:**
|
|
575
|
-
- "How's the team feeling about the work?"
|
|
576
|
-
- "Anyone struggling or overloaded?"
|
|
577
|
-
- "What's morale like?"
|
|
578
|
-
|
|
579
|
-
### Architecture Discussions
|
|
580
|
-
|
|
581
|
-
**Exploring Options:**
|
|
582
|
-
- "What alternatives did you consider?"
|
|
583
|
-
- "What are the trade-offs of each option?"
|
|
584
|
-
- "Which option do you recommend and why?"
|
|
585
|
-
|
|
586
|
-
**Understanding Complexity:**
|
|
587
|
-
- "Can you explain this to me like I'm a new engineer?"
|
|
588
|
-
- "What's the simplest version of this that could work?"
|
|
589
|
-
- "What makes this complex? Can we reduce that?"
|
|
590
|
-
|
|
591
|
-
**Risk Assessment:**
|
|
592
|
-
- "What worries you about this approach?"
|
|
593
|
-
- "What could go wrong?"
|
|
594
|
-
- "How do we mitigate those risks?"
|
|
595
|
-
|
|
596
|
-
**Future Thinking:**
|
|
597
|
-
- "How does this scale?"
|
|
598
|
-
- "What happens when we have 10x traffic?"
|
|
599
|
-
- "How do we test this?"
|
|
600
|
-
- "How do we monitor and debug this in production?"
|
|
601
|
-
|
|
602
|
-
### Code Review (if you still review code)
|
|
603
|
-
|
|
604
|
-
**Don't ask:**
|
|
605
|
-
- ❌ Nitpicky style questions
|
|
606
|
-
- ❌ "Why didn't you do it my way?"
|
|
607
|
-
|
|
608
|
-
**Do ask:**
|
|
609
|
-
- ✅ "Can you walk me through the high-level approach?"
|
|
610
|
-
- ✅ "How does this handle errors?"
|
|
611
|
-
- ✅ "How did you test this?"
|
|
612
|
-
- ✅ "What happens if X fails?"
|
|
613
|
-
|
|
614
|
-
### Incident Reviews
|
|
615
|
-
|
|
616
|
-
**During incident:**
|
|
617
|
-
- "What do you need from me right now?"
|
|
618
|
-
- "Should we escalate or pull in more people?"
|
|
619
|
-
- "Do we need to communicate to customers?"
|
|
620
|
-
|
|
621
|
-
**Post-incident:**
|
|
622
|
-
- "What happened? (blameless)"
|
|
623
|
-
- "What did we learn?"
|
|
624
|
-
- "What action items prevent this in the future?"
|
|
625
|
-
- "Are those action items being prioritized?"
|
|
626
|
-
|
|
627
|
-
### One-on-Ones
|
|
628
|
-
|
|
629
|
-
**Growth:**
|
|
630
|
-
- "What do you want to get better at?"
|
|
631
|
-
- "What kind of problems excite you?"
|
|
632
|
-
- "What's something you learned recently?"
|
|
633
|
-
|
|
634
|
-
**Feedback:**
|
|
635
|
-
- "How can I better support you?"
|
|
636
|
-
- "What's one thing I should stop/start/continue doing?"
|
|
637
|
-
|
|
638
|
-
---
|
|
639
|
-
|
|
640
|
-
## Key Takeaways for Managers
|
|
641
|
-
|
|
642
|
-
1. **You don't need to be the most technical person** - Ask good questions instead
|
|
643
|
-
2. **Focus on trade-offs** - Every decision has pros and cons
|
|
644
|
-
3. **Assess risk** - What could go wrong? How do we mitigate?
|
|
645
|
-
4. **Prioritize ruthlessly** - Not all tech debt is worth fixing
|
|
646
|
-
5. **Push back thoughtfully** - Question assumptions, don't dictate solutions
|
|
647
|
-
6. **Empower your team** - Make decisions, don't make all decisions
|
|
648
|
-
7. **Connect technical to business** - Engineers need context
|
|
649
|
-
8. **Document decisions** - Future you will thank you (ADRs)
|
|
650
|
-
9. **Monitor and adjust** - Technical strategy evolves
|
|
651
|
-
10. **Build trust** - Admit when you don't know, learn together
|
|
652
|
-
|
|
653
|
-
---
|
|
654
|
-
|
|
655
|
-
## Templates and Tools
|
|
656
|
-
|
|
657
|
-
### Architecture Decision Record (ADR) Template
|
|
658
|
-
|
|
659
|
-
```markdown
|
|
660
|
-
# ADR-001: [Title]
|
|
661
|
-
|
|
662
|
-
## Context
|
|
663
|
-
[What's the situation? What problem are we solving?]
|
|
664
|
-
|
|
665
|
-
## Decision
|
|
666
|
-
[What did we decide to do?]
|
|
667
|
-
|
|
668
|
-
## Consequences
|
|
669
|
-
Positive:
|
|
670
|
-
- [Benefit 1]
|
|
671
|
-
- [Benefit 2]
|
|
672
|
-
|
|
673
|
-
Negative:
|
|
674
|
-
- [Cost/Trade-off 1]
|
|
675
|
-
- [Cost/Trade-off 2]
|
|
676
|
-
|
|
677
|
-
## Alternatives Considered
|
|
678
|
-
1. [Alternative A] - Rejected because [reason]
|
|
679
|
-
2. [Alternative B] - Rejected because [reason]
|
|
680
|
-
|
|
681
|
-
## Status
|
|
682
|
-
[Proposed | Accepted | Deprecated | Superseded by ADR-XXX]
|
|
683
|
-
|
|
684
|
-
## Date
|
|
685
|
-
[YYYY-MM-DD]
|
|
686
|
-
```
|
|
687
|
-
|
|
688
|
-
### Technical Proposal Review Checklist
|
|
689
|
-
|
|
690
|
-
```
|
|
691
|
-
□ Problem is clearly defined
|
|
692
|
-
□ Business impact is articulated
|
|
693
|
-
□ Alternatives are considered
|
|
694
|
-
□ Trade-offs are documented
|
|
695
|
-
□ Risk assessment is included
|
|
696
|
-
□ Implementation plan is realistic
|
|
697
|
-
□ Rollback plan exists
|
|
698
|
-
□ Success metrics are defined
|
|
699
|
-
□ Operational impact is assessed
|
|
700
|
-
□ Team has skills to implement
|
|
701
|
-
□ Aligns with technical strategy
|
|
702
|
-
□ Documentation plan exists
|
|
703
|
-
```
|
|
704
|
-
|
|
705
|
-
### Risk Register Template
|
|
706
|
-
|
|
707
|
-
| Risk | Likelihood | Impact | Mitigation | Owner | Status |
|
|
708
|
-
|------|------------|--------|------------|-------|--------|
|
|
709
|
-
| Database outage | Medium | High | Multi-AZ setup, backups | Alice | In Progress |
|
|
710
|
-
| Key engineer leaves | Low | High | Documentation, knowledge sharing | Bob | Complete |
|
|
711
|
-
|
|
712
|
-
---
|
|
713
|
-
|
|
714
|
-
## Integration with Other Skills
|
|
715
|
-
|
|
716
|
-
**This skill works with:**
|
|
717
|
-
- **engineering-management** - Team organization, hiring, career development
|
|
718
|
-
- **infrastructure-strategy** - Technology choices, build vs buy, roadmapping
|
|
719
|
-
- **engineering-operations-management** - SRE operations, incident management
|
|
720
|
-
|
|
721
|
-
**Technical skills for context:**
|
|
722
|
-
- **platform-engineering** - Understand what your platform team does
|
|
723
|
-
- **sre** - Understand reliability and operations
|
|
724
|
-
- **infrastructure-architecture** - Understand system design patterns
|
|
725
|
-
|
|
726
|
-
---
|
|
727
|
-
|
|
728
|
-
**Remember:** Your value as a technical leader is asking the right questions and making sound decisions based on trade-offs, not being the best coder. Trust your team's technical expertise while providing strategic direction and business context.
|