mindforge-cc 10.0.3 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/.mindforge/MINDFORGE-V2-SCHEMA.json +43 -10
  2. package/.mindforge/config.json +30 -2
  3. package/.mindforge/engine/cross-model-eval.md +74 -0
  4. package/.mindforge/engine/proactive/signal-detector.md +60 -0
  5. package/.mindforge/engine/proactive/suggestion-engine.md +100 -0
  6. package/.mindforge/personas/agent-architect.md +57 -0
  7. package/.mindforge/personas/agent-evaluator.md +162 -0
  8. package/.mindforge/personas/agent-memory-designer.md +157 -0
  9. package/.mindforge/personas/agent-ops-engineer.md +120 -0
  10. package/.mindforge/personas/agent-orchestrator.md +112 -0
  11. package/.mindforge/personas/ai-economist.md +57 -0
  12. package/.mindforge/personas/ai-safety-engineer.md +57 -0
  13. package/.mindforge/personas/analytics-engineer.md +57 -0
  14. package/.mindforge/personas/anti-pattern-hunter.md +61 -0
  15. package/.mindforge/personas/api-gateway-designer.md +132 -0
  16. package/.mindforge/personas/auth-engineer.md +112 -0
  17. package/.mindforge/personas/build-engineer.md +57 -0
  18. package/.mindforge/personas/business-analyst.md +56 -0
  19. package/.mindforge/personas/cache-architect.md +100 -0
  20. package/.mindforge/personas/causal-scientist.md +57 -0
  21. package/.mindforge/personas/cdn-architect.md +118 -0
  22. package/.mindforge/personas/change-agent.md +104 -0
  23. package/.mindforge/personas/code-narrator.md +52 -0
  24. package/.mindforge/personas/codegen-specialist.md +68 -0
  25. package/.mindforge/personas/communication-architect.md +102 -0
  26. package/.mindforge/personas/compliance-engineer.md +96 -0
  27. package/.mindforge/personas/consensus-engineer.md +116 -0
  28. package/.mindforge/personas/contract-tester.md +60 -192
  29. package/.mindforge/personas/data-architect.md +108 -0
  30. package/.mindforge/personas/data-mesh-architect.md +57 -0
  31. package/.mindforge/personas/data-pipeline-architect.md +120 -0
  32. package/.mindforge/personas/de-sloppifier.md +60 -0
  33. package/.mindforge/personas/debt-manager.md +66 -0
  34. package/.mindforge/personas/decision-architect.md +82 -51
  35. package/.mindforge/personas/deployment-captain.md +74 -0
  36. package/.mindforge/personas/design-system-lead.md +112 -0
  37. package/.mindforge/personas/dmux-orchestrator.md +75 -0
  38. package/.mindforge/personas/dx-engineer.md +96 -0
  39. package/.mindforge/personas/ecommerce-engineer.md +57 -0
  40. package/.mindforge/personas/edge-engineer.md +94 -0
  41. package/.mindforge/personas/edtech-architect.md +106 -0
  42. package/.mindforge/personas/embedding-architect.md +57 -0
  43. package/.mindforge/personas/environment-engineer.md +57 -0
  44. package/.mindforge/personas/eval-judge.md +55 -0
  45. package/.mindforge/personas/event-architect.md +102 -0
  46. package/.mindforge/personas/experiment-designer.md +138 -0
  47. package/.mindforge/personas/feature-store-engineer.md +57 -0
  48. package/.mindforge/personas/finops-analyst.md +66 -0
  49. package/.mindforge/personas/fintech-architect.md +57 -0
  50. package/.mindforge/personas/flutter-engineer.md +104 -0
  51. package/.mindforge/personas/gaming-engineer.md +57 -0
  52. package/.mindforge/personas/graphql-designer.md +73 -0
  53. package/.mindforge/personas/healthcare-engineer.md +57 -0
  54. package/.mindforge/personas/hiring-strategist.md +105 -0
  55. package/.mindforge/personas/hitl-architect.md +165 -0
  56. package/.mindforge/personas/i18n-architect.md +69 -0
  57. package/.mindforge/personas/iot-architect.md +105 -0
  58. package/.mindforge/personas/knowledge-curator.md +139 -0
  59. package/.mindforge/personas/knowledge-engineer.md +57 -0
  60. package/.mindforge/personas/lakehouse-architect.md +57 -0
  61. package/.mindforge/personas/llm-orchestrator.md +57 -0
  62. package/.mindforge/personas/logistics-architect.md +106 -0
  63. package/.mindforge/personas/market-analyst.md +53 -0
  64. package/.mindforge/personas/marketplace-engineer.md +105 -0
  65. package/.mindforge/personas/mcp-designer.md +54 -0
  66. package/.mindforge/personas/meeting-designer.md +104 -0
  67. package/.mindforge/personas/mentorship-lead.md +106 -0
  68. package/.mindforge/personas/migration-architect.md +57 -0
  69. package/.mindforge/personas/ml-ops-engineer.md +101 -0
  70. package/.mindforge/personas/mobile-architect.md +105 -0
  71. package/.mindforge/personas/mobile-security-engineer.md +106 -0
  72. package/.mindforge/personas/multi-tenancy-architect.md +71 -0
  73. package/.mindforge/personas/multimodal-engineer.md +57 -0
  74. package/.mindforge/personas/offline-specialist.md +105 -0
  75. package/.mindforge/personas/onboarding-navigator.md +63 -0
  76. package/.mindforge/personas/payments-engineer.md +135 -0
  77. package/.mindforge/personas/pipeline-engineer.md +115 -0
  78. package/.mindforge/personas/platform-engineer.md +97 -0
  79. package/.mindforge/personas/platform-lead.md +57 -0
  80. package/.mindforge/personas/privacy-engineer.md +57 -0
  81. package/.mindforge/personas/product-owner.md +56 -0
  82. package/.mindforge/personas/productivity-analyst.md +57 -0
  83. package/.mindforge/personas/prompt-architect.md +101 -0
  84. package/.mindforge/personas/proofreader.md +53 -0
  85. package/.mindforge/personas/pwa-architect.md +105 -0
  86. package/.mindforge/personas/quality-scorer.md +63 -0
  87. package/.mindforge/personas/react-native-engineer.md +106 -0
  88. package/.mindforge/personas/resilience-engineer.md +69 -0
  89. package/.mindforge/personas/rfc-architect.md +64 -0
  90. package/.mindforge/personas/saga-orchestrator.md +80 -0
  91. package/.mindforge/personas/secrets-engineer.md +57 -0
  92. package/.mindforge/personas/skill-smith.md +79 -0
  93. package/.mindforge/personas/sre-lead.md +107 -0
  94. package/.mindforge/personas/stream-engineer.md +57 -0
  95. package/.mindforge/personas/streaming-engineer.md +64 -0
  96. package/.mindforge/personas/swarm-templates.json +674 -44
  97. package/.mindforge/personas/system-designer.md +57 -0
  98. package/.mindforge/personas/team-coach.md +120 -0
  99. package/.mindforge/personas/tech-lead-coach.md +103 -0
  100. package/.mindforge/personas/technical-writer-lead.md +111 -0
  101. package/.mindforge/personas/vibe-checker.md +75 -0
  102. package/.mindforge/personas/worktree-manager.md +56 -0
  103. package/.mindforge/personas/zero-trust-engineer.md +113 -0
  104. package/.mindforge/skills/a11y-testing/SKILL.md +143 -0
  105. package/.mindforge/skills/agent-evaluation-framework/SKILL.md +227 -0
  106. package/.mindforge/skills/agent-memory-design/SKILL.md +199 -0
  107. package/.mindforge/skills/agent-orchestration-patterns/SKILL.md +129 -0
  108. package/.mindforge/skills/agent-tool-selection/SKILL.md +204 -0
  109. package/.mindforge/skills/ai-agent-deployment/SKILL.md +176 -0
  110. package/.mindforge/skills/ai-cost-management/SKILL.md +57 -0
  111. package/.mindforge/skills/ai-safety-alignment/SKILL.md +53 -0
  112. package/.mindforge/skills/analytics-instrumentation/SKILL.md +172 -0
  113. package/.mindforge/skills/api-gateway-patterns/SKILL.md +177 -0
  114. package/.mindforge/skills/api-marketplace/SKILL.md +56 -0
  115. package/.mindforge/skills/api-versioning/SKILL.md +100 -0
  116. package/.mindforge/skills/app-store-deployment/SKILL.md +44 -0
  117. package/.mindforge/skills/architecture-tradeoff-analysis/SKILL.md +97 -0
  118. package/.mindforge/skills/audit-logging/SKILL.md +140 -0
  119. package/.mindforge/skills/auth-patterns/SKILL.md +148 -0
  120. package/.mindforge/skills/autonomous-agent-harness/SKILL.md +218 -0
  121. package/.mindforge/skills/autonomous-agents/SKILL.md +59 -0
  122. package/.mindforge/skills/build-system-optimization/SKILL.md +54 -0
  123. package/.mindforge/skills/build-vs-buy/SKILL.md +80 -0
  124. package/.mindforge/skills/bundle-optimization/SKILL.md +174 -0
  125. package/.mindforge/skills/business-analyst/SKILL.md +82 -0
  126. package/.mindforge/skills/caching-strategies/SKILL.md +132 -0
  127. package/.mindforge/skills/capacity-planning/SKILL.md +96 -0
  128. package/.mindforge/skills/causal-inference/SKILL.md +42 -0
  129. package/.mindforge/skills/cdn-optimization/SKILL.md +212 -0
  130. package/.mindforge/skills/change-management/SKILL.md +106 -0
  131. package/.mindforge/skills/chaos-engineering/SKILL.md +99 -0
  132. package/.mindforge/skills/ci-cd-pipeline/SKILL.md +118 -0
  133. package/.mindforge/skills/cli-design/SKILL.md +118 -0
  134. package/.mindforge/skills/code-generation-patterns/SKILL.md +92 -0
  135. package/.mindforge/skills/code-review-methodology/SKILL.md +180 -0
  136. package/.mindforge/skills/code-tour/SKILL.md +145 -0
  137. package/.mindforge/skills/codebase-onboarding/SKILL.md +95 -0
  138. package/.mindforge/skills/compliance-as-code/SKILL.md +195 -0
  139. package/.mindforge/skills/conflict-resolution/SKILL.md +87 -0
  140. package/.mindforge/skills/connection-pooling/SKILL.md +151 -0
  141. package/.mindforge/skills/container-security/SKILL.md +151 -0
  142. package/.mindforge/skills/context-engineering/SKILL.md +114 -0
  143. package/.mindforge/skills/contract-testing/SKILL.md +85 -0
  144. package/.mindforge/skills/cost-estimation/SKILL.md +82 -0
  145. package/.mindforge/skills/cqrs-event-sourcing/SKILL.md +95 -0
  146. package/.mindforge/skills/cross-platform-testing/SKILL.md +43 -0
  147. package/.mindforge/skills/data-governance/SKILL.md +42 -0
  148. package/.mindforge/skills/data-lakehouse/SKILL.md +42 -0
  149. package/.mindforge/skills/data-mesh/SKILL.md +42 -0
  150. package/.mindforge/skills/data-modeling/SKILL.md +107 -0
  151. package/.mindforge/skills/data-pipeline-design/SKILL.md +171 -0
  152. package/.mindforge/skills/data-privacy-engineering/SKILL.md +42 -0
  153. package/.mindforge/skills/database-performance/SKILL.md +174 -0
  154. package/.mindforge/skills/database-sharding-advanced/SKILL.md +206 -0
  155. package/.mindforge/skills/de-sloppify/SKILL.md +120 -0
  156. package/.mindforge/skills/defense-in-depth/SKILL.md +84 -0
  157. package/.mindforge/skills/delegation-patterns/SKILL.md +123 -0
  158. package/.mindforge/skills/dependency-management/SKILL.md +94 -0
  159. package/.mindforge/skills/deployment-workflow/SKILL.md +135 -0
  160. package/.mindforge/skills/design-system/SKILL.md +113 -0
  161. package/.mindforge/skills/developer-onboarding/SKILL.md +99 -0
  162. package/.mindforge/skills/developer-productivity-metrics/SKILL.md +59 -0
  163. package/.mindforge/skills/distributed-consensus/SKILL.md +141 -0
  164. package/.mindforge/skills/dmux-workflows/SKILL.md +141 -0
  165. package/.mindforge/skills/dns-architecture/SKILL.md +167 -0
  166. package/.mindforge/skills/ecommerce-architecture/SKILL.md +41 -0
  167. package/.mindforge/skills/edge-computing/SKILL.md +91 -0
  168. package/.mindforge/skills/edtech-platform/SKILL.md +41 -0
  169. package/.mindforge/skills/email-deliverability/SKILL.md +177 -0
  170. package/.mindforge/skills/embedding-systems/SKILL.md +55 -0
  171. package/.mindforge/skills/environment-management/SKILL.md +54 -0
  172. package/.mindforge/skills/error-handling-architecture/SKILL.md +118 -0
  173. package/.mindforge/skills/estimation-techniques/SKILL.md +113 -0
  174. package/.mindforge/skills/eval-harness/SKILL.md +180 -0
  175. package/.mindforge/skills/event-driven-architecture/SKILL.md +162 -0
  176. package/.mindforge/skills/experiment-design/SKILL.md +139 -0
  177. package/.mindforge/skills/experiment-platform/SKILL.md +43 -0
  178. package/.mindforge/skills/feature-engineering/SKILL.md +42 -0
  179. package/.mindforge/skills/feature-flag-management/SKILL.md +183 -0
  180. package/.mindforge/skills/fine-tuning-workflow/SKILL.md +189 -0
  181. package/.mindforge/skills/fintech-patterns/SKILL.md +41 -0
  182. package/.mindforge/skills/flutter-architecture/SKILL.md +42 -0
  183. package/.mindforge/skills/gaming-backend/SKILL.md +41 -0
  184. package/.mindforge/skills/git-workflow-design/SKILL.md +129 -0
  185. package/.mindforge/skills/graceful-degradation/SKILL.md +95 -0
  186. package/.mindforge/skills/graphql-patterns/SKILL.md +243 -0
  187. package/.mindforge/skills/guardrails-and-safety/SKILL.md +137 -0
  188. package/.mindforge/skills/healthcare-systems/SKILL.md +40 -0
  189. package/.mindforge/skills/hiring-engineering/SKILL.md +119 -0
  190. package/.mindforge/skills/human-in-the-loop-design/SKILL.md +234 -0
  191. package/.mindforge/skills/i18n-architecture/SKILL.md +147 -0
  192. package/.mindforge/skills/idempotency-patterns/SKILL.md +84 -0
  193. package/.mindforge/skills/incident-communication/SKILL.md +96 -0
  194. package/.mindforge/skills/incident-management/SKILL.md +97 -0
  195. package/.mindforge/skills/infrastructure-as-code/SKILL.md +98 -0
  196. package/.mindforge/skills/instinct-clustering/SKILL.md +190 -0
  197. package/.mindforge/skills/internal-developer-platform/SKILL.md +51 -0
  198. package/.mindforge/skills/iot-platform/SKILL.md +41 -0
  199. package/.mindforge/skills/k8s-deployment/SKILL.md +358 -0
  200. package/.mindforge/skills/knowledge-graphs/SKILL.md +56 -0
  201. package/.mindforge/skills/knowledge-sharing-systems/SKILL.md +112 -0
  202. package/.mindforge/skills/llm-cost-optimization/SKILL.md +198 -0
  203. package/.mindforge/skills/llm-orchestration/SKILL.md +56 -0
  204. package/.mindforge/skills/load-testing/SKILL.md +84 -0
  205. package/.mindforge/skills/logistics-optimization/SKILL.md +40 -0
  206. package/.mindforge/skills/market-researcher/SKILL.md +99 -0
  207. package/.mindforge/skills/marketplace-trust/SKILL.md +40 -0
  208. package/.mindforge/skills/mcp-server-patterns/SKILL.md +264 -0
  209. package/.mindforge/skills/media-streaming/SKILL.md +41 -0
  210. package/.mindforge/skills/meeting-architecture/SKILL.md +146 -0
  211. package/.mindforge/skills/mentoring-patterns/SKILL.md +77 -0
  212. package/.mindforge/skills/microservices-patterns/SKILL.md +83 -0
  213. package/.mindforge/skills/migration-platform/SKILL.md +61 -0
  214. package/.mindforge/skills/migration-strategies/SKILL.md +129 -0
  215. package/.mindforge/skills/ml-feature-store/SKILL.md +56 -0
  216. package/.mindforge/skills/ml-monitoring/SKILL.md +42 -0
  217. package/.mindforge/skills/mobile-performance/SKILL.md +44 -0
  218. package/.mindforge/skills/mobile-security/SKILL.md +45 -0
  219. package/.mindforge/skills/model-evaluation/SKILL.md +53 -0
  220. package/.mindforge/skills/monorepo-management/SKILL.md +100 -0
  221. package/.mindforge/skills/multi-tenancy-patterns/SKILL.md +145 -0
  222. package/.mindforge/skills/multi-turn-conversation-design/SKILL.md +206 -0
  223. package/.mindforge/skills/multimodal-ai/SKILL.md +51 -0
  224. package/.mindforge/skills/mutation-testing/SKILL.md +97 -0
  225. package/.mindforge/skills/notification-system-design/SKILL.md +168 -0
  226. package/.mindforge/skills/observability-stack/SKILL.md +136 -0
  227. package/.mindforge/skills/offline-first-design/SKILL.md +43 -0
  228. package/.mindforge/skills/on-call-design/SKILL.md +111 -0
  229. package/.mindforge/skills/pagination-patterns/SKILL.md +230 -0
  230. package/.mindforge/skills/payment-integration/SKILL.md +176 -0
  231. package/.mindforge/skills/performance-reviews/SKILL.md +140 -0
  232. package/.mindforge/skills/platform-observability/SKILL.md +58 -0
  233. package/.mindforge/skills/platform-reliability/SKILL.md +52 -0
  234. package/.mindforge/skills/post-incident-learning/SKILL.md +96 -0
  235. package/.mindforge/skills/product-manager/SKILL.md +104 -0
  236. package/.mindforge/skills/progressive-web-app/SKILL.md +44 -0
  237. package/.mindforge/skills/prompt-engineering/SKILL.md +94 -0
  238. package/.mindforge/skills/proofreader/SKILL.md +158 -0
  239. package/.mindforge/skills/push-notification-architecture/SKILL.md +45 -0
  240. package/.mindforge/skills/python-performance/SKILL.md +183 -0
  241. package/.mindforge/skills/quality-audit/SKILL.md +171 -0
  242. package/.mindforge/skills/queue-design/SKILL.md +85 -0
  243. package/.mindforge/skills/rag-architecture/SKILL.md +176 -0
  244. package/.mindforge/skills/rate-limiting-design/SKILL.md +94 -0
  245. package/.mindforge/skills/react-native-patterns/SKILL.md +42 -0
  246. package/.mindforge/skills/react-performance/SKILL.md +229 -0
  247. package/.mindforge/skills/real-time-analytics/SKILL.md +42 -0
  248. package/.mindforge/skills/real-time-sync/SKILL.md +83 -0
  249. package/.mindforge/skills/responsive-native/SKILL.md +44 -0
  250. package/.mindforge/skills/responsive-patterns/SKILL.md +141 -0
  251. package/.mindforge/skills/rfc-pipeline/SKILL.md +114 -0
  252. package/.mindforge/skills/saas-multi-tenant/SKILL.md +41 -0
  253. package/.mindforge/skills/santa-method/SKILL.md +134 -0
  254. package/.mindforge/skills/search-implementation/SKILL.md +98 -0
  255. package/.mindforge/skills/secrets-platform/SKILL.md +56 -0
  256. package/.mindforge/skills/secrets-rotation/SKILL.md +173 -0
  257. package/.mindforge/skills/self-serve-infrastructure/SKILL.md +51 -0
  258. package/.mindforge/skills/serverless-patterns/SKILL.md +119 -0
  259. package/.mindforge/skills/skill-creator-meta/SKILL.md +146 -0
  260. package/.mindforge/skills/sprint-retrospective-facilitation/SKILL.md +112 -0
  261. package/.mindforge/skills/stakeholder-communication/SKILL.md +85 -0
  262. package/.mindforge/skills/state-management/SKILL.md +104 -0
  263. package/.mindforge/skills/stream-processing/SKILL.md +43 -0
  264. package/.mindforge/skills/streaming-architecture/SKILL.md +81 -0
  265. package/.mindforge/skills/supply-chain-security/SKILL.md +145 -0
  266. package/.mindforge/skills/synthetic-data-generation/SKILL.md +52 -0
  267. package/.mindforge/skills/system-design/SKILL.md +88 -0
  268. package/.mindforge/skills/team-topology-design/SKILL.md +107 -0
  269. package/.mindforge/skills/technical-debt-management/SKILL.md +86 -0
  270. package/.mindforge/skills/technical-interview-design/SKILL.md +98 -0
  271. package/.mindforge/skills/technical-leadership/SKILL.md +75 -0
  272. package/.mindforge/skills/technical-writing/SKILL.md +237 -0
  273. package/.mindforge/skills/technology-radar/SKILL.md +88 -0
  274. package/.mindforge/skills/testing-anti-patterns/SKILL.md +288 -0
  275. package/.mindforge/skills/tool-design/SKILL.md +138 -0
  276. package/.mindforge/skills/typescript-advanced/SKILL.md +198 -0
  277. package/.mindforge/skills/using-git-worktrees/SKILL.md +139 -0
  278. package/.mindforge/skills/verification-loop/SKILL.md +13 -1
  279. package/.mindforge/skills/vibe-security/SKILL.md +165 -0
  280. package/.mindforge/skills/visual-regression-testing/SKILL.md +97 -0
  281. package/.mindforge/skills/websocket-patterns/SKILL.md +203 -0
  282. package/.mindforge/skills/writing-plans/SKILL.md +170 -0
  283. package/.mindforge/skills/writing-skills/SKILL.md +216 -0
  284. package/.mindforge/skills/zero-trust-architecture/SKILL.md +166 -0
  285. package/CHANGELOG.md +240 -0
  286. package/MINDFORGE.md +4 -4
  287. package/README.md +49 -4
  288. package/RELEASENOTES.md +80 -0
  289. package/SECURITY.md +20 -8
  290. package/bin/autonomous/audit-writer.js +13 -0
  291. package/bin/autonomous/auto-runner.js +74 -16
  292. package/bin/autonomous/context-refactorer.js +26 -11
  293. package/bin/autonomous/state-manager.js +62 -6
  294. package/bin/autonomous/stuck-monitor.js +46 -7
  295. package/bin/autonomous/wave-executor.js +66 -25
  296. package/bin/dashboard/api-router.js +43 -0
  297. package/bin/dashboard/metrics-aggregator.js +28 -1
  298. package/bin/dashboard/server.js +67 -4
  299. package/bin/dashboard/sse-bridge.js +4 -4
  300. package/bin/engine/feedback-loop.js +8 -0
  301. package/bin/engine/intelligence-interlock.js +32 -15
  302. package/bin/engine/logic-drift-detector.js +2 -1
  303. package/bin/engine/nexus-tracer.js +3 -2
  304. package/bin/engine/remediation-engine.js +155 -32
  305. package/bin/engine/self-corrective-synthesizer.js +84 -10
  306. package/bin/engine/sre-manager.js +12 -4
  307. package/bin/engine/temporal-hub.js +131 -34
  308. package/bin/governance/approve.js +41 -5
  309. package/bin/governance/impact-analyzer.js +28 -0
  310. package/bin/governance/policy-engine.js +10 -3
  311. package/bin/governance/quantum-crypto.js +32 -19
  312. package/bin/governance/rbac-manager.js +74 -2
  313. package/bin/governance/ztai-manager.js +49 -7
  314. package/bin/hindsight-injector.js +3 -3
  315. package/bin/memory/eis-client.js +71 -34
  316. package/bin/memory/embedding-engine.js +61 -0
  317. package/bin/memory/knowledge-graph.js +58 -5
  318. package/bin/memory/knowledge-indexer.js +53 -6
  319. package/bin/memory/knowledge-store.js +22 -0
  320. package/bin/migrations/10.7.0-to-11.0.0.js +110 -0
  321. package/bin/migrations/schema-versions.js +13 -0
  322. package/bin/models/anthropic-provider.js +45 -0
  323. package/bin/models/cloud-broker.js +68 -20
  324. package/bin/models/gemini-provider.js +51 -0
  325. package/bin/models/model-client.js +20 -0
  326. package/bin/models/model-router.js +28 -8
  327. package/bin/models/openai-provider.js +44 -0
  328. package/bin/utils/file-io.js +63 -1
  329. package/bin/utils/index.js +58 -0
  330. package/docs/getting-started.md +1 -1
  331. package/docs/user-guide.md +2 -2
  332. package/package.json +2 -2
  333. package/.mindforge/personas/data-privacy-engineer.md +0 -187
@@ -0,0 +1,264 @@
1
+ ---
2
+ name: mcp-server-patterns
3
+ version: 1.0.0
4
+ min_mindforge_version: 10.0.6
5
+ status: stable
6
+ triggers: mcp server, model context protocol, mcp tools, mcp resources, mcp prompts, stdio transport, streamable http, mcp registration, mcp handler, mcp schema, build mcp, mcp patterns
7
+ ---
8
+
9
+ # Skill — MCP Server Patterns
10
+
11
+ ## When this skill activates
12
+
13
+ When designing, building, or debugging Model Context Protocol (MCP) servers that
14
+ expose tools, resources, or prompts to AI agents. Use when implementing the server
15
+ side of MCP — registering capabilities, handling requests, managing transport, and
16
+ following protocol conventions.
17
+
18
+ MCP is the standard protocol for extending AI agents with external capabilities.
19
+ A well-built MCP server is the difference between an agent that can only talk and
20
+ one that can act.
21
+
22
+ ## Mandatory actions when this skill is active
23
+
24
+ ### Before building the MCP server
25
+
26
+ 1. **Identify capability types needed:**
27
+
28
+ | Type | Purpose | Agent interaction | Example |
29
+ |------|---------|-------------------|---------|
30
+ | **Tools** | Actions agents invoke | Agent calls with args, gets result | `create-file`, `run-query`, `send-email` |
31
+ | **Resources** | Data agents read | Agent requests by URI, gets content | `file://`, `db://schema`, `config://env` |
32
+ | **Prompts** | Reusable templates | Agent fills arguments, gets formatted prompt | `code-review`, `summarize`, `translate` |
33
+
34
+ 2. **Choose transport:**
35
+
36
+ | Transport | Use when | Characteristics |
37
+ |-----------|----------|-----------------|
38
+ | **stdio** | Local tools, CLI integration, dev/test | Process-based, simple, synchronous feel |
39
+ | **Streamable HTTP** | Remote servers, multi-client, production | Scalable, stateless, HTTP-based |
40
+
41
+ 3. **Design the schema contract:**
42
+ - Every tool must have a typed input schema (Zod for TypeScript, Pydantic for Python)
43
+ - Every resource must have a URI pattern and content type
44
+ - Every prompt must declare its arguments with descriptions
45
+ - Write the schema FIRST, implement SECOND (contract-first design)
46
+
47
+ 4. **Plan error handling strategy:**
48
+ - Tool errors: return structured error with code and message (never throw unhandled)
49
+ - Resource not found: return appropriate MCP error code
50
+ - Validation failures: return detailed field-level errors
51
+ - Never expose internal stack traces to the client
52
+
53
+ ### During MCP server implementation
54
+
55
+ **Project structure (TypeScript/Node.js):**
56
+ ```
57
+ mcp-server-[name]/
58
+ src/
59
+ index.ts # Server initialization and transport setup
60
+ tools/
61
+ index.ts # Tool registration aggregator
62
+ [tool-name].ts # One file per tool
63
+ resources/
64
+ index.ts # Resource registration aggregator
65
+ [resource-name].ts # One file per resource
66
+ prompts/
67
+ index.ts # Prompt registration aggregator
68
+ [prompt-name].ts # One file per prompt
69
+ lib/
70
+ errors.ts # Custom MCP error classes
71
+ schemas.ts # Shared Zod schemas
72
+ tests/
73
+ tools/
74
+ [tool-name].test.ts
75
+ integration/
76
+ stdio.test.ts # Full server integration via stdio
77
+ package.json
78
+ tsconfig.json
79
+ ```
80
+
81
+ **Tool registration pattern:**
82
+ ```typescript
83
+ import { z } from "zod";
84
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
85
+
86
+ const InputSchema = z.object({
87
+ filePath: z.string().describe("Absolute path to the target file"),
88
+ content: z.string().describe("Content to write to the file"),
89
+ overwrite: z.boolean().default(false).describe("Whether to overwrite existing files"),
90
+ });
91
+
92
+ export function registerCreateFileTool(server: McpServer) {
93
+ server.tool(
94
+ "create-file",
95
+ "Create a new file with the specified content at the given path",
96
+ InputSchema.shape,
97
+ async ({ filePath, content, overwrite }) => {
98
+ // Validate path is within allowed directories
99
+ validatePath(filePath);
100
+
101
+ // Check existing file
102
+ if (!overwrite && await fileExists(filePath)) {
103
+ return {
104
+ content: [{ type: "text", text: `Error: File already exists at ${filePath}. Use overwrite: true to replace.` }],
105
+ isError: true,
106
+ };
107
+ }
108
+
109
+ await writeFile(filePath, content);
110
+
111
+ return {
112
+ content: [{ type: "text", text: `Successfully created file at ${filePath} (${content.length} bytes)` }],
113
+ };
114
+ }
115
+ );
116
+ }
117
+ ```
118
+
119
+ **Resource registration pattern:**
120
+ ```typescript
121
+ export function registerFileResource(server: McpServer) {
122
+ // Static resource
123
+ server.resource(
124
+ "project-config",
125
+ "config://project",
126
+ "The project's configuration file",
127
+ async (uri) => ({
128
+ contents: [{
129
+ uri: uri.href,
130
+ mimeType: "application/json",
131
+ text: await readFile("./config.json", "utf-8"),
132
+ }],
133
+ })
134
+ );
135
+
136
+ // Dynamic resource with URI template
137
+ server.resource(
138
+ "source-file",
139
+ new ResourceTemplate("file:///{path}", { list: undefined }),
140
+ "Read a source file by path",
141
+ async (uri, { path }) => ({
142
+ contents: [{
143
+ uri: uri.href,
144
+ mimeType: getMimeType(path),
145
+ text: await readFile(path, "utf-8"),
146
+ }],
147
+ })
148
+ );
149
+ }
150
+ ```
151
+
152
+ **Prompt registration pattern:**
153
+ ```typescript
154
+ export function registerCodeReviewPrompt(server: McpServer) {
155
+ server.prompt(
156
+ "code-review",
157
+ "Generate a structured code review for the given diff",
158
+ {
159
+ diff: z.string().describe("The git diff to review"),
160
+ severity: z.enum(["quick", "thorough", "security"]).default("thorough")
161
+ .describe("Review depth level"),
162
+ },
163
+ ({ diff, severity }) => ({
164
+ messages: [{
165
+ role: "user",
166
+ content: {
167
+ type: "text",
168
+ text: `Review this code diff at ${severity} level:\n\n${diff}\n\nProvide findings as: [SEVERITY] file:line - description`,
169
+ },
170
+ }],
171
+ })
172
+ );
173
+ }
174
+ ```
175
+
176
+ **Transport setup:**
177
+ ```typescript
178
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
179
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
180
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
181
+
182
+ const server = new McpServer({
183
+ name: "my-mcp-server",
184
+ version: "1.0.0",
185
+ });
186
+
187
+ // Register all capabilities
188
+ registerTools(server);
189
+ registerResources(server);
190
+ registerPrompts(server);
191
+
192
+ // stdio transport (local/CLI)
193
+ const transport = new StdioServerTransport();
194
+ await server.connect(transport);
195
+
196
+ // OR: Streamable HTTP transport (remote/production)
197
+ // const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
198
+ // app.post("/mcp", async (req, res) => { await transport.handleRequest(req, res); });
199
+ ```
200
+
201
+ **Error handling (mandatory):**
202
+ ```typescript
203
+ import { McpError, ErrorCode } from "@modelcontextprotocol/sdk/types.js";
204
+
205
+ // In tool handlers:
206
+ if (!isValid(input)) {
207
+ throw new McpError(
208
+ ErrorCode.InvalidParams,
209
+ `Invalid input: ${validationErrors.join(", ")}`
210
+ );
211
+ }
212
+
213
+ // For "soft" errors (operation failed but not a protocol error):
214
+ return {
215
+ content: [{ type: "text", text: `Operation failed: ${reason}` }],
216
+ isError: true,
217
+ };
218
+ ```
219
+
220
+ **Security considerations:**
221
+ - Validate all file paths against an allowlist of directories
222
+ - Sanitize inputs that will be used in shell commands or SQL
223
+ - Rate limit tool invocations if exposed over HTTP
224
+ - Log all tool invocations for audit trail
225
+ - Never expose secrets through resource responses
226
+ - Use environment variables for sensitive configuration
227
+
228
+ ### After MCP server implementation
229
+
230
+ 1. **Testing protocol:**
231
+ - Unit test each tool handler with valid inputs, invalid inputs, and edge cases
232
+ - Integration test via stdio transport (spawn server, send requests, verify responses)
233
+ - Use MCP Inspector for interactive testing during development:
234
+ ```bash
235
+ npx @modelcontextprotocol/inspector node dist/index.js
236
+ ```
237
+ - Test error paths: malformed requests, missing required fields, timeout scenarios
238
+ - Verify resource URIs resolve correctly under all template patterns
239
+
240
+ 2. **Documentation requirements:**
241
+ - README with: what the server does, prerequisites, installation, configuration
242
+ - Tool catalog: name, description, input schema, example usage, error cases
243
+ - Resource catalog: URI patterns, content types, access patterns
244
+ - Configuration: all environment variables with types and defaults
245
+
246
+ 3. **Deployment checklist:**
247
+ - `package.json` has correct `bin` entry for stdio servers
248
+ - `"type": "module"` set if using ESM
249
+ - All dependencies are production dependencies (not devDependencies)
250
+ - Server starts cleanly with no warnings or unhandled rejections
251
+ - Graceful shutdown on SIGTERM/SIGINT
252
+
253
+ ## Self-check before task completion
254
+
255
+ Before marking an MCP server task done:
256
+
257
+ - [ ] Did I define typed input schemas for every tool (Zod/Pydantic)?
258
+ - [ ] Did I implement proper error handling (McpError with codes, isError for soft failures)?
259
+ - [ ] Did I validate and sanitize all inputs (especially file paths and shell args)?
260
+ - [ ] Did I write integration tests using stdio transport?
261
+ - [ ] Did I test with MCP Inspector to verify the server works interactively?
262
+ - [ ] Did I document all tools, resources, and prompts with examples?
263
+ - [ ] Did I choose the appropriate transport for the deployment context?
264
+ - [ ] Does the server start cleanly and shut down gracefully?
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: media-streaming
3
+ version: 1.0.0
4
+ min_mindforge_version: 10.2.0
5
+ status: stable
6
+ triggers: media streaming architecture, video transcoding pipeline, adaptive bitrate streaming, DRM implementation, live streaming system, audio streaming, media delivery network, HLS DASH streaming, media processing pipeline, content protection, video on demand, streaming infrastructure
7
+ compose: cdn-optimization
8
+ ---
9
+
10
+ # Skill — Media Streaming
11
+
12
+ ## When this skill activates
13
+ This skill activates when building video/audio streaming platforms, transcoding pipelines, adaptive bitrate delivery (HLS/DASH), DRM content protection, live streaming systems, CDN integration, or video-on-demand (VOD) architectures.
14
+
15
+ ## Mandatory actions when this skill is active
16
+
17
+ ### Before writing any code
18
+ 1. Design transcoding pipeline: ingest source video (MP4, MOV, AVI) → extract metadata (resolution, bitrate, codec, duration) → transcode to multiple renditions (4K/1080p/720p/480p/360p), audio tracks (AAC 128kbps stereo), generate HLS/DASH manifests (.m3u8/.mpd), output to object storage (S3), with job queue (SQS) and status webhooks
19
+ 2. Model adaptive bitrate delivery: client requests master playlist (m3u8) → server returns variant streams (bitrate ladder: 8 Mbps, 5 Mbps, 2.5 Mbps, 1 Mbps, 500 kbps) → client measures bandwidth → switches to appropriate quality → seamless transition without buffering
20
+ 3. Map DRM content protection workflow: encrypt video segments (AES-128 or CBCS), generate license keys (Widevine, FairPlay, PlayReady), store keys in key server, client requests license → key server validates entitlement (subscription active, geo-restrictions) → returns decryption key → client decrypts and plays
21
+
22
+ ### During implementation
23
+ - Implement transcoding with FFmpeg or cloud services (AWS MediaConvert, Azure Media Services): configure encoding ladder (GOP size 2s, H.264 High profile, AAC audio), generate thumbnails (every 10s), extract VTT subtitles, optimize for web (moov atom at start for MP4), enable hardware acceleration (GPU encoding for faster processing)
24
+ - Build HLS/DASH streaming with segmentation: split video into 6-second segments (TS for HLS, MP4 for DASH), generate manifest with variant streams (EXT-X-STREAM-INF for bitrate/resolution), enable discontinuity tags for ad insertion, support live DVR (sliding window of last 2 hours)
25
+ - Design CDN delivery with edge caching: upload to origin (S3 bucket), configure CloudFront distribution, set TTL policies (video segments: 7 days, manifests: 60s for VOD, 5s for live), enable signed URLs for protected content (expire after 2 hours), use geo-restriction for licensing compliance
26
+ - Implement DRM integration: encrypt video during transcoding (specify key ID), integrate with key server (AWS SPEKE, Axinom, BuyDRM), client-side DRM initialization (Shaka Player for DASH, hls.js with EME for HLS), handle license renewal (for long-form content >2 hours), support offline downloads with persistent licenses
27
+ - Build player analytics: track playback events (video_start, video_pause, video_complete, error, buffering), measure quality metrics (startup time, rebuffering ratio, bitrate distribution), aggregate by user/video/device, identify issues (high rebuffering on specific ISP, low bitrate selection on mobile)
28
+
29
+ ### After implementation
30
+ - Validate streaming quality: measure startup latency (<2s for 90th percentile), rebuffering ratio (<1% of playback time), bitrate adaptation responsiveness (switch within 10s of bandwidth change), A/V sync (<200ms drift), and seek accuracy (land within 500ms of target time)
31
+ - Test DRM enforcement: attempt playback without valid license (should fail), expired license (should prompt re-authentication), screen recording detection (Widevine L1 blocks HDMI capture on Android), device limit enforcement (max 3 concurrent streams per account)
32
+ - Execute load testing for live streams: simulate 10K+ concurrent viewers, measure origin-to-edge latency (should be <3s for live), segment availability (all segments delivered before next segment starts), CDN cache hit ratio (>95% after warm-up), and origin load (offloaded to CDN)
33
+
34
+ ## Self-check before task completion
35
+ - [ ] Transcoding pipeline functional: ingest source video, transcode to multiple renditions (4K to 360p), generate HLS/DASH manifests, output to object storage
36
+ - [ ] Adaptive bitrate streaming: bitrate ladder defined (8 Mbps to 500 kbps), client switches based on bandwidth, seamless quality transitions
37
+ - [ ] DRM content protection: video encrypted (AES-128/CBCS), license server integrated (Widevine/FairPlay/PlayReady), entitlement validation before key delivery
38
+ - [ ] CDN delivery optimized: edge caching configured, TTL policies set (long for segments, short for manifests), signed URLs for protected content
39
+ - [ ] Player analytics tracked: playback events (start, pause, complete, error), quality metrics (startup time, rebuffering, bitrate), aggregated reports
40
+ - [ ] Live streaming supported: real-time segmentation (6s segments), sliding window DVR (last 2 hours), low latency (<3s origin-to-edge)
41
+ - [ ] Quality targets met: startup <2s, rebuffering <1%, bitrate adaptation <10s, A/V sync <200ms, seek accuracy <500ms
@@ -0,0 +1,146 @@
1
+ ---
2
+ name: meeting-architecture
3
+ version: 1.0.0
4
+ min_mindforge_version: 10.3.0
5
+ status: stable
6
+ triggers: meeting architecture, meeting design pattern, decision documentation, async-first communication, standup optimization, meeting efficiency, RFC process, architecture decision record, async collaboration, meeting agenda design, meeting decision log, remote meeting facilitation
7
+ ---
8
+
9
+ # Meeting Architecture
10
+
11
+ ## When this skill activates
12
+
13
+ This skill activates when designing effective meetings, implementing async-first communication patterns, optimizing standups, documenting decisions, creating RFC processes, or facilitating remote meetings. It applies to tech leads, engineering managers, and senior engineers responsible for team communication effectiveness.
14
+
15
+ ## Mandatory actions when this skill is active
16
+
17
+ ### Before scheduling any meeting
18
+
19
+ 1. **Apply the async-first test** — Can this be an email, Slack message, document, or recorded video? Only schedule a synchronous meeting if you need real-time discussion, debate, or decision-making.
20
+ 2. **Define the meeting purpose** — Is it informational (status update), collaborative (brainstorming), or decisional (approve/reject proposal)? Different purposes require different formats.
21
+ 3. **Identify required vs optional attendees** — Required: people who must participate for the meeting to succeed. Optional: people who benefit from being there but aren't essential. Respect people's time.
22
+ 4. **Create a clear agenda** — No agenda = no meeting. Agenda should include: topics, time allocation, desired outcomes, and pre-reads. Send agenda 24 hours in advance.
23
+
24
+ ### During meeting design
25
+
26
+ #### Meeting Type Catalog
27
+
28
+ **1. Daily Standup (15 minutes max)**
29
+ - **Purpose**: Synchronize team, surface blockers, maintain momentum.
30
+ - **Format**: Each person answers: (1) What did I accomplish yesterday? (2) What am I working on today? (3) Am I blocked?
31
+ - **Optimizations**:
32
+ - Keep it to 15 minutes. If you need more time, the team is too big or the updates are too detailed.
33
+ - Do it async if possible (Slack standup bot, Geekbot, GitHub comments on project board).
34
+ - Timebox each person to 1-2 minutes. Use a timer.
35
+ - Blockers get discussed after standup, not during. Don't derail everyone's focus.
36
+ - **Pitfall**: Standup becomes a status report to the manager. It should be peer-to-peer synchronization, not upward reporting.
37
+
38
+ **2. Sprint Planning (1-2 hours)**
39
+ - **Purpose**: Commit to work for the upcoming sprint.
40
+ - **Format**: Review backlog, prioritize, estimate, assign ownership, identify dependencies.
41
+ - **Pre-work**: Product or tech lead preps the backlog. Engineers review tickets ahead of time. Don't do backlog grooming during sprint planning.
42
+ - **Optimizations**:
43
+ - Timebox story estimation. Use t-shirt sizes (S/M/L) or Fibonacci (1/2/3/5/8) to avoid false precision.
44
+ - Identify blockers early. If a task depends on another team, escalate before the sprint starts.
45
+ - Set a realistic capacity. Don't overcommit. Leave 20% buffer for unplanned work (bugs, support, incidents).
46
+ - **Pitfall**: Spending 30 minutes debating whether a task is a 3 or a 5. Estimates are guesses. Move on.
47
+
48
+ **3. Retrospective (45-60 minutes)**
49
+ - **Purpose**: Reflect on what went well, what didn't, and how to improve.
50
+ - **Format**: What went well? What went poorly? What should we start/stop/continue doing?
51
+ - **Facilitation**:
52
+ - Everyone contributes. Silence from some people means they're not engaged or don't feel safe.
53
+ - Focus on systems, not individuals. "Code reviews are too slow" is better than "Alice didn't review my PR."
54
+ - Action items must have owners and deadlines. Otherwise they're wishes, not commitments.
55
+ - **Optimizations**:
56
+ - Rotate facilitator. Prevents one person from dominating.
57
+ - Use techniques like Start/Stop/Continue, 4Ls (Liked/Learned/Lacked/Longed For), or Rose/Bud/Thorn.
58
+ - Review action items from the previous retro. Did we follow through? If not, why?
59
+ - **Pitfall**: Retrospectives devolve into venting sessions. Keep it constructive.
60
+
61
+ **4. Design Review / Architecture Review (60-90 minutes)**
62
+ - **Purpose**: Vet technical designs before implementation. Catch issues early.
63
+ - **Format**: Presenter shares design doc (sent 24-48 hours in advance). Team probes assumptions, identifies edge cases, suggests alternatives.
64
+ - **Pre-work**: Attendees read the design doc before the meeting. Don't use meeting time for reading.
65
+ - **Optimizations**:
66
+ - Use a design doc template: problem statement, requirements, proposed solution, alternatives considered, tradeoffs, open questions.
67
+ - Assign a devil's advocate. Their job is to poke holes. Prevents groupthink.
68
+ - Document decisions in the design doc during the meeting. Don't rely on memory.
69
+ - **Pitfall**: Rubber-stamping designs that are already implemented. Design reviews should happen before code is written, not after.
70
+
71
+ **5. Incident Postmortem (60 minutes)**
72
+ - **Purpose**: Learn from incidents, identify systemic improvements.
73
+ - **Format**: Timeline, root cause analysis, what went well, what went poorly, action items.
74
+ - **Facilitation**:
75
+ - Blameless. Focus on systems, not individuals.
76
+ - Use the Five Whys to get to root cause.
77
+ - Every action item needs an owner and a deadline.
78
+ - **Optimizations**:
79
+ - Share postmortem document 24 hours before the meeting. Use meeting time for discussion, not writing.
80
+ - Invite all incident responders + relevant stakeholders.
81
+ - Timebox to 60 minutes. If you can't finish, schedule a follow-up.
82
+ - **Pitfall**: Postmortems that generate 15 action items but complete zero. Prioritize. Pick the top 3 and execute.
83
+
84
+ **6. 1:1s (30 minutes, weekly or bi-weekly)**
85
+ - **Purpose**: Manager-engineer relationship building, career development, feedback, unblocking.
86
+ - **Format**: Open agenda. Employee drives the conversation. Manager listens, coaches, provides context.
87
+ - **Optimizations**:
88
+ - Don't use 1:1s for status updates. That's what standups and project boards are for.
89
+ - Ask open-ended questions: "What's on your mind?" "What's frustrating you?" "What do you need from me?"
90
+ - Take notes. Reference previous 1:1s. Show that you remember and care.
91
+ - Cancel other meetings, not 1:1s. 1:1s are sacred.
92
+ - **Pitfall**: Manager dominates the conversation. The 1:1 is for the employee, not the manager.
93
+
94
+ **7. RFC (Request for Comments) Review (Async + Optional Sync Meeting)**
95
+ - **Purpose**: Propose architectural changes, gather feedback, build consensus.
96
+ - **Format**: Author writes RFC document (problem, proposal, alternatives, tradeoffs). Team comments asynchronously. Optional sync meeting to resolve open questions.
97
+ - **Optimizations**:
98
+ - Set a comment deadline (e.g., 5 business days). After deadline, author addresses feedback and makes a decision.
99
+ - Use a template. Consistency reduces cognitive load.
100
+ - Distinguish between blocking concerns (correctness, security) and non-blocking suggestions (style, minor optimizations).
101
+ - **Pitfall**: RFCs that linger for weeks with no decision. Set a decision deadline and stick to it.
102
+
103
+ #### Async-First Communication Patterns
104
+
105
+ - **Default to async** — Status updates, announcements, design proposals, and decisions should be written and shared asynchronously. Reserve sync meetings for real-time collaboration.
106
+ - **Use threads, not channels** — In Slack or Teams, use threads for discussions. Keeps channels scannable. Main channel is for announcements, threads are for details.
107
+ - **Document decisions publicly** — Every significant decision (architectural choice, roadmap change, policy update) gets written down in a shared doc or wiki. Don't let decisions live only in someone's head or in a Slack thread.
108
+ - **Record meetings** — For all-hands, demos, or important discussions, record the meeting and share the link. Accommodates different time zones and allows people to catch up asynchronously.
109
+ - **Set response time expectations** — Async doesn't mean "respond whenever." Set norms: Slack messages within 4 hours during work hours, emails within 24 hours, RFCs within 5 days.
110
+
111
+ #### Decision Documentation
112
+
113
+ - **Use Architecture Decision Records (ADRs)** — Every significant architectural decision gets a lightweight ADR:
114
+ - **Title**: Short description (e.g., "Use Postgres for primary datastore")
115
+ - **Context**: What's the situation?
116
+ - **Decision**: What did we decide?
117
+ - **Consequences**: What are the tradeoffs?
118
+ - **Alternatives Considered**: What else did we evaluate?
119
+ - **Maintain a decision log** — Store ADRs in the repo (`docs/adr/`) or wiki. Version control ensures decisions are traceable.
120
+ - **Link decisions to code** — In PRs, reference the ADR. Future engineers will thank you.
121
+
122
+ #### Remote Meeting Facilitation
123
+
124
+ - **Video on by default** — Encourages engagement. People are less likely to multitask when video is on.
125
+ - **Use collaborative tools** — Miro, Figma, Google Docs for real-time collaboration. Screen sharing alone is passive.
126
+ - **Timebox discussions** — Use a timer. When time's up, move on. Prevents bikeshedding.
127
+ - **Mute when not speaking** — Reduces background noise. Unmute to contribute.
128
+ - **Use breakout rooms for large meetings** — If you have >8 people, break into smaller groups for brainstorming. Reconvene to share findings.
129
+
130
+ ### After meetings
131
+
132
+ - **Publish meeting notes within 2 hours** — Key decisions, action items, owners, deadlines. Share in the team channel or wiki.
133
+ - **Track action items to completion** — Review action items in the next meeting. If they're not getting done, either they weren't important or there's a resourcing issue.
134
+ - **Measure meeting effectiveness** — Periodically survey the team: "Are meetings productive? Too many? Too few?" Course-correct based on feedback.
135
+ - **Cancel recurring meetings that lost their purpose** — If a meeting becomes a status update or no one has updates, cancel it. Don't let zombie meetings linger.
136
+
137
+ ## Self-check before task completion
138
+
139
+ - [ ] Meeting passes the async-first test (can't be an email or doc)
140
+ - [ ] Agenda is created and shared 24 hours in advance with topics, time allocation, and desired outcomes
141
+ - [ ] Required vs optional attendees are explicitly identified
142
+ - [ ] Meeting type is appropriate for the goal (standup, planning, retro, design review, 1:1)
143
+ - [ ] Design reviews and RFC reviews require pre-reading; meeting time is for discussion, not reading
144
+ - [ ] Decisions are documented using ADRs or decision logs and shared publicly
145
+ - [ ] Meeting notes with action items, owners, and deadlines are published within 2 hours
146
+ - [ ] Recurring meetings are reviewed quarterly and canceled if they've lost their purpose
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: mentoring-patterns
3
+ version: 1.0.0
4
+ min_mindforge_version: 10.3.0
5
+ status: stable
6
+ triggers: mentoring developer, pair programming pedagogy, code review teaching, career ladder design, junior developer growth, technical mentorship, developer onboarding mentoring, skill gap assessment, growth plan engineering, coaching engineers, feedback delivery, mentee progress tracking
7
+ ---
8
+
9
+ # Mentoring Patterns
10
+
11
+ ## When this skill activates
12
+
13
+ This skill activates when mentoring junior or mid-level developers, conducting pair programming sessions, giving pedagogical code reviews, designing career growth plans, assessing skill gaps, or coaching engineers through challenging technical problems. It applies to senior engineers, tech leads, and engineering managers responsible for developing others.
14
+
15
+ ## Mandatory actions when this skill is active
16
+
17
+ ### Before starting mentorship
18
+
19
+ 1. **Assess current skill level** — Don't assume. Ask mentee to walk through a recent PR or design doc. Identify gaps in fundamentals (data structures, testing, debugging) vs advanced topics (distributed systems, performance optimization).
20
+ 2. **Understand mentee's goals** — Are they aiming for senior engineer? Staff? Management? Different trajectories require different skill development. Don't project your own career path onto them.
21
+ 3. **Establish mentorship contract** — Frequency (weekly 1:1s? ad-hoc?), topics (code review? architecture? career?), communication channels, and how to ask for help. Implicit expectations cause friction.
22
+ 4. **Identify mentee's learning style** — Do they learn by reading (send docs), watching (pair program), or doing (give them a project)? Mismatch between teaching style and learning style wastes time.
23
+
24
+ ### During mentorship activities
25
+
26
+ #### Pair Programming Pedagogy
27
+
28
+ - **Use driver-navigator pattern** — Junior is driver (typing), senior is navigator (guiding). Keeps mentee engaged and forces them to articulate their reasoning. Don't grab the keyboard.
29
+ - **Ask guiding questions, don't give answers** — Instead of "Use a hash map here," ask "How would you optimize this lookup?" Let them arrive at the solution. Spoon-feeding creates dependency.
30
+ - **Narrate your thought process** — When you're the driver, verbalize your reasoning: "I'm adding this null check because..." or "I'm writing the test first because...". Juniors can't see inside your head.
31
+ - **Timebox exploration** — Let mentee struggle for 10-15 minutes. If stuck, give a hint, not the solution. If still stuck after 30 minutes, show the approach and explain why.
32
+ - **Refactor together** — Take working but messy code and refactor it as a pair. Teaches that code quality is iterative, not achieved on the first pass.
33
+
34
+ #### Code Review Teaching
35
+
36
+ - **Classify feedback by severity** — Critical (security, correctness, data loss), Major (performance, maintainability, architectural misalignment), Minor (style, readability). Juniors often can't distinguish signal from noise.
37
+ - **Explain the "why," not just the "what"** — Don't say "Extract this into a function." Say "This block is duplicated in 3 places. Extracting it into a function ensures future bug fixes apply everywhere, not just one call site."
38
+ - **Use the "teach, don't tell" pattern** — First review: point out the issue and suggest a fix. Second occurrence: point out the issue, ask them to suggest a fix. Third occurrence: ask if they see the issue. Eventually they internalize the pattern.
39
+ - **Limit feedback to 3-5 key points per review** — Wall-of-text reviews overwhelm. Pick the most important lessons. Other issues can wait for the next PR.
40
+ - **Celebrate improvements** — When mentee applies feedback from a previous review, call it out: "Great null handling here, much cleaner than last time." Positive reinforcement accelerates learning.
41
+
42
+ #### Career Growth Plans
43
+
44
+ - **Use the skill matrix** — List skills required for the next level (e.g., to reach senior: owns 1-2 services end-to-end, writes design docs, mentors 1-2 juniors). Rate mentee as Beginner / Intermediate / Advanced / Expert on each skill.
45
+ - **Create 30-60-90 day goals** — 30 days: quick wins (improve test coverage on X service, ship Y feature). 60 days: medium scope (lead Z project, mentor junior on onboarding). 90 days: stretch goals (present at team meeting, write architecture proposal).
46
+ - **Identify growth projects** — Assign projects slightly above their current level. Too easy = no learning. Too hard = frustration and failure. The sweet spot is 20% beyond their comfort zone.
47
+ - **Track skill acquisition, not task completion** — The goal isn't "ship feature X." It's "learn how to design APIs" or "get comfortable with debugging production issues." Task completion is the vehicle, skill acquisition is the outcome.
48
+
49
+ #### Feedback Delivery
50
+
51
+ - **Use Situation-Behavior-Impact (SBI) framework** — "In yesterday's design review (situation), you interrupted Sarah twice (behavior), which made her hesitant to share more ideas (impact)." Specific, observable, non-judgmental.
52
+ - **Give feedback close to the event** — Real-time or within 24 hours. Waiting for quarterly reviews dilutes the learning and makes feedback feel like a performance audit, not coaching.
53
+ - **Balance positive and developmental feedback** — Ratio: 3-5 pieces of positive feedback for every 1 piece of developmental feedback. Overweighting critique creates defensiveness.
54
+ - **Focus on one behavior at a time** — Don't bundle 5 unrelated pieces of feedback. Pick the most impactful behavior to improve. Once they've made progress, address the next one.
55
+
56
+ #### Skill Gap Assessment
57
+
58
+ - **Distinguish between knowledge gaps and capability gaps** — Knowledge gaps (doesn't know how to use Redis) are fixed with learning. Capability gaps (struggles to break down ambiguous problems) require coaching and practice.
59
+ - **Use the Dreyfus model** — Novice (needs recipes), Advanced Beginner (starts recognizing patterns), Competent (can troubleshoot), Proficient (intuitive understanding), Expert (creates new patterns). Mentor at the appropriate level.
60
+ - **Create learning paths** — For knowledge gaps: reading list, courses, toy projects. For capability gaps: shadowing, pair programming, progressively harder assignments.
61
+
62
+ ### After mentorship sessions
63
+
64
+ - **Document progress** — Keep notes on what you discussed, insights they shared, and commitments they made. Refer back in future sessions. Memory fades; notes compound.
65
+ - **Assign practice work** — After teaching a concept, give them a small task to apply it. "We talked about database indexing. Add indexes to the Users table and measure query performance before/after."
66
+ - **Check for understanding** — Ask mentee to summarize what they learned. If they can't explain it in their own words, they didn't internalize it.
67
+ - **Adjust mentorship approach based on feedback** — Periodically ask: "Is this mentorship helping? What should I do more/less of?" Course-correct before frustration builds.
68
+
69
+ ## Self-check before task completion
70
+
71
+ - [ ] Mentee's current skill level and learning style are explicitly assessed
72
+ - [ ] Mentorship goals are aligned with mentee's career trajectory, not mentor's preferences
73
+ - [ ] Pair programming sessions use driver-navigator pattern with guiding questions, not answers
74
+ - [ ] Code review feedback is classified by severity and includes "why," not just "what"
75
+ - [ ] Career growth plan has 30-60-90 day goals tied to specific skill acquisition
76
+ - [ ] Feedback uses SBI framework, is delivered within 24 hours, and focuses on one behavior at a time
77
+ - [ ] Progress is documented and reviewed regularly to track skill development over time
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: microservices-patterns
3
+ version: 1.0.0
4
+ min_mindforge_version: 10.0.6
5
+ status: stable
6
+ triggers: microservice, service boundary, bounded context, api contract, saga pattern, event-driven architecture, bulkhead, service mesh, service discovery, distributed system, inter-service communication, service decomposition
7
+ ---
8
+
9
+ # Skill — Microservices Patterns
10
+
11
+ ## When this skill activates
12
+ Any task involving microservice architecture, service decomposition, inter-service
13
+ communication, distributed system design, or API contract definition between services.
14
+
15
+ ## Mandatory actions when this skill is active
16
+
17
+ ### Before
18
+
19
+ 1. **Identify bounded contexts** — Map business capabilities to service boundaries using DDD. Each service owns one bounded context, one database, one deployment unit.
20
+ 2. **Define communication style** — Synchronous (REST/gRPC) for queries, asynchronous (events) for cross-domain state changes. Default to async.
21
+ 3. **Assess data ownership** — Each service owns its data exclusively. No shared databases. Cross-service access via APIs or event propagation.
22
+
23
+ ### During
24
+
25
+ #### Service boundary design (DDD)
26
+ ```
27
+ Decomposition heuristics:
28
+ - Single Responsibility: one reason to change per service
29
+ - Team Ownership: one team owns one service (Conway's Law)
30
+ - Data Cohesion: entities that change together stay together
31
+ - Independent Deployability: releasing one never requires releasing another
32
+ ```
33
+
34
+ #### API contracts
35
+ - Version all APIs (URL path or header-based)
36
+ - REST (OpenAPI 3.1) for external/public APIs
37
+ - gRPC (protobuf) for high-throughput internal calls
38
+ - Consumer-driven contract testing (Pact) between services
39
+ - Breaking changes require new major version + deprecation period
40
+
41
+ #### Saga orchestration
42
+ ```
43
+ Choreography (2-3 services, simple flows):
44
+ Service A -> emits Event -> Service B reacts -> emits Event -> Service C reacts
45
+ Each service owns its compensating action
46
+
47
+ Orchestration (4+ services, complex flows):
48
+ SagaCoordinator defines steps + compensations:
49
+ Step 1: InventoryService.reserve() | compensate: release()
50
+ Step 2: PaymentService.charge() | compensate: refund()
51
+ Step 3: OrderService.confirm() | compensate: cancel()
52
+ ```
53
+
54
+ #### Resilience patterns
55
+ ```
56
+ Bulkhead: separate thread/connection pools per dependency
57
+ Circuit Breaker: Closed -> Open (5 failures/10s) -> Half-Open (probe after 30s)
58
+ Retry: exponential backoff + jitter, max 3 attempts, idempotent ops only
59
+ Timeout: every sync call has an explicit deadline (never infinite)
60
+ ```
61
+
62
+ #### Service mesh and discovery
63
+ - Kubernetes: use native Services (DNS-based, server-side discovery)
64
+ - Non-K8s: Consul or Eureka with client-side load balancing
65
+ - Service mesh (Istio/Linkerd) for: mTLS, traffic shaping, observability, retries
66
+ - Health checks: active (ping /health every 5s, 3 failures = remove from pool)
67
+
68
+ ### After
69
+
70
+ 1. **Validate data ownership** — No service reads another service's database directly.
71
+ 2. **Verify fault tolerance** — Every sync call has timeout, retry policy, and circuit breaker.
72
+ 3. **Check observability** — Distributed tracing (OpenTelemetry), structured logs with correlation IDs, health endpoints.
73
+ 4. **Contract tests pass** — Consumer-driven contract tests verify API compatibility.
74
+
75
+ ## Self-check before task completion
76
+ - [ ] Each service owns exactly one bounded context and one database
77
+ - [ ] API contracts versioned and published (OpenAPI or protobuf)
78
+ - [ ] Saga compensation defined for every step that can fail
79
+ - [ ] Bulkhead isolation prevents cascading failures
80
+ - [ ] Circuit breakers on all synchronous inter-service calls
81
+ - [ ] Distributed tracing propagates correlation IDs across boundaries
82
+ - [ ] No shared databases between services
83
+ - [ ] Service discovery mechanism documented and tested