@rubix0270/arboris 1.0.2 → 1.0.3

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 (451) hide show
  1. package/package.json +8 -20
  2. package/run.mjs +10 -0
  3. package/dist/cli.mjs +0 -383
  4. package/manifest.json +0 -323
  5. package/prisma/skills/accessibility/SKILL.md +0 -147
  6. package/prisma/skills/agent-architecture-audit/SKILL.md +0 -257
  7. package/prisma/skills/agent-eval/SKILL.md +0 -146
  8. package/prisma/skills/agent-harness-construction/SKILL.md +0 -74
  9. package/prisma/skills/agent-introspection-debugging/SKILL.md +0 -154
  10. package/prisma/skills/agent-payment-x402/SKILL.md +0 -225
  11. package/prisma/skills/agent-self-evaluation/SKILL.md +0 -182
  12. package/prisma/skills/agent-self-evaluation/examples/high-score-example.md +0 -87
  13. package/prisma/skills/agent-self-evaluation/examples/low-score-example.md +0 -86
  14. package/prisma/skills/agent-self-evaluation/references/evaluation-criteria.md +0 -71
  15. package/prisma/skills/agent-self-evaluation/references/hook-integration.md +0 -64
  16. package/prisma/skills/agent-self-evaluation/scripts/evaluate.py +0 -408
  17. package/prisma/skills/agent-self-evaluation/templates/evaluation-report.md +0 -86
  18. package/prisma/skills/agent-sort/SKILL.md +0 -216
  19. package/prisma/skills/agentic-engineering/SKILL.md +0 -64
  20. package/prisma/skills/agentic-os/SKILL.md +0 -388
  21. package/prisma/skills/ai-first-engineering/SKILL.md +0 -52
  22. package/prisma/skills/ai-regression-testing/SKILL.md +0 -386
  23. package/prisma/skills/android-clean-architecture/SKILL.md +0 -340
  24. package/prisma/skills/angular-developer/SKILL.md +0 -155
  25. package/prisma/skills/angular-developer/references/angular-animations.md +0 -160
  26. package/prisma/skills/angular-developer/references/angular-aria.md +0 -410
  27. package/prisma/skills/angular-developer/references/cli.md +0 -86
  28. package/prisma/skills/angular-developer/references/component-harnesses.md +0 -59
  29. package/prisma/skills/angular-developer/references/component-styling.md +0 -91
  30. package/prisma/skills/angular-developer/references/components.md +0 -117
  31. package/prisma/skills/angular-developer/references/creating-services.md +0 -97
  32. package/prisma/skills/angular-developer/references/data-resolvers.md +0 -69
  33. package/prisma/skills/angular-developer/references/define-routes.md +0 -67
  34. package/prisma/skills/angular-developer/references/defining-providers.md +0 -72
  35. package/prisma/skills/angular-developer/references/di-fundamentals.md +0 -120
  36. package/prisma/skills/angular-developer/references/e2e-testing.md +0 -56
  37. package/prisma/skills/angular-developer/references/effects.md +0 -83
  38. package/prisma/skills/angular-developer/references/hierarchical-injectors.md +0 -43
  39. package/prisma/skills/angular-developer/references/host-elements.md +0 -80
  40. package/prisma/skills/angular-developer/references/injection-context.md +0 -63
  41. package/prisma/skills/angular-developer/references/inputs.md +0 -101
  42. package/prisma/skills/angular-developer/references/linked-signal.md +0 -59
  43. package/prisma/skills/angular-developer/references/loading-strategies.md +0 -61
  44. package/prisma/skills/angular-developer/references/mcp.md +0 -108
  45. package/prisma/skills/angular-developer/references/navigate-to-routes.md +0 -69
  46. package/prisma/skills/angular-developer/references/outputs.md +0 -86
  47. package/prisma/skills/angular-developer/references/reactive-forms.md +0 -122
  48. package/prisma/skills/angular-developer/references/rendering-strategies.md +0 -44
  49. package/prisma/skills/angular-developer/references/resource.md +0 -77
  50. package/prisma/skills/angular-developer/references/route-animations.md +0 -56
  51. package/prisma/skills/angular-developer/references/route-guards.md +0 -52
  52. package/prisma/skills/angular-developer/references/router-lifecycle.md +0 -45
  53. package/prisma/skills/angular-developer/references/router-testing.md +0 -87
  54. package/prisma/skills/angular-developer/references/show-routes-with-outlets.md +0 -68
  55. package/prisma/skills/angular-developer/references/signal-forms.md +0 -795
  56. package/prisma/skills/angular-developer/references/signals-overview.md +0 -94
  57. package/prisma/skills/angular-developer/references/tailwind-css.md +0 -69
  58. package/prisma/skills/angular-developer/references/template-driven-forms.md +0 -114
  59. package/prisma/skills/angular-developer/references/testing-fundamentals.md +0 -65
  60. package/prisma/skills/api-connector-builder/SKILL.md +0 -121
  61. package/prisma/skills/api-design/SKILL.md +0 -524
  62. package/prisma/skills/architecture-decision-records/SKILL.md +0 -180
  63. package/prisma/skills/article-writing/SKILL.md +0 -80
  64. package/prisma/skills/automation-audit-ops/SKILL.md +0 -143
  65. package/prisma/skills/autonomous-agent-harness/SKILL.md +0 -274
  66. package/prisma/skills/autonomous-loops/SKILL.md +0 -611
  67. package/prisma/skills/backend-patterns/SKILL.md +0 -562
  68. package/prisma/skills/benchmark/SKILL.md +0 -94
  69. package/prisma/skills/benchmark-methodology/SKILL.md +0 -190
  70. package/prisma/skills/benchmark-optimization-loop/SKILL.md +0 -70
  71. package/prisma/skills/blender-motion-state-inspection/SKILL.md +0 -165
  72. package/prisma/skills/blueprint/SKILL.md +0 -106
  73. package/prisma/skills/brand-discovery/SKILL.md +0 -145
  74. package/prisma/skills/brand-discovery/references/10_purpose-why.md +0 -40
  75. package/prisma/skills/brand-discovery/references/20_positioning.md +0 -44
  76. package/prisma/skills/brand-discovery/references/30_audience-niche.md +0 -52
  77. package/prisma/skills/brand-discovery/references/40_personality-archetype.md +0 -57
  78. package/prisma/skills/brand-discovery/references/50_voice-tone.md +0 -59
  79. package/prisma/skills/brand-discovery/references/60_narrative-story.md +0 -50
  80. package/prisma/skills/brand-discovery/references/70_founder-tension.md +0 -49
  81. package/prisma/skills/brand-discovery/references/90_SYNTHESIS.md +0 -133
  82. package/prisma/skills/brand-voice/SKILL.md +0 -98
  83. package/prisma/skills/brand-voice/references/voice-profile-schema.md +0 -55
  84. package/prisma/skills/browser-qa/SKILL.md +0 -105
  85. package/prisma/skills/bun-runtime/SKILL.md +0 -85
  86. package/prisma/skills/canary-watch/SKILL.md +0 -108
  87. package/prisma/skills/carrier-relationship-management/SKILL.md +0 -212
  88. package/prisma/skills/cisco-ios-patterns/SKILL.md +0 -164
  89. package/prisma/skills/ck/SKILL.md +0 -148
  90. package/prisma/skills/ck/commands/forget.mjs +0 -44
  91. package/prisma/skills/ck/commands/info.mjs +0 -24
  92. package/prisma/skills/ck/commands/init.mjs +0 -143
  93. package/prisma/skills/ck/commands/list.mjs +0 -40
  94. package/prisma/skills/ck/commands/migrate.mjs +0 -202
  95. package/prisma/skills/ck/commands/resume.mjs +0 -36
  96. package/prisma/skills/ck/commands/save.mjs +0 -210
  97. package/prisma/skills/ck/commands/shared.mjs +0 -387
  98. package/prisma/skills/ck/hooks/session-start.mjs +0 -224
  99. package/prisma/skills/claude-devfleet/SKILL.md +0 -112
  100. package/prisma/skills/click-path-audit/SKILL.md +0 -245
  101. package/prisma/skills/clickhouse-io/SKILL.md +0 -440
  102. package/prisma/skills/code-tour/SKILL.md +0 -254
  103. package/prisma/skills/codebase-onboarding/SKILL.md +0 -234
  104. package/prisma/skills/codehealth-mcp/SKILL.md +0 -167
  105. package/prisma/skills/coding-standards/SKILL.md +0 -551
  106. package/prisma/skills/competitive-platform-analysis/SKILL.md +0 -214
  107. package/prisma/skills/competitive-report-structure/SKILL.md +0 -162
  108. package/prisma/skills/compose-multiplatform-patterns/SKILL.md +0 -300
  109. package/prisma/skills/config-gc/SKILL.md +0 -120
  110. package/prisma/skills/configure-ecc/SKILL.md +0 -385
  111. package/prisma/skills/connections-optimizer/SKILL.md +0 -190
  112. package/prisma/skills/content-engine/SKILL.md +0 -132
  113. package/prisma/skills/content-hash-cache-pattern/SKILL.md +0 -162
  114. package/prisma/skills/context-budget/SKILL.md +0 -136
  115. package/prisma/skills/continuous-agent-loop/SKILL.md +0 -46
  116. package/prisma/skills/continuous-learning/SKILL.md +0 -132
  117. package/prisma/skills/continuous-learning/config.json +0 -18
  118. package/prisma/skills/continuous-learning/evaluate-session.sh +0 -69
  119. package/prisma/skills/continuous-learning-v2/SKILL.md +0 -361
  120. package/prisma/skills/continuous-learning-v2/agents/observer-loop.sh +0 -359
  121. package/prisma/skills/continuous-learning-v2/agents/observer.md +0 -189
  122. package/prisma/skills/continuous-learning-v2/agents/session-guardian.sh +0 -150
  123. package/prisma/skills/continuous-learning-v2/agents/start-observer.sh +0 -248
  124. package/prisma/skills/continuous-learning-v2/config.json +0 -8
  125. package/prisma/skills/continuous-learning-v2/hooks/observe.sh +0 -585
  126. package/prisma/skills/continuous-learning-v2/scripts/detect-project.sh +0 -322
  127. package/prisma/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -1956
  128. package/prisma/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +0 -31
  129. package/prisma/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +0 -68
  130. package/prisma/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -1421
  131. package/prisma/skills/cost-aware-llm-pipeline/SKILL.md +0 -184
  132. package/prisma/skills/cost-tracking/SKILL.md +0 -97
  133. package/prisma/skills/council/SKILL.md +0 -204
  134. package/prisma/skills/cpp-coding-standards/SKILL.md +0 -724
  135. package/prisma/skills/cpp-testing/SKILL.md +0 -325
  136. package/prisma/skills/crosspost/SKILL.md +0 -112
  137. package/prisma/skills/csharp-testing/SKILL.md +0 -322
  138. package/prisma/skills/customer-billing-ops/SKILL.md +0 -141
  139. package/prisma/skills/customs-trade-compliance/SKILL.md +0 -263
  140. package/prisma/skills/dart-flutter-patterns/SKILL.md +0 -564
  141. package/prisma/skills/dashboard-builder/SKILL.md +0 -109
  142. package/prisma/skills/data-scraper-agent/SKILL.md +0 -765
  143. package/prisma/skills/data-throughput-accelerator/SKILL.md +0 -73
  144. package/prisma/skills/database-migrations/SKILL.md +0 -430
  145. package/prisma/skills/deep-research/SKILL.md +0 -160
  146. package/prisma/skills/defi-amm-security/SKILL.md +0 -167
  147. package/prisma/skills/delivery-gate/SKILL.md +0 -126
  148. package/prisma/skills/delivery-gate/hooks/quality-gate.py +0 -220
  149. package/prisma/skills/deployment-patterns/SKILL.md +0 -428
  150. package/prisma/skills/design-system/SKILL.md +0 -83
  151. package/prisma/skills/django-celery/SKILL.md +0 -458
  152. package/prisma/skills/django-patterns/SKILL.md +0 -735
  153. package/prisma/skills/django-security/SKILL.md +0 -644
  154. package/prisma/skills/django-tdd/SKILL.md +0 -730
  155. package/prisma/skills/django-verification/SKILL.md +0 -470
  156. package/prisma/skills/dmux-workflows/SKILL.md +0 -192
  157. package/prisma/skills/docker-patterns/SKILL.md +0 -365
  158. package/prisma/skills/documentation-lookup/SKILL.md +0 -91
  159. package/prisma/skills/dotnet-patterns/SKILL.md +0 -322
  160. package/prisma/skills/dynamic-workflow-mode/SKILL.md +0 -124
  161. package/prisma/skills/e2e-testing/SKILL.md +0 -327
  162. package/prisma/skills/ecc-guide/SKILL.md +0 -190
  163. package/prisma/skills/ecc-recipes/SKILL.md +0 -149
  164. package/prisma/skills/ecc-tools-cost-audit/SKILL.md +0 -161
  165. package/prisma/skills/email-ops/SKILL.md +0 -122
  166. package/prisma/skills/energy-procurement/SKILL.md +0 -228
  167. package/prisma/skills/enterprise-agent-ops/SKILL.md +0 -51
  168. package/prisma/skills/error-handling/SKILL.md +0 -377
  169. package/prisma/skills/eval-harness/SKILL.md +0 -271
  170. package/prisma/skills/evm-token-decimals/SKILL.md +0 -131
  171. package/prisma/skills/exa-search/SKILL.md +0 -108
  172. package/prisma/skills/fal-ai-media/SKILL.md +0 -289
  173. package/prisma/skills/fastapi-patterns/SKILL.md +0 -514
  174. package/prisma/skills/finance-billing-ops/SKILL.md +0 -128
  175. package/prisma/skills/flox-environments/SKILL.md +0 -497
  176. package/prisma/skills/flutter-dart-code-review/SKILL.md +0 -436
  177. package/prisma/skills/foundation-models-on-device/SKILL.md +0 -243
  178. package/prisma/skills/frontend-a11y/SKILL.md +0 -446
  179. package/prisma/skills/frontend-design-direction/SKILL.md +0 -93
  180. package/prisma/skills/frontend-patterns/SKILL.md +0 -657
  181. package/prisma/skills/frontend-slides/SKILL.md +0 -185
  182. package/prisma/skills/frontend-slides/STYLE_PRESETS.md +0 -330
  183. package/prisma/skills/frontend-slides/animation-patterns.md +0 -122
  184. package/prisma/skills/frontend-slides/html-template.md +0 -419
  185. package/prisma/skills/frontend-slides/scripts/export-pdf.sh +0 -418
  186. package/prisma/skills/frontend-slides/scripts/extract-pptx.py +0 -96
  187. package/prisma/skills/frontend-slides/viewport-base.css +0 -153
  188. package/prisma/skills/fsharp-testing/SKILL.md +0 -281
  189. package/prisma/skills/gan-style-harness/SKILL.md +0 -279
  190. package/prisma/skills/gateguard/SKILL.md +0 -133
  191. package/prisma/skills/generating-python-installer/SKILL.md +0 -820
  192. package/prisma/skills/git-workflow/SKILL.md +0 -716
  193. package/prisma/skills/github-ops/SKILL.md +0 -145
  194. package/prisma/skills/golang-patterns/SKILL.md +0 -675
  195. package/prisma/skills/golang-testing/SKILL.md +0 -721
  196. package/prisma/skills/google-workspace-ops/SKILL.md +0 -96
  197. package/prisma/skills/growth-log/SKILL.md +0 -128
  198. package/prisma/skills/healthcare-cdss-patterns/SKILL.md +0 -246
  199. package/prisma/skills/healthcare-emr-patterns/SKILL.md +0 -160
  200. package/prisma/skills/healthcare-eval-harness/SKILL.md +0 -208
  201. package/prisma/skills/healthcare-phi-compliance/SKILL.md +0 -146
  202. package/prisma/skills/hermes-imports/SKILL.md +0 -89
  203. package/prisma/skills/hexagonal-architecture/SKILL.md +0 -277
  204. package/prisma/skills/hipaa-compliance/SKILL.md +0 -79
  205. package/prisma/skills/homelab-network-readiness/SKILL.md +0 -170
  206. package/prisma/skills/homelab-network-setup/SKILL.md +0 -130
  207. package/prisma/skills/homelab-pihole-dns/SKILL.md +0 -275
  208. package/prisma/skills/homelab-vlan-segmentation/SKILL.md +0 -312
  209. package/prisma/skills/homelab-wireguard-vpn/SKILL.md +0 -306
  210. package/prisma/skills/hookify-rules/SKILL.md +0 -128
  211. package/prisma/skills/inherit-legacy-style/SKILL.md +0 -157
  212. package/prisma/skills/intent-driven-development/SKILL.md +0 -360
  213. package/prisma/skills/inventory-demand-planning/SKILL.md +0 -247
  214. package/prisma/skills/investor-materials/SKILL.md +0 -97
  215. package/prisma/skills/investor-outreach/SKILL.md +0 -92
  216. package/prisma/skills/ios-icon-gen/SKILL.md +0 -158
  217. package/prisma/skills/ios-icon-gen/scripts/generate_icons.swift +0 -258
  218. package/prisma/skills/ios-icon-gen/scripts/iconify_gen.sh +0 -235
  219. package/prisma/skills/iterative-retrieval/SKILL.md +0 -212
  220. package/prisma/skills/ito-basket-compare/SKILL.md +0 -64
  221. package/prisma/skills/ito-data-atlas-agent/SKILL.md +0 -64
  222. package/prisma/skills/ito-market-intelligence/SKILL.md +0 -61
  223. package/prisma/skills/ito-trade-planner/SKILL.md +0 -68
  224. package/prisma/skills/java-coding-standards/SKILL.md +0 -384
  225. package/prisma/skills/jira-integration/SKILL.md +0 -303
  226. package/prisma/skills/jpa-patterns/SKILL.md +0 -152
  227. package/prisma/skills/knowledge-ops/SKILL.md +0 -155
  228. package/prisma/skills/kotlin-coroutines-flows/SKILL.md +0 -285
  229. package/prisma/skills/kotlin-exposed-patterns/SKILL.md +0 -720
  230. package/prisma/skills/kotlin-ktor-patterns/SKILL.md +0 -690
  231. package/prisma/skills/kotlin-patterns/SKILL.md +0 -712
  232. package/prisma/skills/kotlin-testing/SKILL.md +0 -825
  233. package/prisma/skills/kubernetes-patterns/SKILL.md +0 -756
  234. package/prisma/skills/laravel-patterns/SKILL.md +0 -416
  235. package/prisma/skills/laravel-plugin-discovery/SKILL.md +0 -230
  236. package/prisma/skills/laravel-security/SKILL.md +0 -948
  237. package/prisma/skills/laravel-tdd/SKILL.md +0 -675
  238. package/prisma/skills/laravel-verification/SKILL.md +0 -180
  239. package/prisma/skills/latency-critical-systems/SKILL.md +0 -74
  240. package/prisma/skills/lead-intelligence/SKILL.md +0 -322
  241. package/prisma/skills/lead-intelligence/agents/enrichment-agent.md +0 -85
  242. package/prisma/skills/lead-intelligence/agents/mutual-mapper.md +0 -75
  243. package/prisma/skills/lead-intelligence/agents/outreach-drafter.md +0 -98
  244. package/prisma/skills/lead-intelligence/agents/signal-scorer.md +0 -60
  245. package/prisma/skills/liquid-glass-design/SKILL.md +0 -279
  246. package/prisma/skills/llm-trading-agent-security/SKILL.md +0 -147
  247. package/prisma/skills/logistics-exception-management/SKILL.md +0 -222
  248. package/prisma/skills/loop-design-check/SKILL.md +0 -143
  249. package/prisma/skills/mailtrap-email-integration/SKILL.md +0 -77
  250. package/prisma/skills/make-interfaces-feel-better/SKILL.md +0 -152
  251. package/prisma/skills/manim-video/SKILL.md +0 -90
  252. package/prisma/skills/manim-video/assets/network_graph_scene.py +0 -52
  253. package/prisma/skills/market-research/SKILL.md +0 -76
  254. package/prisma/skills/marketing-campaign/SKILL.md +0 -114
  255. package/prisma/skills/mcp-server-patterns/SKILL.md +0 -70
  256. package/prisma/skills/messages-ops/SKILL.md +0 -105
  257. package/prisma/skills/ml-adoption-playbook/SKILL.md +0 -57
  258. package/prisma/skills/mle-workflow/SKILL.md +0 -347
  259. package/prisma/skills/motion-advanced/SKILL.md +0 -596
  260. package/prisma/skills/motion-foundations/SKILL.md +0 -299
  261. package/prisma/skills/motion-patterns/SKILL.md +0 -434
  262. package/prisma/skills/motion-ui/SKILL.md +0 -576
  263. package/prisma/skills/mysql-patterns/SKILL.md +0 -413
  264. package/prisma/skills/nanoclaw-repl/SKILL.md +0 -34
  265. package/prisma/skills/nestjs-patterns/SKILL.md +0 -231
  266. package/prisma/skills/netmiko-ssh-automation/SKILL.md +0 -174
  267. package/prisma/skills/network-bgp-diagnostics/SKILL.md +0 -168
  268. package/prisma/skills/network-config-validation/SKILL.md +0 -211
  269. package/prisma/skills/network-interface-health/SKILL.md +0 -153
  270. package/prisma/skills/nextjs-turbopack/SKILL.md +0 -58
  271. package/prisma/skills/nodejs-keccak256/SKILL.md +0 -103
  272. package/prisma/skills/nutrient-document-processing/SKILL.md +0 -168
  273. package/prisma/skills/nuxt4-patterns/SKILL.md +0 -101
  274. package/prisma/skills/openclaw-persona-forge/SKILL.md +0 -289
  275. package/prisma/skills/openclaw-persona-forge/gacha.py +0 -224
  276. package/prisma/skills/openclaw-persona-forge/gacha.sh +0 -5
  277. package/prisma/skills/openclaw-persona-forge/references/avatar-style.md +0 -124
  278. package/prisma/skills/openclaw-persona-forge/references/boundary-rules.md +0 -53
  279. package/prisma/skills/openclaw-persona-forge/references/error-handling.md +0 -53
  280. package/prisma/skills/openclaw-persona-forge/references/identity-tension.md +0 -48
  281. package/prisma/skills/openclaw-persona-forge/references/naming-system.md +0 -39
  282. package/prisma/skills/openclaw-persona-forge/references/output-template.md +0 -166
  283. package/prisma/skills/opensource-pipeline/SKILL.md +0 -256
  284. package/prisma/skills/orch-add-feature/SKILL.md +0 -45
  285. package/prisma/skills/orch-build-mvp/SKILL.md +0 -49
  286. package/prisma/skills/orch-change-feature/SKILL.md +0 -43
  287. package/prisma/skills/orch-fix-defect/SKILL.md +0 -43
  288. package/prisma/skills/orch-pipeline/SKILL.md +0 -121
  289. package/prisma/skills/orch-refine-code/SKILL.md +0 -44
  290. package/prisma/skills/parallel-execution-optimizer/SKILL.md +0 -73
  291. package/prisma/skills/perl-patterns/SKILL.md +0 -505
  292. package/prisma/skills/perl-security/SKILL.md +0 -504
  293. package/prisma/skills/perl-testing/SKILL.md +0 -476
  294. package/prisma/skills/plan-orchestrate/SKILL.md +0 -263
  295. package/prisma/skills/plankton-code-quality/SKILL.md +0 -237
  296. package/prisma/skills/postgres-patterns/SKILL.md +0 -148
  297. package/prisma/skills/prediction-market-oracle-research/SKILL.md +0 -64
  298. package/prisma/skills/prediction-market-risk-review/SKILL.md +0 -61
  299. package/prisma/skills/prisma-patterns/SKILL.md +0 -401
  300. package/prisma/skills/product-capability/SKILL.md +0 -142
  301. package/prisma/skills/product-lens/SKILL.md +0 -93
  302. package/prisma/skills/production-audit/SKILL.md +0 -207
  303. package/prisma/skills/production-scheduling/SKILL.md +0 -238
  304. package/prisma/skills/project-flow-ops/SKILL.md +0 -112
  305. package/prisma/skills/prompt-optimizer/SKILL.md +0 -398
  306. package/prisma/skills/python-patterns/SKILL.md +0 -751
  307. package/prisma/skills/python-testing/SKILL.md +0 -817
  308. package/prisma/skills/pytorch-patterns/SKILL.md +0 -397
  309. package/prisma/skills/quality-nonconformance/SKILL.md +0 -260
  310. package/prisma/skills/quarkus-patterns/SKILL.md +0 -723
  311. package/prisma/skills/quarkus-security/SKILL.md +0 -468
  312. package/prisma/skills/quarkus-tdd/SKILL.md +0 -812
  313. package/prisma/skills/quarkus-verification/SKILL.md +0 -480
  314. package/prisma/skills/ralphinho-rfc-pipeline/SKILL.md +0 -68
  315. package/prisma/skills/react-native-patterns/SKILL.md +0 -326
  316. package/prisma/skills/react-patterns/SKILL.md +0 -342
  317. package/prisma/skills/react-performance/SKILL.md +0 -575
  318. package/prisma/skills/react-testing/SKILL.md +0 -424
  319. package/prisma/skills/recsys-pipeline-architect/SKILL.md +0 -115
  320. package/prisma/skills/recursive-decision-ledger/SKILL.md +0 -80
  321. package/prisma/skills/redis-patterns/SKILL.md +0 -404
  322. package/prisma/skills/regex-vs-llm-structured-text/SKILL.md +0 -221
  323. package/prisma/skills/remotion-video-creation/SKILL.md +0 -43
  324. package/prisma/skills/remotion-video-creation/rules/3d.md +0 -86
  325. package/prisma/skills/remotion-video-creation/rules/animations.md +0 -29
  326. package/prisma/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +0 -173
  327. package/prisma/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +0 -100
  328. package/prisma/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +0 -108
  329. package/prisma/skills/remotion-video-creation/rules/assets.md +0 -78
  330. package/prisma/skills/remotion-video-creation/rules/audio.md +0 -172
  331. package/prisma/skills/remotion-video-creation/rules/calculate-metadata.md +0 -104
  332. package/prisma/skills/remotion-video-creation/rules/can-decode.md +0 -75
  333. package/prisma/skills/remotion-video-creation/rules/charts.md +0 -58
  334. package/prisma/skills/remotion-video-creation/rules/compositions.md +0 -146
  335. package/prisma/skills/remotion-video-creation/rules/display-captions.md +0 -126
  336. package/prisma/skills/remotion-video-creation/rules/extract-frames.md +0 -229
  337. package/prisma/skills/remotion-video-creation/rules/fonts.md +0 -152
  338. package/prisma/skills/remotion-video-creation/rules/get-audio-duration.md +0 -58
  339. package/prisma/skills/remotion-video-creation/rules/get-video-dimensions.md +0 -68
  340. package/prisma/skills/remotion-video-creation/rules/get-video-duration.md +0 -58
  341. package/prisma/skills/remotion-video-creation/rules/gifs.md +0 -138
  342. package/prisma/skills/remotion-video-creation/rules/images.md +0 -130
  343. package/prisma/skills/remotion-video-creation/rules/import-srt-captions.md +0 -67
  344. package/prisma/skills/remotion-video-creation/rules/lottie.md +0 -67
  345. package/prisma/skills/remotion-video-creation/rules/measuring-dom-nodes.md +0 -34
  346. package/prisma/skills/remotion-video-creation/rules/measuring-text.md +0 -143
  347. package/prisma/skills/remotion-video-creation/rules/sequencing.md +0 -106
  348. package/prisma/skills/remotion-video-creation/rules/tailwind.md +0 -11
  349. package/prisma/skills/remotion-video-creation/rules/text-animations.md +0 -20
  350. package/prisma/skills/remotion-video-creation/rules/timing.md +0 -179
  351. package/prisma/skills/remotion-video-creation/rules/transcribe-captions.md +0 -19
  352. package/prisma/skills/remotion-video-creation/rules/transitions.md +0 -122
  353. package/prisma/skills/remotion-video-creation/rules/trimming.md +0 -52
  354. package/prisma/skills/remotion-video-creation/rules/videos.md +0 -171
  355. package/prisma/skills/repo-scan/SKILL.md +0 -79
  356. package/prisma/skills/research-ops/SKILL.md +0 -113
  357. package/prisma/skills/returns-reverse-logistics/SKILL.md +0 -240
  358. package/prisma/skills/rules-distill/SKILL.md +0 -265
  359. package/prisma/skills/rules-distill/scripts/scan-rules.sh +0 -58
  360. package/prisma/skills/rules-distill/scripts/scan-skills.sh +0 -129
  361. package/prisma/skills/rust-patterns/SKILL.md +0 -500
  362. package/prisma/skills/rust-testing/SKILL.md +0 -501
  363. package/prisma/skills/safety-guard/SKILL.md +0 -76
  364. package/prisma/skills/santa-method/SKILL.md +0 -307
  365. package/prisma/skills/scientific-db-pubmed-database/SKILL.md +0 -176
  366. package/prisma/skills/scientific-db-uspto-database/SKILL.md +0 -178
  367. package/prisma/skills/scientific-pkg-gget/SKILL.md +0 -167
  368. package/prisma/skills/scientific-thinking-literature-review/SKILL.md +0 -193
  369. package/prisma/skills/scientific-thinking-scholar-evaluation/SKILL.md +0 -161
  370. package/prisma/skills/search-first/SKILL.md +0 -183
  371. package/prisma/skills/security-bounty-hunter/SKILL.md +0 -100
  372. package/prisma/skills/security-review/SKILL.md +0 -504
  373. package/prisma/skills/security-review/cloud-infrastructure-security.md +0 -361
  374. package/prisma/skills/security-scan/SKILL.md +0 -166
  375. package/prisma/skills/seo/SKILL.md +0 -155
  376. package/prisma/skills/skill-comply/SKILL.md +0 -59
  377. package/prisma/skills/skill-comply/fixtures/compliant_trace.jsonl +0 -5
  378. package/prisma/skills/skill-comply/fixtures/noncompliant_trace.jsonl +0 -3
  379. package/prisma/skills/skill-comply/fixtures/tdd_spec.yaml +0 -44
  380. package/prisma/skills/skill-comply/prompts/classifier.md +0 -24
  381. package/prisma/skills/skill-comply/prompts/scenario_generator.md +0 -62
  382. package/prisma/skills/skill-comply/prompts/spec_generator.md +0 -42
  383. package/prisma/skills/skill-comply/pyproject.toml +0 -15
  384. package/prisma/skills/skill-comply/scripts/__init__.py +0 -0
  385. package/prisma/skills/skill-comply/scripts/classifier.py +0 -85
  386. package/prisma/skills/skill-comply/scripts/grader.py +0 -124
  387. package/prisma/skills/skill-comply/scripts/parser.py +0 -107
  388. package/prisma/skills/skill-comply/scripts/report.py +0 -170
  389. package/prisma/skills/skill-comply/scripts/run.py +0 -127
  390. package/prisma/skills/skill-comply/scripts/runner.py +0 -194
  391. package/prisma/skills/skill-comply/scripts/scenario_generator.py +0 -70
  392. package/prisma/skills/skill-comply/scripts/spec_generator.py +0 -72
  393. package/prisma/skills/skill-comply/scripts/utils.py +0 -13
  394. package/prisma/skills/skill-comply/tests/test_grader.py +0 -197
  395. package/prisma/skills/skill-comply/tests/test_parser.py +0 -90
  396. package/prisma/skills/skill-comply/tests/test_runner.py +0 -172
  397. package/prisma/skills/skill-scout/SKILL.md +0 -141
  398. package/prisma/skills/skill-stocktake/SKILL.md +0 -195
  399. package/prisma/skills/skill-stocktake/scripts/quick-diff.sh +0 -87
  400. package/prisma/skills/skill-stocktake/scripts/save-results.sh +0 -56
  401. package/prisma/skills/skill-stocktake/scripts/scan.sh +0 -170
  402. package/prisma/skills/social-graph-ranker/SKILL.md +0 -155
  403. package/prisma/skills/social-publisher/SKILL.md +0 -130
  404. package/prisma/skills/springboot-patterns/SKILL.md +0 -315
  405. package/prisma/skills/springboot-security/SKILL.md +0 -273
  406. package/prisma/skills/springboot-tdd/SKILL.md +0 -159
  407. package/prisma/skills/springboot-verification/SKILL.md +0 -232
  408. package/prisma/skills/strategic-compact/SKILL.md +0 -136
  409. package/prisma/skills/swift-actor-persistence/SKILL.md +0 -144
  410. package/prisma/skills/swift-concurrency-6-2/SKILL.md +0 -216
  411. package/prisma/skills/swift-protocol-di-testing/SKILL.md +0 -191
  412. package/prisma/skills/swiftui-patterns/SKILL.md +0 -259
  413. package/prisma/skills/taste/SKILL.md +0 -264
  414. package/prisma/skills/taste/references/genre-taxonomy.md +0 -87
  415. package/prisma/skills/tdd-workflow/SKILL.md +0 -583
  416. package/prisma/skills/team-agent-orchestration/SKILL.md +0 -111
  417. package/prisma/skills/team-builder/SKILL.md +0 -169
  418. package/prisma/skills/terminal-ops/SKILL.md +0 -110
  419. package/prisma/skills/tinystruct-patterns/SKILL.md +0 -279
  420. package/prisma/skills/tinystruct-patterns/references/architecture.md +0 -90
  421. package/prisma/skills/tinystruct-patterns/references/data-handling.md +0 -60
  422. package/prisma/skills/tinystruct-patterns/references/database.md +0 -99
  423. package/prisma/skills/tinystruct-patterns/references/routing.md +0 -64
  424. package/prisma/skills/tinystruct-patterns/references/system-usage.md +0 -97
  425. package/prisma/skills/tinystruct-patterns/references/testing.md +0 -72
  426. package/prisma/skills/token-budget-advisor/SKILL.md +0 -134
  427. package/prisma/skills/ui-demo/SKILL.md +0 -466
  428. package/prisma/skills/ui-to-vue/SKILL.md +0 -135
  429. package/prisma/skills/uncloud/SKILL.md +0 -344
  430. package/prisma/skills/unified-notifications-ops/SKILL.md +0 -188
  431. package/prisma/skills/verification-loop/SKILL.md +0 -127
  432. package/prisma/skills/video-editing/SKILL.md +0 -311
  433. package/prisma/skills/videodb/SKILL.md +0 -375
  434. package/prisma/skills/videodb/reference/api-reference.md +0 -550
  435. package/prisma/skills/videodb/reference/capture-reference.md +0 -407
  436. package/prisma/skills/videodb/reference/capture.md +0 -101
  437. package/prisma/skills/videodb/reference/editor.md +0 -443
  438. package/prisma/skills/videodb/reference/generative.md +0 -331
  439. package/prisma/skills/videodb/reference/rtstream-reference.md +0 -564
  440. package/prisma/skills/videodb/reference/rtstream.md +0 -65
  441. package/prisma/skills/videodb/reference/search.md +0 -230
  442. package/prisma/skills/videodb/reference/streaming.md +0 -406
  443. package/prisma/skills/videodb/reference/use-cases.md +0 -118
  444. package/prisma/skills/videodb/scripts/ws_listener.py +0 -282
  445. package/prisma/skills/visa-doc-translate/README.md +0 -86
  446. package/prisma/skills/visa-doc-translate/SKILL.md +0 -117
  447. package/prisma/skills/vite-patterns/SKILL.md +0 -450
  448. package/prisma/skills/vue-patterns/SKILL.md +0 -471
  449. package/prisma/skills/windows-desktop-e2e/SKILL.md +0 -888
  450. package/prisma/skills/workspace-surface-audit/SKILL.md +0 -126
  451. package/prisma/skills/x-api/SKILL.md +0 -235
@@ -1,214 +0,0 @@
1
- ---
2
- name: competitive-platform-analysis
3
- description: >-
4
- Use when scoping a competitive landscape — identifying, categorising, and
5
- score-filtering a competitor set before any benchmarking begins. Decides who
6
- counts as a competitor, which tier they belong to, and which sources to mine.
7
- First step in the three-skill competitive pipeline; precedes
8
- benchmark-methodology.
9
- ---
10
-
11
- # Competitive Platform Analysis
12
-
13
- Use this skill to decide **who to benchmark** and **where to find them** before
14
- any scoring begins. A competitive analysis is only as good as its frame: the
15
- wrong set makes the client look either unbeatable or doomed. The goal is a
16
- defensible, decision-relevant set — not an exhaustive census.
17
-
18
- ## When to Activate
19
-
20
- - About to start a competitive benchmarking project and need to define the competitor set first.
21
- - Unsure which companies belong in Direct / Adjacent / Aspirational tiers.
22
- - Need a defensible, pruned scope for a market landscape report.
23
- - Has a positioning brief and wants to identify who contests that position.
24
- - First step before running benchmark-methodology.
25
-
26
- ## Client positioning brief (establish first)
27
-
28
- Before scoping the set, establish the client's positioning brief. If you don't
29
- already have it, run a short brand-discovery interview to elicit it — do **not**
30
- invent one and do **not** scope the set blind. The brief supplies:
31
-
32
- - **Identity / aesthetic register** — what kind of studio or company this is and
33
- how it presents itself.
34
- - **Offer** — what services or products it delivers.
35
- - **Target clients** — who it sells to.
36
- - **Differentiator** — the moat or positioning argument the client believes in.
37
- - **Scoping consequence** — the implication for how to weight competitors (e.g.,
38
- prioritize by distinctiveness vs. capability overlap vs. price).
39
- - **Strategic tension** — the paired axes that define the client's white-space
40
- (e.g., memorability × hireability).
41
-
42
- **Do not proceed without the positioning brief.** A competitor list scoped
43
- without the client's lens is noise, not intelligence. The scoping consequence in
44
- particular determines which competitors are *strong* rivals (those that contest
45
- the client's moat) vs. merely overlapping on service menu.
46
-
47
- ## Selection criteria
48
-
49
- For each candidate, capture these axes — they decide both inclusion and tier:
50
-
51
- - **Size / model** — solo, micro-studio (2–8), boutique (sub-30), mid-size
52
- agency. Match the client's own band; same-band studios are the realistic
53
- head-to-head set.
54
- - **Niche / specialization** — how closely the candidate's focus overlaps with
55
- the client's offer. Tighter overlap = more direct.
56
- - **Geography / market** — EU vs US vs global-remote; language; time-zone reach.
57
- Note whether they win the same clients the client targets.
58
- - **Pricing & engagement model** — productized sprints, retainer, project,
59
- day-rate; transparent vs "contact us". Signals positioning maturity.
60
- - **Portfolio style** — generic vs. opinionated/editorial vs. contrarian. Closer
61
- to the client's aesthetic register = more they contest the client's
62
- distinctiveness.
63
- - **Technical depth / craft maturity** — relevant if the client's credibility
64
- story includes public process work, open tooling, or documented systems.
65
- - **Brand strength** — does the studio have an ownable verbal/visual identity, or
66
- is it interchangeable? Weight this per the client's scoping consequence.
67
-
68
- ## Player taxonomy — axes to populate across
69
-
70
- Don't sort competitors into niche-specific buckets; sort them along a few
71
- generic axes so the landscape isn't skewed toward one archetype. These axes
72
- apply to any creative-service market (design, motion, copywriting, branding,
73
- content, film, etc.). Aim for breadth across each axis first, then prune to the
74
- most instructive.
75
-
76
- 1. **Positioning stance** — *brand-led / editorial* (competes on identity,
77
- voice, POV) vs *capability-led* (competes on craft, throughput, outcomes).
78
- Populate both poles; the client's closest mirror sits at its own end.
79
- 2. **Specialization** — *specialist* (one tight discipline or vertical) vs
80
- *generalist* (broad service menu). Tighter overlap with the client's focus =
81
- more direct.
82
- 3. **Size / model** — *solo / micro* vs *boutique* vs *mid-size* vs
83
- *enterprise-scale*. Same-band players are the realistic head-to-head; larger
84
- bands are the aspirational/commercial-maturity reference.
85
- 4. **Engagement format** — *productized* (named sprints, audits, fixed packages)
86
- vs *bespoke* (custom project / retainer). Signals positioning maturity.
87
- 5. **Distinctiveness posture** — *conventional / safe* vs *contrarian /
88
- manifesto-driven*. The opinionated end is key for distinctiveness
89
- benchmarking in any niche.
90
- 6. **Evidence / credibility model** — *outcome-led* (metrics, named clients,
91
- case depth) vs *aesthetic-led* (portfolio, awards). Tells you how each player
92
- earns trust.
93
- 7. **Brand strength of the operator** — *interchangeable* vs *cult / ownable
94
- identity* (including senior independents who prove the "memorable solo brand"
95
- model).
96
- 8. **Market / reach** — *local / regional* vs *global-remote*; note whether they
97
- win the same clients the client targets.
98
-
99
- Plot each candidate on the relevant axes; a competitor is *direct* when it sits
100
- near the client on positioning, specialization, size, and market at once.
101
-
102
- ## Competitive tiers (how the set resolves)
103
-
104
- Group the final set into three tiers — this structure carries through to the
105
- report:
106
-
107
- - **Direct** — same band, overlapping offer, same client targets. The realistic
108
- head-to-head.
109
- - **Adjacent** — partial overlap (one capability, or a different client size)
110
- that pressures at the edges.
111
- - **Aspirational** — players the client is not competing with today but whose
112
- brand or commercial maturity sets the bar to aim at.
113
- - *(Watch also for substitutes: no-code/AI tools, in-house teams, generalist
114
- freelancers — note as a threat vector, not a profiled competitor unless
115
- materially relevant.)*
116
-
117
- ## Data sources (where to look)
118
-
119
- Match the source to the dimension you need. The platform *types* below are
120
- generic; substitute the ones native to the client's niche (e.g. Dribbble/Behance
121
- for design, showreel/Vimeo for motion, writing samples/published work for copy):
122
-
123
- - **Portfolio / craft platforms** — craft quality, range, aesthetic register
124
- (e.g. Dribbble, Behance, Vimeo, or the niche's equivalent showcase).
125
- - **Awards / curated showcases** — craft ambition and editorial recognition;
126
- over-indexes on flashy, so cross-check commercial credibility (e.g. Awwwards,
127
- industry award lists).
128
- - **Competitor's own site** — primary source for positioning, voice, offer
129
- packaging, pricing posture, named clients, manifesto/POV.
130
- - **LinkedIn** — team size/model, founder narrative, post cadence, client logos,
131
- geography.
132
- - **Review directories** — reviews, named clients, project sizes, engagement
133
- models; strongest signal for commercial credibility and enterprise-readiness
134
- (e.g. Clutch.co or the niche's equivalent).
135
- - **Open / public work** — process repos, published samples, open creative
136
- output: depth and craft-transparency evidence.
137
- - **Conference talks / podcasts / newsletters** — thought-leadership depth and
138
- POV ownership.
139
-
140
- Always **verify claims across at least two sources** before treating a competitor
141
- attribute as fact (self-reported site copy ≠ verified outcome). Carry an
142
- adversarial-verification discipline into every profile.
143
-
144
- ## Scoring matrix template (selection stage)
145
-
146
- A lightweight pre-filter to decide who graduates into full benchmarking. Score
147
- 1–5; keep candidates that score high on **either** distinctiveness **or**
148
- credibility — the client's strategic tension means both poles are instructive.
149
-
150
- | Candidate | Positioning stance | Specialization | Size band | Tier | Offer overlap (1–5) | Distinctiveness (1–5) | Commercial credibility (1–5) | Craft proximity (1–5) | Include? |
151
- |-----------|--------------------|----------------|-----------|------|---------------------|------------------------|------------------------------|------------------------|----------|
152
-
153
- Rules of thumb (apply per the client's scoping consequence in the positioning brief):
154
-
155
- - High distinctiveness **and** high credibility → must-profile (proves the
156
- client's target tension is achievable).
157
- - High distinctiveness, low credibility → cautionary case (memorable but
158
- un-hireable — a potential failure mode to learn from).
159
- - High credibility, low distinctiveness → "competent but forgettable" mass the
160
- client defines itself against.
161
- - Low on both → drop unless needed for landscape breadth.
162
-
163
- ## Output of this stage
164
-
165
- A scoped, tiered competitor set (typically 10–18 candidates → 8–12 profiled),
166
- each tagged with its axis positions, tier, and source links, ready to hand to
167
- `benchmark-methodology`.
168
-
169
- ## Anti-Patterns
170
-
171
- - **Scoping without a positioning brief.** A competitor list built without the client's lens is noise. The brief determines what counts as a real rival.
172
- - **Listing every similar company.** The goal is a defensible 10–18 candidate set, not a census. Breadth without pruning makes benchmarking unmanageable.
173
- - **Blurring the Direct/Adjacent/Aspirational tiers.** These tiers serve different strategic purposes. Mixing them produces a flat list that can't drive decisions.
174
- - **Relying on a single source per competitor.** Self-reported site copy is marketing, not fact. Verify attributes across at least two sources.
175
- - **Jumping straight to scoring.** This skill scopes and tiers the set. Benchmark-methodology handles scoring. Don't conflate the two steps.
176
-
177
- ## Examples
178
-
179
- **Scenario:** A boutique brand-identity studio (2-person, EU-remote, productized
180
- sprints, contrarian/manifesto-driven aesthetic) wants to scope its competitive
181
- set before benchmarking. The strategic tension from the positioning brief is
182
- *memorability × hireability*.
183
-
184
- **Step 1 — eight-axis population (sample candidates):**
185
-
186
- | Candidate | Positioning stance | Specialization | Size band | Engagement | Distinctiveness | Evidence model | Brand strength | Market |
187
- |---|---|---|---|---|---|---|---|---|
188
- | Studio A | brand-led / editorial | identity only | micro | productized | contrarian | aesthetic-led | cult | global-remote |
189
- | Studio B | capability-led | broad DS+motion | boutique | bespoke | conventional | outcome-led | interchangeable | US |
190
- | Agency C | capability-led | brand+digital | mid-size | retainer | conventional | outcome-led | interchangeable | EU |
191
- | Freelancer D | brand-led | brand voice only | solo | day-rate | editorial | aesthetic-led | ownable | global |
192
- | Studio E | brand-led | brand strategy | micro | productized | manifesto-driven | outcome-led | cult | EU-remote |
193
-
194
- **Step 2 — pre-filter scoring (client scoping consequence: weight distinctiveness
195
- because the client's moat is POV-first, not capability breadth):**
196
-
197
- | Candidate | Offer overlap (1–5) | Distinctiveness (1–5) | Commercial credibility (1–5) | Craft proximity (1–5) | Tier | Include? |
198
- |---|---|---|---|---|---|---|
199
- | Studio A | 5 | 5 | 3 | 5 | Direct | ✓ must-profile |
200
- | Studio B | 3 | 2 | 5 | 3 | Adjacent | ✓ credibility anchor |
201
- | Agency C | 2 | 1 | 5 | 2 | Aspirational | ✓ scale reference |
202
- | Freelancer D | 4 | 4 | 2 | 4 | Direct | ✓ cautionary case |
203
- | Studio E | 5 | 5 | 4 | 4 | Direct | ✓ must-profile |
204
-
205
- **Step 3 — output handed to `benchmark-methodology`:**
206
- Five candidates (3 Direct, 1 Adjacent, 1 Aspirational), each tagged with
207
- axis positions, tier, and source links. Studio A and Studio E are the
208
- sharpest head-to-head rivals; Freelancer D is the "memorable but
209
- un-hireable" cautionary case to learn from.
210
-
211
- ## Related Skills
212
-
213
- - `brand-discovery` — use first to establish the positioning brief and strategic tension that scopes the competitor set.
214
- - `benchmark-methodology` — the next step; takes the tiered set and scores each competitor across nine dimensions.
@@ -1,162 +0,0 @@
1
- ---
2
- name: competitive-report-structure
3
- description: >-
4
- Use after benchmark-methodology has produced scored competitor profile cards.
5
- Assembles findings into a decision-grade report: landscape map, competitor
6
- profiles, benchmarking matrix, white-space analysis, strategic recommendations,
7
- and team alignment trigger questions. Final step in the three-skill competitive
8
- pipeline.
9
- ---
10
-
11
- # Competitive Report Structure
12
-
13
- Use this skill to assemble scored competitor cards into a decision-grade report.
14
- The report must answer three questions for the client: **who do we compete with,
15
- how do we compete, and where is our defensible white-space?** Every section
16
- earns its place by moving toward those answers — cut anything that doesn't.
17
-
18
- ## When to Activate
19
-
20
- - All competitor profile cards from benchmark-methodology are complete and ready to assemble.
21
- - Need to present competitive findings to a founder, leadership team, or board.
22
- - The report must drive decisions (who to compete with, how, where the moat is) — not just document the landscape.
23
- - Preparing a client deliverable that must be auditable and defensible.
24
-
25
- ## Client positioning brief (establish first)
26
-
27
- Before assembling the report, establish the client's positioning brief. It
28
- supplies:
29
-
30
- - **Strategic tension** — the paired axes (e.g., memorability × hireability)
31
- that define the client's target white-space. All maps and synthesis resolve
32
- back to this tension.
33
- - **Brand balance** — the intended proportional mix of the client's strategic
34
- emphases (e.g., 60% strategy/evidence, 25% distinctiveness, 15% craft).
35
- Every recommendation must be checked against this balance; flag any that
36
- would shift it.
37
- - **Differentiator** — the framing principle for the executive summary and
38
- white-space section.
39
- - **Target quadrant** — where the client intends to sit in the tension map;
40
- confirming whether that quadrant is genuinely open is the report's central
41
- empirical question.
42
-
43
- ## Framing principle
44
-
45
- The whole report is organized around the client's strategic tension and
46
- recommendations resolve back to the client's deliberate brand balance.
47
- Recommendations that would break that balance must be flagged against it
48
- explicitly — "this move shifts the balance from X/Y/Z toward A/B/C; confirm
49
- intent."
50
-
51
- ## Report sections
52
-
53
- ### 1. Executive summary
54
- 3–5 takeaways, decision-first. State the most important findings in plain
55
- language: where the client is strong, where it's exposed, who occupies its
56
- target white-space, and the top 2–3 moves. Written so a founder/PM reads only
57
- this and knows what to do. No methodology here.
58
-
59
- ### 2. Market landscape & category framing
60
- Define the category and map it. Use a **multi-axis map** — at minimum a 2×2
61
- (e.g., *brand-led <-> capability-led* × *boutique <-> enterprise-scale*), and
62
- ideally the **client's tension plot** from `benchmark-methodology` as the
63
- headline map. Place every profiled competitor and the client. The map should
64
- make the client's intended position visually obvious and show how crowded (or
65
- empty) it is.
66
-
67
- ### 3. Competitor tiers
68
- Organize the set into **Direct / Adjacent / Aspirational** (from
69
- `competitive-platform-analysis`). One short paragraph per tier explaining who's
70
- in it and why it matters to the client. This sets reader expectations before
71
- the detail.
72
-
73
- ### 4. Benchmarking matrix
74
- The full **competitors × dimensions** table — the quantitative spine. Rows =
75
- competitors (grouped by tier), columns = the nine benchmark dimensions (note:
76
- dimension 9 — strategic tension — has two poles (e.g., Memorability and
77
- Hireability for a brand-studio client; substitute the client's own paired axes);
78
- represent them as two separate sub-columns rather than averaging them). Include
79
- the client's own honest self-assessment as a row for contrast. Use a **heatmap**
80
- (color or symbol scale) so strength/weakness patterns are scannable. Do **not**
81
- add a blended total column — report dimensions separately (per the bias
82
- controls). Call out the columns where the client leads and where it trails.
83
-
84
- ### 5. Deep dives
85
- 3–5 most instructive competitors in narrative form (from their profile cards).
86
- Choose for instruction, not ranking: the best exemplar of the target tension
87
- (high on both poles), the cautionary "one pole only" case, the "competent but
88
- forgettable" archetype the client defines against, plus any direct threat. Each
89
- deep dive: what they do, what the client should learn, what the client should
90
- avoid.
91
-
92
- ### 6. White-space & threats
93
- The strategic heart. Two parts:
94
-
95
- - **White-space:** the position the client can own that rivals don't — argued
96
- from the maps and matrix, not asserted. Confirm whether the target quadrant
97
- (from the positioning brief) is genuinely open.
98
- - **Threats:** who/what pressures the client — a rival closing the gap,
99
- substitutes (no-code/AI tools, in-house teams, generalist freelancers), or
100
- category shifts. Be honest about the client's own risks (e.g., a bold identity
101
- reading as un-serious to risk-averse buyers).
102
-
103
- ### 7. Strategic recommendations
104
- Concrete, prioritized moves: who the client competes with, how it differentiates,
105
- and where to invest (offer packaging, evidence/case studies, thought leadership,
106
- brand sharpening). **Tie every recommendation back to the brand balance from the
107
- positioning brief** and flag any that would shift it. Sequence by impact ×
108
- effort.
109
-
110
- ### 8. Sources / methodology appendix
111
- The dimensions, weights, rubrics, the scoped set with tiers, source links per
112
- competitor, and verification notes (asserted vs proven). This is what makes the
113
- report auditable and defensible — carry the adversarial citation discipline
114
- through.
115
-
116
- ## How to present data
117
-
118
- - **2×2 / positioning maps** — for landscape and the tension plot. Lead with
119
- these; they carry the argument faster than prose.
120
- - **Heatmap matrix** — for the competitors × dimensions comparison (section 4).
121
- - **Profile cards** — the source unit feeding deep dives (section 5).
122
- - **Quadrant callouts** — name who sits in each quadrant explicitly, especially
123
- the client's target one.
124
- - Keep tables scannable; push raw evidence and links to the appendix.
125
-
126
- ## Decision framework (the report must resolve these)
127
-
128
- - **Who do we compete with?** — Name the Direct tier specifically; that's the
129
- real fight.
130
- - **How do we compete?** — State the client's differentiator in one sentence,
131
- grounded in the matrix (which dimensions the client owns).
132
- - **Where are our differentiators defensible?** — Identify the
133
- dimensions/quadrant rivals can't easily copy (the moat), vs. the ones that
134
- are table-stakes.
135
-
136
- ## Trigger questions for the team alignment session
137
-
138
- End with questions that force decisions, not admiration of the analysis:
139
-
140
- - Is the target quadrant truly open, or is a rival already moving in?
141
- - Which Direct competitor is the sharpest threat in the next 12 months, and
142
- what's the counter?
143
- - Does the brand balance still hold given the landscape — should any emphasis
144
- shift?
145
- - Which dimension where the client trails is worth closing, and which to
146
- deliberately concede?
147
- - What's the one move that most widens distinctiveness *without* costing
148
- hireability / credibility?
149
-
150
- ## Anti-Patterns
151
-
152
- - **Leading with methodology.** The executive summary opens with the most important finding, not an explanation of how the benchmark was run. Methodology belongs in the appendix.
153
- - **Presenting scores without the tension plot.** The 2×2 tension map is the headline artefact. A table of numbers without the map buries the strategic insight.
154
- - **Omitting the decision framework.** The report must resolve the three questions (who to compete with, how, where the moat is). Leaving these unanswered turns the report into a literature review.
155
- - **Starting before all profile cards are complete.** Benchmark-methodology must finish before assembly begins. Partial data produces gaps that undermine the heatmap and white-space analysis.
156
- - **Adding a blended total column to the matrix.** Explicitly excluded — it creates a false composite that obscures the asymmetry the client needs to act on.
157
-
158
- ## Related Skills
159
-
160
- - `benchmark-methodology` — the prerequisite; produces the scored competitor profile cards this skill assembles.
161
- - `competitive-platform-analysis` — provides the tier structure (Direct / Adjacent / Aspirational) used in Section 3.
162
- - `brand-discovery` — use to establish the client's positioning brief if it hasn't been defined.
@@ -1,300 +0,0 @@
1
- ---
2
- name: compose-multiplatform-patterns
3
- description: Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
4
- metadata:
5
- origin: ECC
6
- ---
7
-
8
- # Compose Multiplatform Patterns
9
-
10
- Patterns for building shared UI across Android, iOS, Desktop, and Web using Compose Multiplatform and Jetpack Compose. Covers state management, navigation, theming, and performance.
11
-
12
- ## When to Activate
13
-
14
- - Building Compose UI (Jetpack Compose or Compose Multiplatform)
15
- - Managing UI state with ViewModels and Compose state
16
- - Implementing navigation in KMP or Android projects
17
- - Designing reusable composables and design systems
18
- - Optimizing recomposition and rendering performance
19
-
20
- ## State Management
21
-
22
- ### ViewModel + Single State Object
23
-
24
- Use a single data class for screen state. Expose it as `StateFlow` and collect in Compose:
25
-
26
- ```kotlin
27
- data class ItemListState(
28
- val items: List<Item> = emptyList(),
29
- val isLoading: Boolean = false,
30
- val error: String? = null,
31
- val searchQuery: String = ""
32
- )
33
-
34
- class ItemListViewModel(
35
- private val getItems: GetItemsUseCase
36
- ) : ViewModel() {
37
- private val _state = MutableStateFlow(ItemListState())
38
- val state: StateFlow<ItemListState> = _state.asStateFlow()
39
-
40
- fun onSearch(query: String) {
41
- _state.update { it.copy(searchQuery = query) }
42
- loadItems(query)
43
- }
44
-
45
- private fun loadItems(query: String) {
46
- viewModelScope.launch {
47
- _state.update { it.copy(isLoading = true) }
48
- getItems(query).fold(
49
- onSuccess = { items -> _state.update { it.copy(items = items, isLoading = false) } },
50
- onFailure = { e -> _state.update { it.copy(error = e.message, isLoading = false) } }
51
- )
52
- }
53
- }
54
- }
55
- ```
56
-
57
- ### Collecting State in Compose
58
-
59
- ```kotlin
60
- @Composable
61
- fun ItemListScreen(viewModel: ItemListViewModel = koinViewModel()) {
62
- val state by viewModel.state.collectAsStateWithLifecycle()
63
-
64
- ItemListContent(
65
- state = state,
66
- onSearch = viewModel::onSearch
67
- )
68
- }
69
-
70
- @Composable
71
- private fun ItemListContent(
72
- state: ItemListState,
73
- onSearch: (String) -> Unit
74
- ) {
75
- // Stateless composable — easy to preview and test
76
- }
77
- ```
78
-
79
- ### Event Sink Pattern
80
-
81
- For complex screens, use a sealed interface for events instead of multiple callback lambdas:
82
-
83
- ```kotlin
84
- sealed interface ItemListEvent {
85
- data class Search(val query: String) : ItemListEvent
86
- data class Delete(val itemId: String) : ItemListEvent
87
- data object Refresh : ItemListEvent
88
- }
89
-
90
- // In ViewModel
91
- fun onEvent(event: ItemListEvent) {
92
- when (event) {
93
- is ItemListEvent.Search -> onSearch(event.query)
94
- is ItemListEvent.Delete -> deleteItem(event.itemId)
95
- is ItemListEvent.Refresh -> loadItems(_state.value.searchQuery)
96
- }
97
- }
98
-
99
- // In Composable — single lambda instead of many
100
- ItemListContent(
101
- state = state,
102
- onEvent = viewModel::onEvent
103
- )
104
- ```
105
-
106
- ## Navigation
107
-
108
- ### Type-Safe Navigation (Compose Navigation 2.8+)
109
-
110
- Define routes as `@Serializable` objects:
111
-
112
- ```kotlin
113
- @Serializable data object HomeRoute
114
- @Serializable data class DetailRoute(val id: String)
115
- @Serializable data object SettingsRoute
116
-
117
- @Composable
118
- fun AppNavHost(navController: NavHostController = rememberNavController()) {
119
- NavHost(navController, startDestination = HomeRoute) {
120
- composable<HomeRoute> {
121
- HomeScreen(onNavigateToDetail = { id -> navController.navigate(DetailRoute(id)) })
122
- }
123
- composable<DetailRoute> { backStackEntry ->
124
- val route = backStackEntry.toRoute<DetailRoute>()
125
- DetailScreen(id = route.id)
126
- }
127
- composable<SettingsRoute> { SettingsScreen() }
128
- }
129
- }
130
- ```
131
-
132
- ### Dialog and Bottom Sheet Navigation
133
-
134
- Use `dialog()` and overlay patterns instead of imperative show/hide:
135
-
136
- ```kotlin
137
- NavHost(navController, startDestination = HomeRoute) {
138
- composable<HomeRoute> { /* ... */ }
139
- dialog<ConfirmDeleteRoute> { backStackEntry ->
140
- val route = backStackEntry.toRoute<ConfirmDeleteRoute>()
141
- ConfirmDeleteDialog(
142
- itemId = route.itemId,
143
- onConfirm = { navController.popBackStack() },
144
- onDismiss = { navController.popBackStack() }
145
- )
146
- }
147
- }
148
- ```
149
-
150
- ## Composable Design
151
-
152
- ### Slot-Based APIs
153
-
154
- Design composables with slot parameters for flexibility:
155
-
156
- ```kotlin
157
- @Composable
158
- fun AppCard(
159
- modifier: Modifier = Modifier,
160
- header: @Composable () -> Unit = {},
161
- content: @Composable ColumnScope.() -> Unit,
162
- actions: @Composable RowScope.() -> Unit = {}
163
- ) {
164
- Card(modifier = modifier) {
165
- Column {
166
- header()
167
- Column(content = content)
168
- Row(horizontalArrangement = Arrangement.End, content = actions)
169
- }
170
- }
171
- }
172
- ```
173
-
174
- ### Modifier Ordering
175
-
176
- Modifier order matters — apply in this sequence:
177
-
178
- ```kotlin
179
- Text(
180
- text = "Hello",
181
- modifier = Modifier
182
- .padding(16.dp) // 1. Layout (padding, size)
183
- .clip(RoundedCornerShape(8.dp)) // 2. Shape
184
- .background(Color.White) // 3. Drawing (background, border)
185
- .clickable { } // 4. Interaction
186
- )
187
- ```
188
-
189
- ## KMP Platform-Specific UI
190
-
191
- ### expect/actual for Platform Composables
192
-
193
- ```kotlin
194
- // commonMain
195
- @Composable
196
- expect fun PlatformStatusBar(darkIcons: Boolean)
197
-
198
- // androidMain
199
- @Composable
200
- actual fun PlatformStatusBar(darkIcons: Boolean) {
201
- val systemUiController = rememberSystemUiController()
202
- SideEffect { systemUiController.setStatusBarColor(Color.Transparent, darkIcons) }
203
- }
204
-
205
- // iosMain
206
- @Composable
207
- actual fun PlatformStatusBar(darkIcons: Boolean) {
208
- // iOS handles this via UIKit interop or Info.plist
209
- }
210
- ```
211
-
212
- ## Performance
213
-
214
- ### Stable Types for Skippable Recomposition
215
-
216
- Mark classes as `@Stable` or `@Immutable` when all properties are stable:
217
-
218
- ```kotlin
219
- @Immutable
220
- data class ItemUiModel(
221
- val id: String,
222
- val title: String,
223
- val description: String,
224
- val progress: Float
225
- )
226
- ```
227
-
228
- ### Use `key()` and Lazy Lists Correctly
229
-
230
- ```kotlin
231
- LazyColumn {
232
- items(
233
- items = items,
234
- key = { it.id } // Stable keys enable item reuse and animations
235
- ) { item ->
236
- ItemRow(item = item)
237
- }
238
- }
239
- ```
240
-
241
- ### Defer Reads with `derivedStateOf`
242
-
243
- ```kotlin
244
- val listState = rememberLazyListState()
245
- val showScrollToTop by remember {
246
- derivedStateOf { listState.firstVisibleItemIndex > 5 }
247
- }
248
- ```
249
-
250
- ### Avoid Allocations in Recomposition
251
-
252
- ```kotlin
253
- // BAD — new lambda and list every recomposition
254
- items.filter { it.isActive }.forEach { ActiveItem(it, onClick = { handle(it) }) }
255
-
256
- // GOOD — key each item so callbacks stay attached to the right row
257
- val activeItems = remember(items) { items.filter { it.isActive } }
258
- activeItems.forEach { item ->
259
- key(item.id) {
260
- ActiveItem(item, onClick = { handle(item) })
261
- }
262
- }
263
- ```
264
-
265
- ## Theming
266
-
267
- ### Material 3 Dynamic Theming
268
-
269
- ```kotlin
270
- @Composable
271
- fun AppTheme(
272
- darkTheme: Boolean = isSystemInDarkTheme(),
273
- dynamicColor: Boolean = true,
274
- content: @Composable () -> Unit
275
- ) {
276
- val colorScheme = when {
277
- dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
278
- if (darkTheme) dynamicDarkColorScheme(LocalContext.current)
279
- else dynamicLightColorScheme(LocalContext.current)
280
- }
281
- darkTheme -> darkColorScheme()
282
- else -> lightColorScheme()
283
- }
284
-
285
- MaterialTheme(colorScheme = colorScheme, content = content)
286
- }
287
- ```
288
-
289
- ## Anti-Patterns to Avoid
290
-
291
- - Using `mutableStateOf` in ViewModels when `MutableStateFlow` with `collectAsStateWithLifecycle` is safer for lifecycle
292
- - Passing `NavController` deep into composables — pass lambda callbacks instead
293
- - Heavy computation inside `@Composable` functions — move to ViewModel or `remember {}`
294
- - Using `LaunchedEffect(Unit)` as a substitute for ViewModel init — it re-runs on configuration change in some setups
295
- - Creating new object instances in composable parameters — causes unnecessary recomposition
296
-
297
- ## References
298
-
299
- See skill: `android-clean-architecture` for module structure and layering.
300
- See skill: `kotlin-coroutines-flows` for coroutine and Flow patterns.