tech-hub-skills 1.2.0 → 1.5.2

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 (198) hide show
  1. package/{LICENSE → .claude/LICENSE} +21 -21
  2. package/.claude/README.md +291 -0
  3. package/.claude/bin/cli.js +266 -0
  4. package/{bin → .claude/bin}/copilot.js +182 -182
  5. package/{bin → .claude/bin}/postinstall.js +42 -42
  6. package/{tech_hub_skills/skills → .claude/commands}/README.md +336 -336
  7. package/{tech_hub_skills/skills → .claude/commands}/ai-engineer.md +104 -104
  8. package/{tech_hub_skills/skills → .claude/commands}/aws.md +143 -143
  9. package/{tech_hub_skills/skills → .claude/commands}/azure.md +149 -149
  10. package/{tech_hub_skills/skills → .claude/commands}/backend-developer.md +108 -108
  11. package/{tech_hub_skills/skills → .claude/commands}/code-review.md +399 -399
  12. package/{tech_hub_skills/skills → .claude/commands}/compliance-automation.md +747 -747
  13. package/{tech_hub_skills/skills → .claude/commands}/compliance-officer.md +108 -108
  14. package/{tech_hub_skills/skills → .claude/commands}/data-engineer.md +113 -113
  15. package/{tech_hub_skills/skills → .claude/commands}/data-governance.md +102 -102
  16. package/{tech_hub_skills/skills → .claude/commands}/data-scientist.md +123 -123
  17. package/{tech_hub_skills/skills → .claude/commands}/database-admin.md +109 -109
  18. package/{tech_hub_skills/skills → .claude/commands}/devops.md +160 -160
  19. package/{tech_hub_skills/skills → .claude/commands}/docker.md +160 -160
  20. package/{tech_hub_skills/skills → .claude/commands}/enterprise-dashboard.md +613 -613
  21. package/{tech_hub_skills/skills → .claude/commands}/finops.md +184 -184
  22. package/{tech_hub_skills/skills → .claude/commands}/frontend-developer.md +108 -108
  23. package/{tech_hub_skills/skills → .claude/commands}/gcp.md +143 -143
  24. package/{tech_hub_skills/skills → .claude/commands}/ml-engineer.md +115 -115
  25. package/{tech_hub_skills/skills → .claude/commands}/mlops.md +187 -187
  26. package/{tech_hub_skills/skills → .claude/commands}/network-engineer.md +109 -109
  27. package/{tech_hub_skills/skills → .claude/commands}/optimization-advisor.md +329 -329
  28. package/{tech_hub_skills/skills → .claude/commands}/orchestrator.md +623 -623
  29. package/{tech_hub_skills/skills → .claude/commands}/platform-engineer.md +102 -102
  30. package/{tech_hub_skills/skills → .claude/commands}/process-automation.md +226 -226
  31. package/{tech_hub_skills/skills → .claude/commands}/process-changelog.md +184 -184
  32. package/{tech_hub_skills/skills → .claude/commands}/process-documentation.md +484 -484
  33. package/{tech_hub_skills/skills → .claude/commands}/process-kanban.md +324 -324
  34. package/{tech_hub_skills/skills → .claude/commands}/process-versioning.md +214 -214
  35. package/{tech_hub_skills/skills → .claude/commands}/product-designer.md +104 -104
  36. package/{tech_hub_skills/skills → .claude/commands}/project-starter.md +443 -443
  37. package/{tech_hub_skills/skills → .claude/commands}/qa-engineer.md +109 -109
  38. package/{tech_hub_skills/skills → .claude/commands}/security-architect.md +135 -135
  39. package/{tech_hub_skills/skills → .claude/commands}/sre.md +109 -109
  40. package/{tech_hub_skills/skills → .claude/commands}/system-design.md +126 -126
  41. package/{tech_hub_skills/skills → .claude/commands}/technical-writer.md +101 -101
  42. package/.claude/package.json +46 -0
  43. package/{tech_hub_skills → .claude}/roles/ai-engineer/skills/01-prompt-engineering/README.md +252 -252
  44. package/.claude/roles/ai-engineer/skills/01-prompt-engineering/prompt_ab_tester.py +356 -0
  45. package/.claude/roles/ai-engineer/skills/01-prompt-engineering/prompt_template_manager.py +274 -0
  46. package/.claude/roles/ai-engineer/skills/01-prompt-engineering/token_cost_estimator.py +324 -0
  47. package/{tech_hub_skills → .claude}/roles/ai-engineer/skills/02-rag-pipeline/README.md +448 -448
  48. package/.claude/roles/ai-engineer/skills/02-rag-pipeline/document_chunker.py +336 -0
  49. package/.claude/roles/ai-engineer/skills/02-rag-pipeline/rag_pipeline.sql +213 -0
  50. package/{tech_hub_skills → .claude}/roles/ai-engineer/skills/03-agent-orchestration/README.md +599 -599
  51. package/{tech_hub_skills → .claude}/roles/ai-engineer/skills/04-llm-guardrails/README.md +735 -735
  52. package/{tech_hub_skills → .claude}/roles/ai-engineer/skills/05-vector-embeddings/README.md +711 -711
  53. package/{tech_hub_skills → .claude}/roles/ai-engineer/skills/06-llm-evaluation/README.md +777 -777
  54. package/{tech_hub_skills → .claude}/roles/azure/skills/01-infrastructure-fundamentals/README.md +264 -264
  55. package/{tech_hub_skills → .claude}/roles/azure/skills/02-data-factory/README.md +264 -264
  56. package/{tech_hub_skills → .claude}/roles/azure/skills/03-synapse-analytics/README.md +264 -264
  57. package/{tech_hub_skills → .claude}/roles/azure/skills/04-databricks/README.md +264 -264
  58. package/{tech_hub_skills → .claude}/roles/azure/skills/05-functions/README.md +264 -264
  59. package/{tech_hub_skills → .claude}/roles/azure/skills/06-kubernetes-service/README.md +264 -264
  60. package/{tech_hub_skills → .claude}/roles/azure/skills/07-openai-service/README.md +264 -264
  61. package/{tech_hub_skills → .claude}/roles/azure/skills/08-machine-learning/README.md +264 -264
  62. package/{tech_hub_skills → .claude}/roles/azure/skills/09-storage-adls/README.md +264 -264
  63. package/{tech_hub_skills → .claude}/roles/azure/skills/10-networking/README.md +264 -264
  64. package/{tech_hub_skills → .claude}/roles/azure/skills/11-sql-cosmos/README.md +264 -264
  65. package/{tech_hub_skills → .claude}/roles/azure/skills/12-event-hubs/README.md +264 -264
  66. package/{tech_hub_skills → .claude}/roles/code-review/skills/01-automated-code-review/README.md +394 -394
  67. package/{tech_hub_skills → .claude}/roles/code-review/skills/02-pr-review-workflow/README.md +427 -427
  68. package/{tech_hub_skills → .claude}/roles/code-review/skills/03-code-quality-gates/README.md +518 -518
  69. package/{tech_hub_skills → .claude}/roles/code-review/skills/04-reviewer-assignment/README.md +504 -504
  70. package/{tech_hub_skills → .claude}/roles/code-review/skills/05-review-analytics/README.md +540 -540
  71. package/{tech_hub_skills → .claude}/roles/data-engineer/skills/01-lakehouse-architecture/README.md +550 -550
  72. package/.claude/roles/data-engineer/skills/01-lakehouse-architecture/bronze_ingestion.py +337 -0
  73. package/.claude/roles/data-engineer/skills/01-lakehouse-architecture/medallion_queries.sql +300 -0
  74. package/{tech_hub_skills → .claude}/roles/data-engineer/skills/02-etl-pipeline/README.md +580 -580
  75. package/{tech_hub_skills → .claude}/roles/data-engineer/skills/03-data-quality/README.md +579 -579
  76. package/{tech_hub_skills → .claude}/roles/data-engineer/skills/04-streaming-pipelines/README.md +608 -608
  77. package/{tech_hub_skills → .claude}/roles/data-engineer/skills/05-performance-optimization/README.md +547 -547
  78. package/{tech_hub_skills → .claude}/roles/data-governance/skills/01-data-catalog/README.md +112 -112
  79. package/{tech_hub_skills → .claude}/roles/data-governance/skills/02-data-lineage/README.md +129 -129
  80. package/{tech_hub_skills → .claude}/roles/data-governance/skills/03-data-quality-framework/README.md +182 -182
  81. package/{tech_hub_skills → .claude}/roles/data-governance/skills/04-access-control/README.md +39 -39
  82. package/{tech_hub_skills → .claude}/roles/data-governance/skills/05-master-data-management/README.md +40 -40
  83. package/{tech_hub_skills → .claude}/roles/data-governance/skills/06-compliance-privacy/README.md +46 -46
  84. package/{tech_hub_skills → .claude}/roles/data-scientist/skills/01-eda-automation/README.md +230 -230
  85. package/.claude/roles/data-scientist/skills/01-eda-automation/eda_generator.py +446 -0
  86. package/{tech_hub_skills → .claude}/roles/data-scientist/skills/02-statistical-modeling/README.md +264 -264
  87. package/{tech_hub_skills → .claude}/roles/data-scientist/skills/03-feature-engineering/README.md +264 -264
  88. package/{tech_hub_skills → .claude}/roles/data-scientist/skills/04-predictive-modeling/README.md +264 -264
  89. package/{tech_hub_skills → .claude}/roles/data-scientist/skills/05-customer-analytics/README.md +264 -264
  90. package/{tech_hub_skills → .claude}/roles/data-scientist/skills/06-campaign-analysis/README.md +264 -264
  91. package/{tech_hub_skills → .claude}/roles/data-scientist/skills/07-experimentation/README.md +264 -264
  92. package/{tech_hub_skills → .claude}/roles/data-scientist/skills/08-data-visualization/README.md +264 -264
  93. package/{tech_hub_skills → .claude}/roles/devops/skills/01-cicd-pipeline/README.md +264 -264
  94. package/{tech_hub_skills → .claude}/roles/devops/skills/02-container-orchestration/README.md +264 -264
  95. package/{tech_hub_skills → .claude}/roles/devops/skills/03-infrastructure-as-code/README.md +264 -264
  96. package/{tech_hub_skills → .claude}/roles/devops/skills/04-gitops/README.md +264 -264
  97. package/{tech_hub_skills → .claude}/roles/devops/skills/05-environment-management/README.md +264 -264
  98. package/{tech_hub_skills → .claude}/roles/devops/skills/06-automated-testing/README.md +264 -264
  99. package/{tech_hub_skills → .claude}/roles/devops/skills/07-release-management/README.md +264 -264
  100. package/{tech_hub_skills → .claude}/roles/devops/skills/08-monitoring-alerting/README.md +264 -264
  101. package/{tech_hub_skills → .claude}/roles/devops/skills/09-devsecops/README.md +265 -265
  102. package/{tech_hub_skills → .claude}/roles/finops/skills/01-cost-visibility/README.md +264 -264
  103. package/{tech_hub_skills → .claude}/roles/finops/skills/02-resource-tagging/README.md +264 -264
  104. package/{tech_hub_skills → .claude}/roles/finops/skills/03-budget-management/README.md +264 -264
  105. package/{tech_hub_skills → .claude}/roles/finops/skills/04-reserved-instances/README.md +264 -264
  106. package/{tech_hub_skills → .claude}/roles/finops/skills/05-spot-optimization/README.md +264 -264
  107. package/{tech_hub_skills → .claude}/roles/finops/skills/06-storage-tiering/README.md +264 -264
  108. package/{tech_hub_skills → .claude}/roles/finops/skills/07-compute-rightsizing/README.md +264 -264
  109. package/{tech_hub_skills → .claude}/roles/finops/skills/08-chargeback/README.md +264 -264
  110. package/{tech_hub_skills → .claude}/roles/ml-engineer/skills/01-mlops-pipeline/README.md +566 -566
  111. package/{tech_hub_skills → .claude}/roles/ml-engineer/skills/02-feature-engineering/README.md +655 -655
  112. package/{tech_hub_skills → .claude}/roles/ml-engineer/skills/03-model-training/README.md +704 -704
  113. package/{tech_hub_skills → .claude}/roles/ml-engineer/skills/04-model-serving/README.md +845 -845
  114. package/{tech_hub_skills → .claude}/roles/ml-engineer/skills/05-model-monitoring/README.md +874 -874
  115. package/{tech_hub_skills → .claude}/roles/mlops/skills/01-ml-pipeline-orchestration/README.md +264 -264
  116. package/{tech_hub_skills → .claude}/roles/mlops/skills/02-experiment-tracking/README.md +264 -264
  117. package/{tech_hub_skills → .claude}/roles/mlops/skills/03-model-registry/README.md +264 -264
  118. package/{tech_hub_skills → .claude}/roles/mlops/skills/04-feature-store/README.md +264 -264
  119. package/{tech_hub_skills → .claude}/roles/mlops/skills/05-model-deployment/README.md +264 -264
  120. package/{tech_hub_skills → .claude}/roles/mlops/skills/06-model-observability/README.md +264 -264
  121. package/{tech_hub_skills → .claude}/roles/mlops/skills/07-data-versioning/README.md +264 -264
  122. package/{tech_hub_skills → .claude}/roles/mlops/skills/08-ab-testing/README.md +264 -264
  123. package/{tech_hub_skills → .claude}/roles/mlops/skills/09-automated-retraining/README.md +264 -264
  124. package/{tech_hub_skills → .claude}/roles/platform-engineer/skills/01-internal-developer-platform/README.md +153 -153
  125. package/{tech_hub_skills → .claude}/roles/platform-engineer/skills/02-self-service-infrastructure/README.md +57 -57
  126. package/{tech_hub_skills → .claude}/roles/platform-engineer/skills/03-slo-sli-management/README.md +59 -59
  127. package/{tech_hub_skills → .claude}/roles/platform-engineer/skills/04-developer-experience/README.md +57 -57
  128. package/{tech_hub_skills → .claude}/roles/platform-engineer/skills/05-incident-management/README.md +73 -73
  129. package/{tech_hub_skills → .claude}/roles/platform-engineer/skills/06-capacity-management/README.md +59 -59
  130. package/{tech_hub_skills → .claude}/roles/product-designer/skills/01-requirements-discovery/README.md +407 -407
  131. package/{tech_hub_skills → .claude}/roles/product-designer/skills/02-user-research/README.md +382 -382
  132. package/{tech_hub_skills → .claude}/roles/product-designer/skills/03-brainstorming-ideation/README.md +437 -437
  133. package/{tech_hub_skills → .claude}/roles/product-designer/skills/04-ux-design/README.md +496 -496
  134. package/{tech_hub_skills → .claude}/roles/product-designer/skills/05-product-market-fit/README.md +376 -376
  135. package/{tech_hub_skills → .claude}/roles/product-designer/skills/06-stakeholder-management/README.md +412 -412
  136. package/{tech_hub_skills → .claude}/roles/security-architect/skills/01-pii-detection/README.md +319 -319
  137. package/{tech_hub_skills → .claude}/roles/security-architect/skills/02-threat-modeling/README.md +264 -264
  138. package/{tech_hub_skills → .claude}/roles/security-architect/skills/03-infrastructure-security/README.md +264 -264
  139. package/{tech_hub_skills → .claude}/roles/security-architect/skills/04-iam/README.md +264 -264
  140. package/{tech_hub_skills → .claude}/roles/security-architect/skills/05-application-security/README.md +264 -264
  141. package/{tech_hub_skills → .claude}/roles/security-architect/skills/06-secrets-management/README.md +264 -264
  142. package/{tech_hub_skills → .claude}/roles/security-architect/skills/07-security-monitoring/README.md +264 -264
  143. package/{tech_hub_skills → .claude}/roles/system-design/skills/01-architecture-patterns/README.md +337 -337
  144. package/{tech_hub_skills → .claude}/roles/system-design/skills/02-requirements-engineering/README.md +264 -264
  145. package/{tech_hub_skills → .claude}/roles/system-design/skills/03-scalability/README.md +264 -264
  146. package/{tech_hub_skills → .claude}/roles/system-design/skills/04-high-availability/README.md +264 -264
  147. package/{tech_hub_skills → .claude}/roles/system-design/skills/05-cost-optimization-design/README.md +264 -264
  148. package/{tech_hub_skills → .claude}/roles/system-design/skills/06-api-design/README.md +264 -264
  149. package/{tech_hub_skills → .claude}/roles/system-design/skills/07-observability-architecture/README.md +264 -264
  150. package/{tech_hub_skills → .claude}/roles/system-design/skills/08-process-automation/PROCESS_TEMPLATE.md +336 -336
  151. package/{tech_hub_skills → .claude}/roles/system-design/skills/08-process-automation/README.md +521 -521
  152. package/.claude/roles/system-design/skills/08-process-automation/ai_prompt_generator.py +744 -0
  153. package/.claude/roles/system-design/skills/08-process-automation/automation_recommender.py +688 -0
  154. package/.claude/roles/system-design/skills/08-process-automation/plan_generator.py +679 -0
  155. package/.claude/roles/system-design/skills/08-process-automation/process_analyzer.py +528 -0
  156. package/.claude/roles/system-design/skills/08-process-automation/process_parser.py +684 -0
  157. package/.claude/roles/system-design/skills/08-process-automation/role_matcher.py +615 -0
  158. package/.claude/skills/README.md +336 -0
  159. package/.claude/skills/ai-engineer.md +104 -0
  160. package/.claude/skills/aws.md +143 -0
  161. package/.claude/skills/azure.md +149 -0
  162. package/.claude/skills/backend-developer.md +108 -0
  163. package/.claude/skills/code-review.md +399 -0
  164. package/.claude/skills/compliance-automation.md +747 -0
  165. package/.claude/skills/compliance-officer.md +108 -0
  166. package/.claude/skills/data-engineer.md +113 -0
  167. package/.claude/skills/data-governance.md +102 -0
  168. package/.claude/skills/data-scientist.md +123 -0
  169. package/.claude/skills/database-admin.md +109 -0
  170. package/.claude/skills/devops.md +160 -0
  171. package/.claude/skills/docker.md +160 -0
  172. package/.claude/skills/enterprise-dashboard.md +613 -0
  173. package/.claude/skills/finops.md +184 -0
  174. package/.claude/skills/frontend-developer.md +108 -0
  175. package/.claude/skills/gcp.md +143 -0
  176. package/.claude/skills/ml-engineer.md +115 -0
  177. package/.claude/skills/mlops.md +187 -0
  178. package/.claude/skills/network-engineer.md +109 -0
  179. package/.claude/skills/optimization-advisor.md +329 -0
  180. package/.claude/skills/orchestrator.md +623 -0
  181. package/.claude/skills/platform-engineer.md +102 -0
  182. package/.claude/skills/process-automation.md +226 -0
  183. package/.claude/skills/process-changelog.md +184 -0
  184. package/.claude/skills/process-documentation.md +484 -0
  185. package/.claude/skills/process-kanban.md +324 -0
  186. package/.claude/skills/process-versioning.md +214 -0
  187. package/.claude/skills/product-designer.md +104 -0
  188. package/.claude/skills/project-starter.md +443 -0
  189. package/.claude/skills/qa-engineer.md +109 -0
  190. package/.claude/skills/security-architect.md +135 -0
  191. package/.claude/skills/sre.md +109 -0
  192. package/.claude/skills/system-design.md +126 -0
  193. package/.claude/skills/technical-writer.md +101 -0
  194. package/.gitattributes +2 -0
  195. package/GITHUB_COPILOT.md +106 -0
  196. package/README.md +192 -291
  197. package/package.json +16 -46
  198. package/bin/cli.js +0 -241
@@ -1,153 +1,153 @@
1
- # pe-01: Internal Developer Platform (IDP)
2
-
3
- ## Overview
4
-
5
- Build developer portals using Backstage for service catalog, golden path templates, self-service provisioning, and platform documentation.
6
-
7
- ## Key Capabilities
8
-
9
- - **Developer Portal**: Centralized platform UI (Backstage)
10
- - **Service Catalog**: All services, APIs, documentation
11
- - **Golden Path Templates**: Scaffolding for new services
12
- - **Self-Service Provisioning**: One-click infrastructure
13
- - **Platform Documentation**: Unified docs portal
14
-
15
- ## Tools & Technologies
16
-
17
- - **Backstage**: Open-source developer portal
18
- - **Port**: Developer portal platform
19
- - **Humanitec**: Platform orchestrator
20
- - **Kratix**: Platform-as-a-product framework
21
-
22
- ## Implementation
23
-
24
- ### 1. Backstage Setup
25
-
26
- ```yaml
27
- # app-config.yaml
28
- app:
29
- title: Tech Hub Platform
30
- baseUrl: http://localhost:3000
31
-
32
- organization:
33
- name: Tech Innovation Hub
34
-
35
- backend:
36
- baseUrl: http://localhost:7007
37
- listen:
38
- port: 7007
39
- database:
40
- client: pg
41
- connection:
42
- host: ${POSTGRES_HOST}
43
- port: ${POSTGRES_PORT}
44
-
45
- catalog:
46
- providers:
47
- github:
48
- organization: 'your-org'
49
- catalogPath: '/catalog-info.yaml'
50
- ```
51
-
52
- ### 2. Service Catalog
53
-
54
- ```yaml
55
- # catalog-info.yaml
56
- apiVersion: backstage.io/v1alpha1
57
- kind: Component
58
- metadata:
59
- name: customer-api
60
- description: Customer management API
61
- annotations:
62
- github.com/project-slug: your-org/customer-api
63
- sonarqube.org/project-key: customer-api
64
- spec:
65
- type: service
66
- lifecycle: production
67
- owner: team-platform
68
- system: customer-domain
69
- providesApis:
70
- - customer-api
71
- consumesApis:
72
- - auth-api
73
- ```
74
-
75
- ### 3. Golden Path Template
76
-
77
- ```yaml
78
- # template.yaml
79
- apiVersion: scaffolder.backstage.io/v1beta3
80
- kind: Template
81
- metadata:
82
- name: python-fastapi-service
83
- title: Python FastAPI Service
84
- description: Create a new Python FastAPI microservice
85
- spec:
86
- owner: platform-team
87
- type: service
88
-
89
- parameters:
90
- - title: Service Information
91
- required:
92
- - name
93
- - owner
94
- properties:
95
- name:
96
- title: Service Name
97
- type: string
98
- description: Unique name for the service
99
- owner:
100
- title: Owner
101
- type: string
102
- description: Team that owns this service
103
-
104
- steps:
105
- - id: fetch-template
106
- name: Fetch Template
107
- action: fetch:template
108
- input:
109
- url: ./skeleton
110
- values:
111
- name: ${{ parameters.name }}
112
- owner: ${{ parameters.owner }}
113
-
114
- - id: publish
115
- name: Publish to GitHub
116
- action: publish:github
117
- input:
118
- repoUrl: github.com?owner=your-org&repo=${{ parameters.name }}
119
-
120
- - id: register
121
- name: Register Component
122
- action: catalog:register
123
- input:
124
- repoContentsUrl: ${{ steps.publish.output.repoContentsUrl }}
125
- catalogInfoPath: '/catalog-info.yaml'
126
- ```
127
-
128
- ## Best Practices
129
-
130
- 1. **Start Small**: Begin with service catalog, add features iteratively
131
- 2. **Golden Paths**: Create templates for 80% of use cases
132
- 3. **Self-Service**: Minimize manual ticket workflows
133
- 4. **Measure Adoption**: Track active users and template usage
134
- 5. **Documentation**: Keep docs updated and searchable
135
-
136
- ## Cost Optimization
137
-
138
- - Host Backstage on Kubernetes spot instances
139
- - Use PostgreSQL managed service (cheaper than self-hosted)
140
- - Cache plugin data to reduce API calls
141
- - Right-size backend resources
142
-
143
- ## Integration
144
-
145
- **Connects with:**
146
- - do-01 (CI/CD): Link to deployment pipelines
147
- - do-02 (Kubernetes): Service deployment info
148
- - pe-03 (SLO): Display SLO status
149
- - dg-01 (Catalog): Link to data catalog
150
-
151
- ## Quick Win
152
-
153
- Deploy Backstage with GitHub integration, import 5 services to catalog, show team the unified view of their services.
1
+ # pe-01: Internal Developer Platform (IDP)
2
+
3
+ ## Overview
4
+
5
+ Build developer portals using Backstage for service catalog, golden path templates, self-service provisioning, and platform documentation.
6
+
7
+ ## Key Capabilities
8
+
9
+ - **Developer Portal**: Centralized platform UI (Backstage)
10
+ - **Service Catalog**: All services, APIs, documentation
11
+ - **Golden Path Templates**: Scaffolding for new services
12
+ - **Self-Service Provisioning**: One-click infrastructure
13
+ - **Platform Documentation**: Unified docs portal
14
+
15
+ ## Tools & Technologies
16
+
17
+ - **Backstage**: Open-source developer portal
18
+ - **Port**: Developer portal platform
19
+ - **Humanitec**: Platform orchestrator
20
+ - **Kratix**: Platform-as-a-product framework
21
+
22
+ ## Implementation
23
+
24
+ ### 1. Backstage Setup
25
+
26
+ ```yaml
27
+ # app-config.yaml
28
+ app:
29
+ title: Tech Hub Platform
30
+ baseUrl: http://localhost:3000
31
+
32
+ organization:
33
+ name: Tech Innovation Hub
34
+
35
+ backend:
36
+ baseUrl: http://localhost:7007
37
+ listen:
38
+ port: 7007
39
+ database:
40
+ client: pg
41
+ connection:
42
+ host: ${POSTGRES_HOST}
43
+ port: ${POSTGRES_PORT}
44
+
45
+ catalog:
46
+ providers:
47
+ github:
48
+ organization: 'your-org'
49
+ catalogPath: '/catalog-info.yaml'
50
+ ```
51
+
52
+ ### 2. Service Catalog
53
+
54
+ ```yaml
55
+ # catalog-info.yaml
56
+ apiVersion: backstage.io/v1alpha1
57
+ kind: Component
58
+ metadata:
59
+ name: customer-api
60
+ description: Customer management API
61
+ annotations:
62
+ github.com/project-slug: your-org/customer-api
63
+ sonarqube.org/project-key: customer-api
64
+ spec:
65
+ type: service
66
+ lifecycle: production
67
+ owner: team-platform
68
+ system: customer-domain
69
+ providesApis:
70
+ - customer-api
71
+ consumesApis:
72
+ - auth-api
73
+ ```
74
+
75
+ ### 3. Golden Path Template
76
+
77
+ ```yaml
78
+ # template.yaml
79
+ apiVersion: scaffolder.backstage.io/v1beta3
80
+ kind: Template
81
+ metadata:
82
+ name: python-fastapi-service
83
+ title: Python FastAPI Service
84
+ description: Create a new Python FastAPI microservice
85
+ spec:
86
+ owner: platform-team
87
+ type: service
88
+
89
+ parameters:
90
+ - title: Service Information
91
+ required:
92
+ - name
93
+ - owner
94
+ properties:
95
+ name:
96
+ title: Service Name
97
+ type: string
98
+ description: Unique name for the service
99
+ owner:
100
+ title: Owner
101
+ type: string
102
+ description: Team that owns this service
103
+
104
+ steps:
105
+ - id: fetch-template
106
+ name: Fetch Template
107
+ action: fetch:template
108
+ input:
109
+ url: ./skeleton
110
+ values:
111
+ name: ${{ parameters.name }}
112
+ owner: ${{ parameters.owner }}
113
+
114
+ - id: publish
115
+ name: Publish to GitHub
116
+ action: publish:github
117
+ input:
118
+ repoUrl: github.com?owner=your-org&repo=${{ parameters.name }}
119
+
120
+ - id: register
121
+ name: Register Component
122
+ action: catalog:register
123
+ input:
124
+ repoContentsUrl: ${{ steps.publish.output.repoContentsUrl }}
125
+ catalogInfoPath: '/catalog-info.yaml'
126
+ ```
127
+
128
+ ## Best Practices
129
+
130
+ 1. **Start Small**: Begin with service catalog, add features iteratively
131
+ 2. **Golden Paths**: Create templates for 80% of use cases
132
+ 3. **Self-Service**: Minimize manual ticket workflows
133
+ 4. **Measure Adoption**: Track active users and template usage
134
+ 5. **Documentation**: Keep docs updated and searchable
135
+
136
+ ## Cost Optimization
137
+
138
+ - Host Backstage on Kubernetes spot instances
139
+ - Use PostgreSQL managed service (cheaper than self-hosted)
140
+ - Cache plugin data to reduce API calls
141
+ - Right-size backend resources
142
+
143
+ ## Integration
144
+
145
+ **Connects with:**
146
+ - do-01 (CI/CD): Link to deployment pipelines
147
+ - do-02 (Kubernetes): Service deployment info
148
+ - pe-03 (SLO): Display SLO status
149
+ - dg-01 (Catalog): Link to data catalog
150
+
151
+ ## Quick Win
152
+
153
+ Deploy Backstage with GitHub integration, import 5 services to catalog, show team the unified view of their services.
@@ -1,57 +1,57 @@
1
- # pe-02: Self-Service Infrastructure
2
-
3
- ## Overview
4
-
5
- Enable developers to provision namespaces, databases, secrets, and environments through self-service automation.
6
-
7
- ## Key Capabilities
8
-
9
- - **Namespace Provisioning**: Auto-create K8s namespaces
10
- - **Database Provisioning**: Self-service DB creation
11
- - **Secret Management**: Automated secret injection
12
- - **Resource Quotas**: Automatic quota management
13
- - **Environment Management**: Dev/staging/prod provisioning
14
-
15
- ## Implementation
16
-
17
- ```python
18
- # Self-service namespace provisioning
19
- from kubernetes import client, config
20
-
21
- def provision_namespace(team_name, environment):
22
- """Create namespace with quotas and RBAC"""
23
- config.load_kube_config()
24
- v1 = client.CoreV1Api()
25
-
26
- # Create namespace
27
- namespace = client.V1Namespace(
28
- metadata=client.V1ObjectMeta(
29
- name=f"{team_name}-{environment}",
30
- labels={
31
- "team": team_name,
32
- "environment": environment
33
- }
34
- )
35
- )
36
- v1.create_namespace(namespace)
37
-
38
- # Apply resource quota
39
- quota = client.V1ResourceQuota(
40
- metadata=client.V1ObjectMeta(name="default-quota"),
41
- spec=client.V1ResourceQuotaSpec(
42
- hard={
43
- "requests.cpu": "10",
44
- "requests.memory": "20Gi",
45
- "pods": "50"
46
- }
47
- )
48
- )
49
- v1.create_namespaced_resource_quota(
50
- namespace=namespace.metadata.name,
51
- body=quota
52
- )
53
- ```
54
-
55
- ## Integration
56
-
57
- **Connects with:** do-02 (Kubernetes), sa-06 (Secrets), pe-01 (IDP)
1
+ # pe-02: Self-Service Infrastructure
2
+
3
+ ## Overview
4
+
5
+ Enable developers to provision namespaces, databases, secrets, and environments through self-service automation.
6
+
7
+ ## Key Capabilities
8
+
9
+ - **Namespace Provisioning**: Auto-create K8s namespaces
10
+ - **Database Provisioning**: Self-service DB creation
11
+ - **Secret Management**: Automated secret injection
12
+ - **Resource Quotas**: Automatic quota management
13
+ - **Environment Management**: Dev/staging/prod provisioning
14
+
15
+ ## Implementation
16
+
17
+ ```python
18
+ # Self-service namespace provisioning
19
+ from kubernetes import client, config
20
+
21
+ def provision_namespace(team_name, environment):
22
+ """Create namespace with quotas and RBAC"""
23
+ config.load_kube_config()
24
+ v1 = client.CoreV1Api()
25
+
26
+ # Create namespace
27
+ namespace = client.V1Namespace(
28
+ metadata=client.V1ObjectMeta(
29
+ name=f"{team_name}-{environment}",
30
+ labels={
31
+ "team": team_name,
32
+ "environment": environment
33
+ }
34
+ )
35
+ )
36
+ v1.create_namespace(namespace)
37
+
38
+ # Apply resource quota
39
+ quota = client.V1ResourceQuota(
40
+ metadata=client.V1ObjectMeta(name="default-quota"),
41
+ spec=client.V1ResourceQuotaSpec(
42
+ hard={
43
+ "requests.cpu": "10",
44
+ "requests.memory": "20Gi",
45
+ "pods": "50"
46
+ }
47
+ )
48
+ )
49
+ v1.create_namespaced_resource_quota(
50
+ namespace=namespace.metadata.name,
51
+ body=quota
52
+ )
53
+ ```
54
+
55
+ ## Integration
56
+
57
+ **Connects with:** do-02 (Kubernetes), sa-06 (Secrets), pe-01 (IDP)
@@ -1,59 +1,59 @@
1
- # pe-03: SLO/SLI Management
2
-
3
- ## Overview
4
-
5
- Define and track Service Level Objectives (SLOs), manage error budgets, instrument SLIs, and create SLO-based alerting.
6
-
7
- ## Key Capabilities
8
-
9
- - **SLO Definition**: Availability, latency, error rate targets
10
- - **Error Budget Management**: Track remaining error budget
11
- - **SLI Instrumentation**: Collect service-level indicators
12
- - **SLO-Based Alerting**: Alert on error budget burn
13
- - **SLO Dashboards**: Visualize SLO compliance
14
-
15
- ## Implementation
16
-
17
- ```yaml
18
- # SLO definition (Sloth)
19
- version: prometheus/v1
20
- service: customer-api
21
- slos:
22
- - name: requests-availability
23
- objective: 99.9
24
- description: 99.9% of requests successful
25
- sli:
26
- events:
27
- error_query: |
28
- sum(rate(http_requests_total{job="customer-api",code=~"5.."}[5m]))
29
- total_query: |
30
- sum(rate(http_requests_total{job="customer-api"}[5m]))
31
- alerting:
32
- name: CustomerAPIHighErrorRate
33
- labels:
34
- severity: page
35
- annotations:
36
- summary: High error rate on customer API
37
- ```
38
-
39
- ```python
40
- # Error budget calculation
41
- def calculate_error_budget(slo_target, time_window_days=30):
42
- """Calculate remaining error budget"""
43
- total_minutes = time_window_days * 24 * 60
44
- allowed_downtime = total_minutes * (1 - slo_target/100)
45
-
46
- actual_downtime = get_actual_downtime(time_window_days)
47
- remaining_budget = allowed_downtime - actual_downtime
48
-
49
- return {
50
- 'allowed_downtime_minutes': allowed_downtime,
51
- 'actual_downtime_minutes': actual_downtime,
52
- 'remaining_budget_minutes': remaining_budget,
53
- 'budget_consumed_percent': (actual_downtime / allowed_downtime) * 100
54
- }
55
- ```
56
-
57
- ## Integration
58
-
59
- **Connects with:** do-08 (Monitoring), pe-01 (IDP), pe-05 (Incident Management)
1
+ # pe-03: SLO/SLI Management
2
+
3
+ ## Overview
4
+
5
+ Define and track Service Level Objectives (SLOs), manage error budgets, instrument SLIs, and create SLO-based alerting.
6
+
7
+ ## Key Capabilities
8
+
9
+ - **SLO Definition**: Availability, latency, error rate targets
10
+ - **Error Budget Management**: Track remaining error budget
11
+ - **SLI Instrumentation**: Collect service-level indicators
12
+ - **SLO-Based Alerting**: Alert on error budget burn
13
+ - **SLO Dashboards**: Visualize SLO compliance
14
+
15
+ ## Implementation
16
+
17
+ ```yaml
18
+ # SLO definition (Sloth)
19
+ version: prometheus/v1
20
+ service: customer-api
21
+ slos:
22
+ - name: requests-availability
23
+ objective: 99.9
24
+ description: 99.9% of requests successful
25
+ sli:
26
+ events:
27
+ error_query: |
28
+ sum(rate(http_requests_total{job="customer-api",code=~"5.."}[5m]))
29
+ total_query: |
30
+ sum(rate(http_requests_total{job="customer-api"}[5m]))
31
+ alerting:
32
+ name: CustomerAPIHighErrorRate
33
+ labels:
34
+ severity: page
35
+ annotations:
36
+ summary: High error rate on customer API
37
+ ```
38
+
39
+ ```python
40
+ # Error budget calculation
41
+ def calculate_error_budget(slo_target, time_window_days=30):
42
+ """Calculate remaining error budget"""
43
+ total_minutes = time_window_days * 24 * 60
44
+ allowed_downtime = total_minutes * (1 - slo_target/100)
45
+
46
+ actual_downtime = get_actual_downtime(time_window_days)
47
+ remaining_budget = allowed_downtime - actual_downtime
48
+
49
+ return {
50
+ 'allowed_downtime_minutes': allowed_downtime,
51
+ 'actual_downtime_minutes': actual_downtime,
52
+ 'remaining_budget_minutes': remaining_budget,
53
+ 'budget_consumed_percent': (actual_downtime / allowed_downtime) * 100
54
+ }
55
+ ```
56
+
57
+ ## Integration
58
+
59
+ **Connects with:** do-08 (Monitoring), pe-01 (IDP), pe-05 (Incident Management)
@@ -1,57 +1,57 @@
1
- # pe-04: Developer Experience
2
-
3
- ## Overview
4
-
5
- Improve developer velocity through automated onboarding, documentation-as-code, CLI tools, and DORA metrics tracking.
6
-
7
- ## Key Capabilities
8
-
9
- - **Automated Onboarding**: Zero-to-commit in < 1 hour
10
- - **Documentation-as-Code**: Docs in git, versioned
11
- - **Developer CLI**: Unified command-line tools
12
- - **DORA Metrics**: Deployment frequency, lead time, MTTR, change fail rate
13
- - **Feedback Collection**: Regular developer surveys
14
-
15
- ## Implementation
16
-
17
- ```bash
18
- # Developer CLI
19
- #!/bin/bash
20
- # platform-cli
21
-
22
- case $1 in
23
- create-service)
24
- backstage scaffold $2 --template python-fastapi
25
- ;;
26
- deploy)
27
- kubectl apply -f k8s/ --namespace=$2
28
- ;;
29
- logs)
30
- kubectl logs -f deployment/$2 -n $3
31
- ;;
32
- metrics)
33
- open "https://grafana.company.com/d/dora-metrics"
34
- ;;
35
- esac
36
- ```
37
-
38
- ```python
39
- # DORA metrics collection
40
- def calculate_dora_metrics(team_name, days=30):
41
- """Calculate DORA metrics"""
42
- deployments = get_deployments(team_name, days)
43
- incidents = get_incidents(team_name, days)
44
-
45
- metrics = {
46
- 'deployment_frequency': len(deployments) / days,
47
- 'lead_time_hours': sum(d.lead_time for d in deployments) / len(deployments),
48
- 'mttr_hours': sum(i.resolution_time for i in incidents) / len(incidents) if incidents else 0,
49
- 'change_fail_rate': len([d for d in deployments if d.failed]) / len(deployments)
50
- }
51
-
52
- return metrics
53
- ```
54
-
55
- ## Integration
56
-
57
- **Connects with:** pe-01 (IDP), do-01 (CI/CD), pe-05 (Incident Management)
1
+ # pe-04: Developer Experience
2
+
3
+ ## Overview
4
+
5
+ Improve developer velocity through automated onboarding, documentation-as-code, CLI tools, and DORA metrics tracking.
6
+
7
+ ## Key Capabilities
8
+
9
+ - **Automated Onboarding**: Zero-to-commit in < 1 hour
10
+ - **Documentation-as-Code**: Docs in git, versioned
11
+ - **Developer CLI**: Unified command-line tools
12
+ - **DORA Metrics**: Deployment frequency, lead time, MTTR, change fail rate
13
+ - **Feedback Collection**: Regular developer surveys
14
+
15
+ ## Implementation
16
+
17
+ ```bash
18
+ # Developer CLI
19
+ #!/bin/bash
20
+ # platform-cli
21
+
22
+ case $1 in
23
+ create-service)
24
+ backstage scaffold $2 --template python-fastapi
25
+ ;;
26
+ deploy)
27
+ kubectl apply -f k8s/ --namespace=$2
28
+ ;;
29
+ logs)
30
+ kubectl logs -f deployment/$2 -n $3
31
+ ;;
32
+ metrics)
33
+ open "https://grafana.company.com/d/dora-metrics"
34
+ ;;
35
+ esac
36
+ ```
37
+
38
+ ```python
39
+ # DORA metrics collection
40
+ def calculate_dora_metrics(team_name, days=30):
41
+ """Calculate DORA metrics"""
42
+ deployments = get_deployments(team_name, days)
43
+ incidents = get_incidents(team_name, days)
44
+
45
+ metrics = {
46
+ 'deployment_frequency': len(deployments) / days,
47
+ 'lead_time_hours': sum(d.lead_time for d in deployments) / len(deployments),
48
+ 'mttr_hours': sum(i.resolution_time for i in incidents) / len(incidents) if incidents else 0,
49
+ 'change_fail_rate': len([d for d in deployments if d.failed]) / len(deployments)
50
+ }
51
+
52
+ return metrics
53
+ ```
54
+
55
+ ## Integration
56
+
57
+ **Connects with:** pe-01 (IDP), do-01 (CI/CD), pe-05 (Incident Management)