@wazir-dev/cli 1.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 (629) hide show
  1. package/AGENTS.md +111 -0
  2. package/CHANGELOG.md +14 -0
  3. package/CONTRIBUTING.md +101 -0
  4. package/LICENSE +21 -0
  5. package/README.md +314 -0
  6. package/assets/composition-engine.mmd +34 -0
  7. package/assets/demo-script.sh +17 -0
  8. package/assets/logo-dark.svg +14 -0
  9. package/assets/logo.svg +14 -0
  10. package/assets/pipeline.mmd +39 -0
  11. package/assets/record-demo.sh +51 -0
  12. package/docs/README.md +51 -0
  13. package/docs/adapters/context-mode.md +60 -0
  14. package/docs/concepts/architecture.md +87 -0
  15. package/docs/concepts/artifact-model.md +60 -0
  16. package/docs/concepts/composition-engine.md +36 -0
  17. package/docs/concepts/indexing-and-recall.md +160 -0
  18. package/docs/concepts/observability.md +41 -0
  19. package/docs/concepts/roles-and-workflows.md +59 -0
  20. package/docs/concepts/terminology-policy.md +27 -0
  21. package/docs/getting-started/01-installation.md +78 -0
  22. package/docs/getting-started/02-first-run.md +102 -0
  23. package/docs/getting-started/03-adding-to-project.md +15 -0
  24. package/docs/getting-started/04-host-setup.md +15 -0
  25. package/docs/guides/ci-integration.md +15 -0
  26. package/docs/guides/creating-skills.md +15 -0
  27. package/docs/guides/expertise-module-authoring.md +15 -0
  28. package/docs/guides/hook-development.md +15 -0
  29. package/docs/guides/memory-and-learnings.md +34 -0
  30. package/docs/guides/multi-host-export.md +15 -0
  31. package/docs/guides/troubleshooting.md +101 -0
  32. package/docs/guides/writing-custom-roles.md +15 -0
  33. package/docs/plans/2026-03-15-cli-pipeline-integration-design.md +592 -0
  34. package/docs/plans/2026-03-15-cli-pipeline-integration-plan.md +598 -0
  35. package/docs/plans/2026-03-15-docs-enforcement-plan.md +238 -0
  36. package/docs/readmes/INDEX.md +99 -0
  37. package/docs/readmes/features/expertise/README.md +171 -0
  38. package/docs/readmes/features/exports/README.md +222 -0
  39. package/docs/readmes/features/hooks/README.md +103 -0
  40. package/docs/readmes/features/hooks/loop-cap-guard.md +133 -0
  41. package/docs/readmes/features/hooks/post-tool-capture.md +121 -0
  42. package/docs/readmes/features/hooks/post-tool-lint.md +130 -0
  43. package/docs/readmes/features/hooks/pre-compact-summary.md +122 -0
  44. package/docs/readmes/features/hooks/pre-tool-capture-route.md +100 -0
  45. package/docs/readmes/features/hooks/protected-path-write-guard.md +128 -0
  46. package/docs/readmes/features/hooks/session-start.md +119 -0
  47. package/docs/readmes/features/hooks/stop-handoff-harvest.md +125 -0
  48. package/docs/readmes/features/roles/README.md +157 -0
  49. package/docs/readmes/features/roles/clarifier.md +152 -0
  50. package/docs/readmes/features/roles/content-author.md +190 -0
  51. package/docs/readmes/features/roles/designer.md +193 -0
  52. package/docs/readmes/features/roles/executor.md +184 -0
  53. package/docs/readmes/features/roles/learner.md +210 -0
  54. package/docs/readmes/features/roles/planner.md +182 -0
  55. package/docs/readmes/features/roles/researcher.md +164 -0
  56. package/docs/readmes/features/roles/reviewer.md +184 -0
  57. package/docs/readmes/features/roles/specifier.md +162 -0
  58. package/docs/readmes/features/roles/verifier.md +215 -0
  59. package/docs/readmes/features/schemas/README.md +178 -0
  60. package/docs/readmes/features/skills/README.md +63 -0
  61. package/docs/readmes/features/skills/brainstorming.md +96 -0
  62. package/docs/readmes/features/skills/debugging.md +148 -0
  63. package/docs/readmes/features/skills/design.md +120 -0
  64. package/docs/readmes/features/skills/prepare-next.md +109 -0
  65. package/docs/readmes/features/skills/run-audit.md +159 -0
  66. package/docs/readmes/features/skills/scan-project.md +109 -0
  67. package/docs/readmes/features/skills/self-audit.md +176 -0
  68. package/docs/readmes/features/skills/tdd.md +137 -0
  69. package/docs/readmes/features/skills/using-skills.md +92 -0
  70. package/docs/readmes/features/skills/verification.md +120 -0
  71. package/docs/readmes/features/skills/writing-plans.md +104 -0
  72. package/docs/readmes/features/tooling/README.md +320 -0
  73. package/docs/readmes/features/workflows/README.md +186 -0
  74. package/docs/readmes/features/workflows/author.md +181 -0
  75. package/docs/readmes/features/workflows/clarify.md +154 -0
  76. package/docs/readmes/features/workflows/design-review.md +171 -0
  77. package/docs/readmes/features/workflows/design.md +169 -0
  78. package/docs/readmes/features/workflows/discover.md +162 -0
  79. package/docs/readmes/features/workflows/execute.md +173 -0
  80. package/docs/readmes/features/workflows/learn.md +167 -0
  81. package/docs/readmes/features/workflows/plan-review.md +165 -0
  82. package/docs/readmes/features/workflows/plan.md +170 -0
  83. package/docs/readmes/features/workflows/prepare-next.md +167 -0
  84. package/docs/readmes/features/workflows/review.md +169 -0
  85. package/docs/readmes/features/workflows/run-audit.md +191 -0
  86. package/docs/readmes/features/workflows/spec-challenge.md +159 -0
  87. package/docs/readmes/features/workflows/specify.md +160 -0
  88. package/docs/readmes/features/workflows/verify.md +177 -0
  89. package/docs/readmes/packages/README.md +50 -0
  90. package/docs/readmes/packages/ajv.md +117 -0
  91. package/docs/readmes/packages/context-mode.md +118 -0
  92. package/docs/readmes/packages/gray-matter.md +116 -0
  93. package/docs/readmes/packages/node-test.md +137 -0
  94. package/docs/readmes/packages/yaml.md +112 -0
  95. package/docs/reference/configuration-reference.md +159 -0
  96. package/docs/reference/expertise-index.md +52 -0
  97. package/docs/reference/git-flow.md +43 -0
  98. package/docs/reference/hooks.md +87 -0
  99. package/docs/reference/host-exports.md +50 -0
  100. package/docs/reference/launch-checklist.md +172 -0
  101. package/docs/reference/marketplace-listings.md +76 -0
  102. package/docs/reference/release-process.md +34 -0
  103. package/docs/reference/roles-reference.md +77 -0
  104. package/docs/reference/skills.md +33 -0
  105. package/docs/reference/templates.md +29 -0
  106. package/docs/reference/tooling-cli.md +94 -0
  107. package/docs/truth-claims.yaml +222 -0
  108. package/expertise/PROGRESS.md +63 -0
  109. package/expertise/README.md +18 -0
  110. package/expertise/antipatterns/PROGRESS.md +56 -0
  111. package/expertise/antipatterns/backend/api-design-antipatterns.md +1271 -0
  112. package/expertise/antipatterns/backend/auth-antipatterns.md +1195 -0
  113. package/expertise/antipatterns/backend/caching-antipatterns.md +622 -0
  114. package/expertise/antipatterns/backend/database-antipatterns.md +1038 -0
  115. package/expertise/antipatterns/backend/index.md +24 -0
  116. package/expertise/antipatterns/backend/microservices-antipatterns.md +850 -0
  117. package/expertise/antipatterns/code/architecture-antipatterns.md +919 -0
  118. package/expertise/antipatterns/code/async-antipatterns.md +622 -0
  119. package/expertise/antipatterns/code/code-smells.md +1186 -0
  120. package/expertise/antipatterns/code/dependency-antipatterns.md +1209 -0
  121. package/expertise/antipatterns/code/error-handling-antipatterns.md +1360 -0
  122. package/expertise/antipatterns/code/index.md +27 -0
  123. package/expertise/antipatterns/code/naming-and-abstraction.md +1118 -0
  124. package/expertise/antipatterns/code/state-management-antipatterns.md +1076 -0
  125. package/expertise/antipatterns/code/testing-antipatterns.md +1053 -0
  126. package/expertise/antipatterns/design/accessibility-antipatterns.md +1136 -0
  127. package/expertise/antipatterns/design/dark-patterns.md +1121 -0
  128. package/expertise/antipatterns/design/index.md +22 -0
  129. package/expertise/antipatterns/design/ui-antipatterns.md +1202 -0
  130. package/expertise/antipatterns/design/ux-antipatterns.md +680 -0
  131. package/expertise/antipatterns/frontend/css-layout-antipatterns.md +691 -0
  132. package/expertise/antipatterns/frontend/flutter-antipatterns.md +1827 -0
  133. package/expertise/antipatterns/frontend/index.md +23 -0
  134. package/expertise/antipatterns/frontend/mobile-antipatterns.md +573 -0
  135. package/expertise/antipatterns/frontend/react-antipatterns.md +1128 -0
  136. package/expertise/antipatterns/frontend/spa-antipatterns.md +1235 -0
  137. package/expertise/antipatterns/index.md +31 -0
  138. package/expertise/antipatterns/performance/index.md +20 -0
  139. package/expertise/antipatterns/performance/performance-antipatterns.md +1013 -0
  140. package/expertise/antipatterns/performance/premature-optimization.md +623 -0
  141. package/expertise/antipatterns/performance/scaling-antipatterns.md +785 -0
  142. package/expertise/antipatterns/process/ai-coding-antipatterns.md +853 -0
  143. package/expertise/antipatterns/process/code-review-antipatterns.md +656 -0
  144. package/expertise/antipatterns/process/deployment-antipatterns.md +920 -0
  145. package/expertise/antipatterns/process/index.md +23 -0
  146. package/expertise/antipatterns/process/technical-debt-antipatterns.md +647 -0
  147. package/expertise/antipatterns/security/index.md +20 -0
  148. package/expertise/antipatterns/security/secrets-antipatterns.md +849 -0
  149. package/expertise/antipatterns/security/security-theater.md +843 -0
  150. package/expertise/antipatterns/security/vulnerability-patterns.md +801 -0
  151. package/expertise/architecture/PROGRESS.md +70 -0
  152. package/expertise/architecture/data/caching-architecture.md +671 -0
  153. package/expertise/architecture/data/data-consistency.md +574 -0
  154. package/expertise/architecture/data/data-modeling.md +536 -0
  155. package/expertise/architecture/data/event-streams-and-queues.md +634 -0
  156. package/expertise/architecture/data/index.md +25 -0
  157. package/expertise/architecture/data/search-architecture.md +663 -0
  158. package/expertise/architecture/data/sql-vs-nosql.md +708 -0
  159. package/expertise/architecture/decisions/architecture-decision-records.md +640 -0
  160. package/expertise/architecture/decisions/build-vs-buy.md +616 -0
  161. package/expertise/architecture/decisions/index.md +23 -0
  162. package/expertise/architecture/decisions/monolith-to-microservices.md +790 -0
  163. package/expertise/architecture/decisions/technology-selection.md +616 -0
  164. package/expertise/architecture/distributed/cap-theorem-and-tradeoffs.md +800 -0
  165. package/expertise/architecture/distributed/circuit-breaker-bulkhead.md +741 -0
  166. package/expertise/architecture/distributed/consensus-and-coordination.md +796 -0
  167. package/expertise/architecture/distributed/distributed-systems-fundamentals.md +564 -0
  168. package/expertise/architecture/distributed/idempotency-and-retry.md +796 -0
  169. package/expertise/architecture/distributed/index.md +25 -0
  170. package/expertise/architecture/distributed/saga-pattern.md +797 -0
  171. package/expertise/architecture/foundations/architectural-thinking.md +460 -0
  172. package/expertise/architecture/foundations/coupling-and-cohesion.md +770 -0
  173. package/expertise/architecture/foundations/design-principles-solid.md +649 -0
  174. package/expertise/architecture/foundations/domain-driven-design.md +719 -0
  175. package/expertise/architecture/foundations/index.md +25 -0
  176. package/expertise/architecture/foundations/separation-of-concerns.md +472 -0
  177. package/expertise/architecture/foundations/twelve-factor-app.md +797 -0
  178. package/expertise/architecture/index.md +34 -0
  179. package/expertise/architecture/integration/api-design-graphql.md +638 -0
  180. package/expertise/architecture/integration/api-design-grpc.md +804 -0
  181. package/expertise/architecture/integration/api-design-rest.md +892 -0
  182. package/expertise/architecture/integration/index.md +25 -0
  183. package/expertise/architecture/integration/third-party-integration.md +795 -0
  184. package/expertise/architecture/integration/webhooks-and-callbacks.md +1152 -0
  185. package/expertise/architecture/integration/websockets-realtime.md +791 -0
  186. package/expertise/architecture/mobile-architecture/index.md +22 -0
  187. package/expertise/architecture/mobile-architecture/mobile-app-architecture.md +780 -0
  188. package/expertise/architecture/mobile-architecture/mobile-backend-for-frontend.md +670 -0
  189. package/expertise/architecture/mobile-architecture/offline-first.md +719 -0
  190. package/expertise/architecture/mobile-architecture/push-and-sync.md +782 -0
  191. package/expertise/architecture/patterns/cqrs-event-sourcing.md +717 -0
  192. package/expertise/architecture/patterns/event-driven.md +797 -0
  193. package/expertise/architecture/patterns/hexagonal-clean-architecture.md +870 -0
  194. package/expertise/architecture/patterns/index.md +27 -0
  195. package/expertise/architecture/patterns/layered-architecture.md +736 -0
  196. package/expertise/architecture/patterns/microservices.md +753 -0
  197. package/expertise/architecture/patterns/modular-monolith.md +692 -0
  198. package/expertise/architecture/patterns/monolith.md +626 -0
  199. package/expertise/architecture/patterns/plugin-architecture.md +735 -0
  200. package/expertise/architecture/patterns/serverless.md +780 -0
  201. package/expertise/architecture/scaling/database-scaling.md +615 -0
  202. package/expertise/architecture/scaling/feature-flags-and-rollouts.md +757 -0
  203. package/expertise/architecture/scaling/horizontal-vs-vertical.md +606 -0
  204. package/expertise/architecture/scaling/index.md +24 -0
  205. package/expertise/architecture/scaling/multi-tenancy.md +800 -0
  206. package/expertise/architecture/scaling/stateless-design.md +787 -0
  207. package/expertise/backend/embedded-firmware.md +625 -0
  208. package/expertise/backend/go.md +853 -0
  209. package/expertise/backend/index.md +24 -0
  210. package/expertise/backend/java-spring.md +448 -0
  211. package/expertise/backend/node-typescript.md +625 -0
  212. package/expertise/backend/python-fastapi.md +724 -0
  213. package/expertise/backend/rust.md +458 -0
  214. package/expertise/backend/solidity.md +711 -0
  215. package/expertise/composition-map.yaml +443 -0
  216. package/expertise/content/foundations/content-modeling.md +395 -0
  217. package/expertise/content/foundations/editorial-standards.md +449 -0
  218. package/expertise/content/foundations/index.md +24 -0
  219. package/expertise/content/foundations/microcopy.md +455 -0
  220. package/expertise/content/foundations/terminology-governance.md +509 -0
  221. package/expertise/content/index.md +34 -0
  222. package/expertise/content/patterns/accessibility-copy.md +518 -0
  223. package/expertise/content/patterns/index.md +24 -0
  224. package/expertise/content/patterns/notification-content.md +433 -0
  225. package/expertise/content/patterns/sample-content.md +486 -0
  226. package/expertise/content/patterns/state-copy.md +439 -0
  227. package/expertise/design/PROGRESS.md +58 -0
  228. package/expertise/design/disciplines/dark-mode-theming.md +577 -0
  229. package/expertise/design/disciplines/design-systems.md +595 -0
  230. package/expertise/design/disciplines/index.md +25 -0
  231. package/expertise/design/disciplines/information-architecture.md +800 -0
  232. package/expertise/design/disciplines/interaction-design.md +788 -0
  233. package/expertise/design/disciplines/responsive-design.md +552 -0
  234. package/expertise/design/disciplines/usability-testing.md +516 -0
  235. package/expertise/design/disciplines/user-research.md +792 -0
  236. package/expertise/design/foundations/accessibility-design.md +796 -0
  237. package/expertise/design/foundations/color-theory.md +797 -0
  238. package/expertise/design/foundations/iconography.md +795 -0
  239. package/expertise/design/foundations/index.md +26 -0
  240. package/expertise/design/foundations/motion-and-animation.md +653 -0
  241. package/expertise/design/foundations/rtl-design.md +585 -0
  242. package/expertise/design/foundations/spacing-and-layout.md +607 -0
  243. package/expertise/design/foundations/typography.md +800 -0
  244. package/expertise/design/foundations/visual-hierarchy.md +761 -0
  245. package/expertise/design/index.md +32 -0
  246. package/expertise/design/patterns/authentication-flows.md +474 -0
  247. package/expertise/design/patterns/content-consumption.md +789 -0
  248. package/expertise/design/patterns/data-display.md +618 -0
  249. package/expertise/design/patterns/e-commerce.md +1494 -0
  250. package/expertise/design/patterns/feedback-and-states.md +642 -0
  251. package/expertise/design/patterns/forms-and-input.md +819 -0
  252. package/expertise/design/patterns/gamification.md +801 -0
  253. package/expertise/design/patterns/index.md +31 -0
  254. package/expertise/design/patterns/microinteractions.md +449 -0
  255. package/expertise/design/patterns/navigation.md +800 -0
  256. package/expertise/design/patterns/notifications.md +705 -0
  257. package/expertise/design/patterns/onboarding.md +700 -0
  258. package/expertise/design/patterns/search-and-filter.md +601 -0
  259. package/expertise/design/patterns/settings-and-preferences.md +768 -0
  260. package/expertise/design/patterns/social-and-community.md +748 -0
  261. package/expertise/design/platforms/desktop-native.md +612 -0
  262. package/expertise/design/platforms/index.md +25 -0
  263. package/expertise/design/platforms/mobile-android.md +825 -0
  264. package/expertise/design/platforms/mobile-cross-platform.md +983 -0
  265. package/expertise/design/platforms/mobile-ios.md +699 -0
  266. package/expertise/design/platforms/tablet.md +794 -0
  267. package/expertise/design/platforms/web-dashboard.md +790 -0
  268. package/expertise/design/platforms/web-responsive.md +550 -0
  269. package/expertise/design/psychology/behavioral-nudges.md +449 -0
  270. package/expertise/design/psychology/cognitive-load.md +1191 -0
  271. package/expertise/design/psychology/error-psychology.md +778 -0
  272. package/expertise/design/psychology/index.md +22 -0
  273. package/expertise/design/psychology/persuasive-design.md +736 -0
  274. package/expertise/design/psychology/user-mental-models.md +623 -0
  275. package/expertise/design/tooling/open-pencil.md +266 -0
  276. package/expertise/frontend/angular.md +1073 -0
  277. package/expertise/frontend/desktop-electron.md +546 -0
  278. package/expertise/frontend/flutter.md +782 -0
  279. package/expertise/frontend/index.md +27 -0
  280. package/expertise/frontend/native-android.md +409 -0
  281. package/expertise/frontend/native-ios.md +490 -0
  282. package/expertise/frontend/react-native.md +1160 -0
  283. package/expertise/frontend/react.md +808 -0
  284. package/expertise/frontend/vue.md +1089 -0
  285. package/expertise/humanize/domain-rules-code.md +79 -0
  286. package/expertise/humanize/domain-rules-content.md +67 -0
  287. package/expertise/humanize/domain-rules-technical-docs.md +56 -0
  288. package/expertise/humanize/index.md +35 -0
  289. package/expertise/humanize/self-audit-checklist.md +87 -0
  290. package/expertise/humanize/sentence-patterns.md +218 -0
  291. package/expertise/humanize/vocabulary-blacklist.md +105 -0
  292. package/expertise/i18n/PROGRESS.md +65 -0
  293. package/expertise/i18n/advanced/accessibility-and-i18n.md +28 -0
  294. package/expertise/i18n/advanced/bidirectional-text-algorithm.md +38 -0
  295. package/expertise/i18n/advanced/complex-scripts.md +30 -0
  296. package/expertise/i18n/advanced/performance-and-i18n.md +27 -0
  297. package/expertise/i18n/advanced/testing-i18n.md +28 -0
  298. package/expertise/i18n/content/content-adaptation.md +23 -0
  299. package/expertise/i18n/content/locale-specific-formatting.md +23 -0
  300. package/expertise/i18n/content/machine-translation-integration.md +28 -0
  301. package/expertise/i18n/content/translation-management.md +29 -0
  302. package/expertise/i18n/foundations/date-time-calendars.md +67 -0
  303. package/expertise/i18n/foundations/i18n-architecture.md +272 -0
  304. package/expertise/i18n/foundations/locale-and-language-tags.md +79 -0
  305. package/expertise/i18n/foundations/numbers-currency-units.md +61 -0
  306. package/expertise/i18n/foundations/pluralization-and-gender.md +109 -0
  307. package/expertise/i18n/foundations/string-externalization.md +236 -0
  308. package/expertise/i18n/foundations/text-direction-bidi.md +241 -0
  309. package/expertise/i18n/foundations/unicode-and-encoding.md +86 -0
  310. package/expertise/i18n/index.md +38 -0
  311. package/expertise/i18n/platform/backend-i18n.md +31 -0
  312. package/expertise/i18n/platform/flutter-i18n.md +148 -0
  313. package/expertise/i18n/platform/native-android-i18n.md +36 -0
  314. package/expertise/i18n/platform/native-ios-i18n.md +36 -0
  315. package/expertise/i18n/platform/react-i18n.md +103 -0
  316. package/expertise/i18n/platform/web-css-i18n.md +81 -0
  317. package/expertise/i18n/rtl/arabic-specific.md +175 -0
  318. package/expertise/i18n/rtl/hebrew-specific.md +149 -0
  319. package/expertise/i18n/rtl/rtl-animations-and-transitions.md +111 -0
  320. package/expertise/i18n/rtl/rtl-forms-and-input.md +161 -0
  321. package/expertise/i18n/rtl/rtl-fundamentals.md +211 -0
  322. package/expertise/i18n/rtl/rtl-icons-and-images.md +181 -0
  323. package/expertise/i18n/rtl/rtl-layout-mirroring.md +252 -0
  324. package/expertise/i18n/rtl/rtl-navigation-and-gestures.md +107 -0
  325. package/expertise/i18n/rtl/rtl-testing-and-qa.md +147 -0
  326. package/expertise/i18n/rtl/rtl-typography.md +160 -0
  327. package/expertise/index.md +113 -0
  328. package/expertise/index.yaml +216 -0
  329. package/expertise/infrastructure/cloud-aws.md +597 -0
  330. package/expertise/infrastructure/cloud-gcp.md +599 -0
  331. package/expertise/infrastructure/cybersecurity.md +816 -0
  332. package/expertise/infrastructure/database-mongodb.md +447 -0
  333. package/expertise/infrastructure/database-postgres.md +400 -0
  334. package/expertise/infrastructure/devops-cicd.md +787 -0
  335. package/expertise/infrastructure/index.md +27 -0
  336. package/expertise/performance/PROGRESS.md +50 -0
  337. package/expertise/performance/backend/api-latency.md +1204 -0
  338. package/expertise/performance/backend/background-jobs.md +506 -0
  339. package/expertise/performance/backend/connection-pooling.md +1209 -0
  340. package/expertise/performance/backend/database-query-optimization.md +515 -0
  341. package/expertise/performance/backend/index.md +23 -0
  342. package/expertise/performance/backend/rate-limiting-and-throttling.md +971 -0
  343. package/expertise/performance/foundations/algorithmic-complexity.md +954 -0
  344. package/expertise/performance/foundations/caching-strategies.md +489 -0
  345. package/expertise/performance/foundations/concurrency-and-parallelism.md +847 -0
  346. package/expertise/performance/foundations/index.md +24 -0
  347. package/expertise/performance/foundations/measuring-and-profiling.md +440 -0
  348. package/expertise/performance/foundations/memory-management.md +964 -0
  349. package/expertise/performance/foundations/performance-budgets.md +1314 -0
  350. package/expertise/performance/index.md +31 -0
  351. package/expertise/performance/infrastructure/auto-scaling.md +1059 -0
  352. package/expertise/performance/infrastructure/cdn-and-edge.md +1081 -0
  353. package/expertise/performance/infrastructure/index.md +22 -0
  354. package/expertise/performance/infrastructure/load-balancing.md +1081 -0
  355. package/expertise/performance/infrastructure/observability.md +1079 -0
  356. package/expertise/performance/mobile/index.md +23 -0
  357. package/expertise/performance/mobile/mobile-animations.md +544 -0
  358. package/expertise/performance/mobile/mobile-memory-battery.md +416 -0
  359. package/expertise/performance/mobile/mobile-network.md +452 -0
  360. package/expertise/performance/mobile/mobile-rendering.md +599 -0
  361. package/expertise/performance/mobile/mobile-startup-time.md +505 -0
  362. package/expertise/performance/platform-specific/flutter-performance.md +647 -0
  363. package/expertise/performance/platform-specific/index.md +22 -0
  364. package/expertise/performance/platform-specific/node-performance.md +1307 -0
  365. package/expertise/performance/platform-specific/postgres-performance.md +1366 -0
  366. package/expertise/performance/platform-specific/react-performance.md +1403 -0
  367. package/expertise/performance/web/bundle-optimization.md +1239 -0
  368. package/expertise/performance/web/image-and-media.md +636 -0
  369. package/expertise/performance/web/index.md +24 -0
  370. package/expertise/performance/web/network-optimization.md +1133 -0
  371. package/expertise/performance/web/rendering-performance.md +1098 -0
  372. package/expertise/performance/web/ssr-and-hydration.md +918 -0
  373. package/expertise/performance/web/web-vitals.md +1374 -0
  374. package/expertise/quality/accessibility.md +985 -0
  375. package/expertise/quality/evidence-based-verification.md +499 -0
  376. package/expertise/quality/index.md +24 -0
  377. package/expertise/quality/ml-model-audit.md +614 -0
  378. package/expertise/quality/performance.md +600 -0
  379. package/expertise/quality/testing-api.md +891 -0
  380. package/expertise/quality/testing-mobile.md +496 -0
  381. package/expertise/quality/testing-web.md +849 -0
  382. package/expertise/security/PROGRESS.md +54 -0
  383. package/expertise/security/agentic-identity.md +540 -0
  384. package/expertise/security/compliance-frameworks.md +601 -0
  385. package/expertise/security/data/data-encryption.md +364 -0
  386. package/expertise/security/data/data-privacy-gdpr.md +692 -0
  387. package/expertise/security/data/database-security.md +1171 -0
  388. package/expertise/security/data/index.md +22 -0
  389. package/expertise/security/data/pii-handling.md +531 -0
  390. package/expertise/security/foundations/authentication.md +1041 -0
  391. package/expertise/security/foundations/authorization.md +603 -0
  392. package/expertise/security/foundations/cryptography.md +1001 -0
  393. package/expertise/security/foundations/index.md +25 -0
  394. package/expertise/security/foundations/owasp-top-10.md +1354 -0
  395. package/expertise/security/foundations/secrets-management.md +1217 -0
  396. package/expertise/security/foundations/secure-sdlc.md +700 -0
  397. package/expertise/security/foundations/supply-chain-security.md +698 -0
  398. package/expertise/security/index.md +31 -0
  399. package/expertise/security/infrastructure/cloud-security-aws.md +1296 -0
  400. package/expertise/security/infrastructure/cloud-security-gcp.md +1376 -0
  401. package/expertise/security/infrastructure/container-security.md +721 -0
  402. package/expertise/security/infrastructure/incident-response.md +1295 -0
  403. package/expertise/security/infrastructure/index.md +24 -0
  404. package/expertise/security/infrastructure/logging-and-monitoring.md +1618 -0
  405. package/expertise/security/infrastructure/network-security.md +1337 -0
  406. package/expertise/security/mobile/index.md +23 -0
  407. package/expertise/security/mobile/mobile-android-security.md +1218 -0
  408. package/expertise/security/mobile/mobile-binary-protection.md +1229 -0
  409. package/expertise/security/mobile/mobile-data-storage.md +1265 -0
  410. package/expertise/security/mobile/mobile-ios-security.md +1401 -0
  411. package/expertise/security/mobile/mobile-network-security.md +1520 -0
  412. package/expertise/security/smart-contract-security.md +594 -0
  413. package/expertise/security/testing/index.md +22 -0
  414. package/expertise/security/testing/penetration-testing.md +1258 -0
  415. package/expertise/security/testing/security-code-review.md +1765 -0
  416. package/expertise/security/testing/threat-modeling.md +1074 -0
  417. package/expertise/security/testing/vulnerability-scanning.md +1062 -0
  418. package/expertise/security/web/api-security.md +586 -0
  419. package/expertise/security/web/cors-and-headers.md +433 -0
  420. package/expertise/security/web/csrf.md +562 -0
  421. package/expertise/security/web/file-upload.md +1477 -0
  422. package/expertise/security/web/index.md +25 -0
  423. package/expertise/security/web/injection.md +1375 -0
  424. package/expertise/security/web/session-management.md +1101 -0
  425. package/expertise/security/web/xss.md +1158 -0
  426. package/exports/README.md +17 -0
  427. package/exports/hosts/claude/.claude/agents/clarifier.md +42 -0
  428. package/exports/hosts/claude/.claude/agents/content-author.md +63 -0
  429. package/exports/hosts/claude/.claude/agents/designer.md +55 -0
  430. package/exports/hosts/claude/.claude/agents/executor.md +55 -0
  431. package/exports/hosts/claude/.claude/agents/learner.md +51 -0
  432. package/exports/hosts/claude/.claude/agents/planner.md +53 -0
  433. package/exports/hosts/claude/.claude/agents/researcher.md +43 -0
  434. package/exports/hosts/claude/.claude/agents/reviewer.md +54 -0
  435. package/exports/hosts/claude/.claude/agents/specifier.md +47 -0
  436. package/exports/hosts/claude/.claude/agents/verifier.md +71 -0
  437. package/exports/hosts/claude/.claude/commands/author.md +42 -0
  438. package/exports/hosts/claude/.claude/commands/clarify.md +38 -0
  439. package/exports/hosts/claude/.claude/commands/design-review.md +46 -0
  440. package/exports/hosts/claude/.claude/commands/design.md +44 -0
  441. package/exports/hosts/claude/.claude/commands/discover.md +37 -0
  442. package/exports/hosts/claude/.claude/commands/execute.md +48 -0
  443. package/exports/hosts/claude/.claude/commands/learn.md +38 -0
  444. package/exports/hosts/claude/.claude/commands/plan-review.md +42 -0
  445. package/exports/hosts/claude/.claude/commands/plan.md +39 -0
  446. package/exports/hosts/claude/.claude/commands/prepare-next.md +37 -0
  447. package/exports/hosts/claude/.claude/commands/review.md +40 -0
  448. package/exports/hosts/claude/.claude/commands/run-audit.md +41 -0
  449. package/exports/hosts/claude/.claude/commands/spec-challenge.md +41 -0
  450. package/exports/hosts/claude/.claude/commands/specify.md +38 -0
  451. package/exports/hosts/claude/.claude/commands/verify.md +37 -0
  452. package/exports/hosts/claude/.claude/settings.json +34 -0
  453. package/exports/hosts/claude/CLAUDE.md +19 -0
  454. package/exports/hosts/claude/export.manifest.json +38 -0
  455. package/exports/hosts/claude/host-package.json +67 -0
  456. package/exports/hosts/codex/AGENTS.md +19 -0
  457. package/exports/hosts/codex/export.manifest.json +38 -0
  458. package/exports/hosts/codex/host-package.json +41 -0
  459. package/exports/hosts/cursor/.cursor/hooks.json +16 -0
  460. package/exports/hosts/cursor/.cursor/rules/wazir-core.mdc +19 -0
  461. package/exports/hosts/cursor/export.manifest.json +38 -0
  462. package/exports/hosts/cursor/host-package.json +42 -0
  463. package/exports/hosts/gemini/GEMINI.md +19 -0
  464. package/exports/hosts/gemini/export.manifest.json +38 -0
  465. package/exports/hosts/gemini/host-package.json +41 -0
  466. package/hooks/README.md +18 -0
  467. package/hooks/definitions/loop_cap_guard.yaml +21 -0
  468. package/hooks/definitions/post_tool_capture.yaml +24 -0
  469. package/hooks/definitions/pre_compact_summary.yaml +19 -0
  470. package/hooks/definitions/pre_tool_capture_route.yaml +19 -0
  471. package/hooks/definitions/protected_path_write_guard.yaml +19 -0
  472. package/hooks/definitions/session_start.yaml +19 -0
  473. package/hooks/definitions/stop_handoff_harvest.yaml +20 -0
  474. package/hooks/loop-cap-guard +17 -0
  475. package/hooks/post-tool-lint +36 -0
  476. package/hooks/protected-path-write-guard +17 -0
  477. package/hooks/session-start +41 -0
  478. package/llms-full.txt +2355 -0
  479. package/llms.txt +43 -0
  480. package/package.json +79 -0
  481. package/roles/README.md +20 -0
  482. package/roles/clarifier.md +42 -0
  483. package/roles/content-author.md +63 -0
  484. package/roles/designer.md +55 -0
  485. package/roles/executor.md +55 -0
  486. package/roles/learner.md +51 -0
  487. package/roles/planner.md +53 -0
  488. package/roles/researcher.md +43 -0
  489. package/roles/reviewer.md +54 -0
  490. package/roles/specifier.md +47 -0
  491. package/roles/verifier.md +71 -0
  492. package/schemas/README.md +24 -0
  493. package/schemas/accepted-learning.schema.json +20 -0
  494. package/schemas/author-artifact.schema.json +156 -0
  495. package/schemas/clarification.schema.json +19 -0
  496. package/schemas/design-artifact.schema.json +80 -0
  497. package/schemas/docs-claim.schema.json +18 -0
  498. package/schemas/export-manifest.schema.json +20 -0
  499. package/schemas/hook.schema.json +67 -0
  500. package/schemas/host-export-package.schema.json +18 -0
  501. package/schemas/implementation-plan.schema.json +19 -0
  502. package/schemas/proposed-learning.schema.json +19 -0
  503. package/schemas/research.schema.json +18 -0
  504. package/schemas/review.schema.json +29 -0
  505. package/schemas/run-manifest.schema.json +18 -0
  506. package/schemas/spec-challenge.schema.json +18 -0
  507. package/schemas/spec.schema.json +20 -0
  508. package/schemas/usage.schema.json +102 -0
  509. package/schemas/verification-proof.schema.json +29 -0
  510. package/schemas/wazir-manifest.schema.json +173 -0
  511. package/skills/README.md +40 -0
  512. package/skills/brainstorming/SKILL.md +77 -0
  513. package/skills/debugging/SKILL.md +50 -0
  514. package/skills/design/SKILL.md +61 -0
  515. package/skills/dispatching-parallel-agents/SKILL.md +128 -0
  516. package/skills/executing-plans/SKILL.md +70 -0
  517. package/skills/finishing-a-development-branch/SKILL.md +169 -0
  518. package/skills/humanize/SKILL.md +123 -0
  519. package/skills/init-pipeline/SKILL.md +124 -0
  520. package/skills/prepare-next/SKILL.md +20 -0
  521. package/skills/receiving-code-review/SKILL.md +123 -0
  522. package/skills/requesting-code-review/SKILL.md +105 -0
  523. package/skills/requesting-code-review/code-reviewer.md +108 -0
  524. package/skills/run-audit/SKILL.md +197 -0
  525. package/skills/scan-project/SKILL.md +41 -0
  526. package/skills/self-audit/SKILL.md +153 -0
  527. package/skills/subagent-driven-development/SKILL.md +154 -0
  528. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  529. package/skills/subagent-driven-development/implementer-prompt.md +102 -0
  530. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  531. package/skills/tdd/SKILL.md +23 -0
  532. package/skills/using-git-worktrees/SKILL.md +163 -0
  533. package/skills/using-skills/SKILL.md +95 -0
  534. package/skills/verification/SKILL.md +22 -0
  535. package/skills/wazir/SKILL.md +463 -0
  536. package/skills/writing-plans/SKILL.md +30 -0
  537. package/skills/writing-skills/SKILL.md +157 -0
  538. package/skills/writing-skills/anthropic-best-practices.md +122 -0
  539. package/skills/writing-skills/persuasion-principles.md +50 -0
  540. package/templates/README.md +20 -0
  541. package/templates/artifacts/README.md +10 -0
  542. package/templates/artifacts/accepted-learning.md +19 -0
  543. package/templates/artifacts/accepted-learning.template.json +12 -0
  544. package/templates/artifacts/author.md +74 -0
  545. package/templates/artifacts/author.template.json +19 -0
  546. package/templates/artifacts/clarification.md +21 -0
  547. package/templates/artifacts/clarification.template.json +12 -0
  548. package/templates/artifacts/execute-notes.md +19 -0
  549. package/templates/artifacts/implementation-plan.md +21 -0
  550. package/templates/artifacts/implementation-plan.template.json +11 -0
  551. package/templates/artifacts/learning-proposal.md +19 -0
  552. package/templates/artifacts/next-run-handoff.md +21 -0
  553. package/templates/artifacts/plan-review.md +19 -0
  554. package/templates/artifacts/proposed-learning.template.json +12 -0
  555. package/templates/artifacts/research.md +21 -0
  556. package/templates/artifacts/research.template.json +12 -0
  557. package/templates/artifacts/review-findings.md +19 -0
  558. package/templates/artifacts/review.template.json +11 -0
  559. package/templates/artifacts/run-manifest.template.json +8 -0
  560. package/templates/artifacts/spec-challenge.md +19 -0
  561. package/templates/artifacts/spec-challenge.template.json +11 -0
  562. package/templates/artifacts/spec.md +21 -0
  563. package/templates/artifacts/spec.template.json +12 -0
  564. package/templates/artifacts/verification-proof.md +19 -0
  565. package/templates/artifacts/verification-proof.template.json +11 -0
  566. package/templates/examples/accepted-learning.example.json +14 -0
  567. package/templates/examples/author.example.json +152 -0
  568. package/templates/examples/clarification.example.json +15 -0
  569. package/templates/examples/docs-claim.example.json +8 -0
  570. package/templates/examples/export-manifest.example.json +7 -0
  571. package/templates/examples/host-export-package.example.json +11 -0
  572. package/templates/examples/implementation-plan.example.json +17 -0
  573. package/templates/examples/proposed-learning.example.json +13 -0
  574. package/templates/examples/research.example.json +15 -0
  575. package/templates/examples/research.example.md +6 -0
  576. package/templates/examples/review.example.json +17 -0
  577. package/templates/examples/run-manifest.example.json +9 -0
  578. package/templates/examples/spec-challenge.example.json +14 -0
  579. package/templates/examples/spec.example.json +21 -0
  580. package/templates/examples/verification-proof.example.json +21 -0
  581. package/templates/examples/wazir-manifest.example.yaml +65 -0
  582. package/templates/task-definition-schema.md +99 -0
  583. package/tooling/README.md +20 -0
  584. package/tooling/src/adapters/context-mode.js +50 -0
  585. package/tooling/src/capture/command.js +376 -0
  586. package/tooling/src/capture/store.js +99 -0
  587. package/tooling/src/capture/usage.js +270 -0
  588. package/tooling/src/checks/branches.js +50 -0
  589. package/tooling/src/checks/brand-truth.js +110 -0
  590. package/tooling/src/checks/changelog.js +231 -0
  591. package/tooling/src/checks/command-registry.js +36 -0
  592. package/tooling/src/checks/commits.js +102 -0
  593. package/tooling/src/checks/docs-drift.js +103 -0
  594. package/tooling/src/checks/docs-truth.js +201 -0
  595. package/tooling/src/checks/runtime-surface.js +156 -0
  596. package/tooling/src/cli.js +116 -0
  597. package/tooling/src/command-options.js +56 -0
  598. package/tooling/src/commands/validate.js +320 -0
  599. package/tooling/src/doctor/command.js +91 -0
  600. package/tooling/src/export/command.js +77 -0
  601. package/tooling/src/export/compiler.js +498 -0
  602. package/tooling/src/guards/loop-cap-guard.js +52 -0
  603. package/tooling/src/guards/protected-path-write-guard.js +67 -0
  604. package/tooling/src/index/command.js +152 -0
  605. package/tooling/src/index/storage.js +1061 -0
  606. package/tooling/src/index/summarizers.js +261 -0
  607. package/tooling/src/loaders.js +18 -0
  608. package/tooling/src/project-root.js +22 -0
  609. package/tooling/src/recall/command.js +225 -0
  610. package/tooling/src/schema-validator.js +30 -0
  611. package/tooling/src/state-root.js +40 -0
  612. package/tooling/src/status/command.js +71 -0
  613. package/wazir.manifest.yaml +135 -0
  614. package/workflows/README.md +19 -0
  615. package/workflows/author.md +42 -0
  616. package/workflows/clarify.md +38 -0
  617. package/workflows/design-review.md +46 -0
  618. package/workflows/design.md +44 -0
  619. package/workflows/discover.md +37 -0
  620. package/workflows/execute.md +48 -0
  621. package/workflows/learn.md +38 -0
  622. package/workflows/plan-review.md +42 -0
  623. package/workflows/plan.md +39 -0
  624. package/workflows/prepare-next.md +37 -0
  625. package/workflows/review.md +40 -0
  626. package/workflows/run-audit.md +41 -0
  627. package/workflows/spec-challenge.md +41 -0
  628. package/workflows/specify.md +38 -0
  629. package/workflows/verify.md +37 -0
@@ -0,0 +1,748 @@
1
+ # Social and Community Patterns — Design Expertise Module
2
+
3
+ > A social and community design specialist architects the interaction systems that connect people: profiles, feeds, messaging, reactions, groups, and moderation. The scope spans real-time and asynchronous communication, identity and privacy, content creation and consumption, community governance, and the ethical responsibilities that accompany platforms designed to capture human attention. This module codifies patterns drawn from the best (and worst) practices across Discord, Slack, Reddit, Instagram, LinkedIn, and Mastodon.
4
+
5
+ ---
6
+
7
+ ## 1. Pattern Anatomy
8
+
9
+ ### 1.1 Profiles
10
+
11
+ The profile is the atomic unit of social identity. Every interaction in a community traces back to a profile.
12
+
13
+ **Core components:**
14
+ - **Avatar / photo** — circular crop (40-64 px in lists, 96-128 px on profile page), with a fallback to initials or a generated identicon.
15
+ - **Display name** — the human-readable label; distinct from the unique handle/username.
16
+ - **Handle / username** — unique, immutable or change-limited identifier (e.g., `@username`). Used for mentions and deep links.
17
+ - **Bio / about** — 160-300 character limit is standard (Twitter: 160, Instagram: 150, LinkedIn: 2600). Keep the input a textarea, not a single-line field.
18
+ - **Status indicator** — online/offline/away/DND (Discord, Slack). Use color plus icon, never color alone (WCAG 1.4.1).
19
+ - **Metadata row** — follower/following counts, join date, location, links. NNG advises against over-emphasizing vanity metrics; show them but do not make them the visual focal point.
20
+ - **Activity feed / content tab** — posts, comments, or contributions authored by the user.
21
+ - **Action buttons** — Follow, Message, Block, Report. Primary action (Follow/Connect) uses a filled button; destructive actions (Block/Report) sit behind a "more" overflow menu.
22
+
23
+ **Profile privacy tiers:**
24
+ | Tier | Visibility | Use case |
25
+ |------|-----------|----------|
26
+ | Public | Anyone can view full profile | Open communities, creator platforms |
27
+ | Semi-private | Bio visible; content requires follow approval | Instagram private accounts |
28
+ | Private | Visible only to approved connections | LinkedIn connection-gated profiles |
29
+ | Anonymous | Pseudonymous handle, no real identity required | Reddit, Mastodon |
30
+
31
+ ### 1.2 Feeds
32
+
33
+ The feed is the central content consumption surface. Its design directly shapes engagement, time-on-platform, and user well-being.
34
+
35
+ **Feed architectures:**
36
+ - **Reverse-chronological** — newest first. Predictable, transparent, user-controlled. Used by Mastodon, early Twitter, and as a toggle in Instagram. NNG recommends offering this as a default or prominent option because users report higher trust when they understand ordering.
37
+ - **Algorithmic / ranked** — scored by engagement signals, relationship strength, content type. Used by Instagram Explore, LinkedIn, TikTok For You. Higher engagement but lower user agency.
38
+ - **Hybrid** — algorithmic with a "Latest" toggle or "Following" tab (Instagram 2023+, X/Twitter).
39
+
40
+ **Feed item anatomy:**
41
+ ```
42
+ ┌─────────────────────────────────────────┐
43
+ │ [Avatar] Display Name · @handle · 2h │ ← Author row
44
+ │ │
45
+ │ Post body text or media content │ ← Content area
46
+ │ [Image / Video / Link Preview / Poll] │
47
+ │ │
48
+ │ 💬 12 🔁 4 ❤️ 89 📤 Share │ ← Action bar
49
+ │─────────────────────────────────────────│
50
+ │ Top comment preview (collapsed) │ ← Engagement hook
51
+ └─────────────────────────────────────────┘
52
+ ```
53
+
54
+ **Feed performance rules:**
55
+ - Initial load: 10-20 items. Lazy-load subsequent batches on scroll or via a "Load more" button.
56
+ - Skeleton screens during load (not spinners) — NNG research shows skeleton screens reduce perceived wait time.
57
+ - Virtualized rendering for lists exceeding 100 items (react-window, RecyclerView, UICollectionView).
58
+ - New content indicator: "X new posts" pill at top; never auto-inject content and shift the user's scroll position.
59
+
60
+ ### 1.3 Comments and Threads
61
+
62
+ **Threading models:**
63
+ - **Flat** — all comments at the same level, sorted by time or votes (early YouTube, simple forums).
64
+ - **Nested / threaded** — replies indent under parent comments (Reddit, Hacker News). Limit nesting depth to 4-6 levels on mobile to prevent horizontal overflow.
65
+ - **Linear with quotes** — flat list but replies quote the parent (Discord, Slack threads). Preserves chronological flow while maintaining context.
66
+
67
+ **Implementation guidance:**
68
+ - Show reply count and a "View replies" expander for collapsed threads.
69
+ - Provide a "Jump to parent" link when viewing deeply nested replies.
70
+ - Render a vertical connector line between parent and children for visual continuity.
71
+ - Limit initial comment display to 3-5 top-level comments; use "View all N comments" to expand.
72
+ - Support rich text (bold, italic, links, code blocks) but sanitize all HTML to prevent XSS.
73
+
74
+ ### 1.4 Reactions and Likes
75
+
76
+ **Reaction spectrum:**
77
+ | Type | Example | Pros | Cons |
78
+ |------|---------|------|------|
79
+ | Binary like | Instagram heart, Twitter/X like | Simple, low friction | No nuance |
80
+ | Emoji reactions | Slack, Discord, Facebook | Expressive, lightweight | Can clutter |
81
+ | Upvote/downvote | Reddit, Stack Overflow | Community curation | Downvote discourages participation |
82
+ | Custom reactions | Discord server emojis | Community identity | Moderation complexity |
83
+
84
+ **Design rules:**
85
+ - The tap target for reaction buttons must be at least 44x44 CSS pixels (WCAG 2.5.5 AAA) or minimum 24x24 (WCAG 2.5.8 AA).
86
+ - Show aggregate count next to each reaction. Group identical reactions: "👍 12 ❤️ 5" rather than listing each individually.
87
+ - Animate the transition from un-reacted to reacted state (see Micro-Interactions, Section 5).
88
+ - Allow users to see who reacted (member list on hover/tap) unless the community is anonymous.
89
+ - Never auto-react or pre-select a reaction on behalf of the user.
90
+
91
+ ### 1.5 Messaging and Chat
92
+
93
+ **Messaging paradigms:** DMs (1:1), Group DMs (2-10 participants, ad hoc), Channels/rooms (persistent, topic-based — Slack, Discord), and Threads within channels (branched side conversations).
94
+
95
+ **Chat UI essentials:**
96
+ - Message input anchored to bottom. Auto-grow textarea up to 4-6 lines, then scroll internally.
97
+ - Timestamp grouping with date separators; collapse timestamps for messages within 5 minutes.
98
+ - Sender grouping: consecutive same-sender messages collapse avatar/name.
99
+ - Unread divider line at first unread message.
100
+ - Message actions on hover (web) or long-press (mobile): Reply, React, Edit, Delete, Pin, Copy Link.
101
+
102
+ ### 1.6 Groups and Channels
103
+
104
+ **Hierarchy:** Community/Server > Category (grouping label) > Channel (text, voice, forum, announcement, stage). Discord exemplifies this with categories grouping channels, voice channels for real-time audio, and forum channels for structured async discussion.
105
+
106
+ **Channel types:** Text (persistent, searchable), Voice (real-time audio/video/screenshare), Forum (threaded topics with titles — Discord Forum, Discourse), Announcement (admin-only posting, thread-based discussion), Stage (structured audio events with speakers/audience).
107
+
108
+ **Group governance:**
109
+ - Role-based access control (RBAC): Owner > Admin > Moderator > Member > Guest.
110
+ - Channel-level permission overrides for restricting posting to specific roles.
111
+ - Membership models: invite-only, open join, or approval-required.
112
+
113
+ ### 1.7 Follow and Friend
114
+
115
+ **Relationship models:** Asymmetric follow (Twitter, Instagram, Mastodon — low friction, no reciprocation needed), Symmetric friend (Facebook, LinkedIn — mutual required, higher trust), Hybrid (LinkedIn follow vs. connect — asymmetric follow plus symmetric connection).
116
+
117
+ **UX rules:**
118
+ - Follow button provides immediate visual feedback (filled state, label change to "Following").
119
+ - Unfollow requires confirmation or toggle, not a destructive one-tap action.
120
+ - Offer "Mute" to hide content while preserving the follow relationship (less socially costly than unfollowing).
121
+
122
+ ### 1.8 Mentions and Tagging
123
+
124
+ **Mention types:** User (`@username` — triggers notification, autocomplete after 1-2 chars), Channel (`#channel-name` — clickable link), Group/role (`@everyone`, `@moderators` — permission-gated to prevent spam), Hashtags (`#topic` — categorization/discovery), Photo tags (user profile linked to image region — requires consent settings).
125
+
126
+ **Autocomplete requirements:** Fuzzy matching on display name and username, avatar thumbnail for disambiguation, keyboard navigable (arrow keys + Enter), limited to 5-8 suggestions.
127
+
128
+ ### 1.9 Content Creation and Posting
129
+
130
+ **Content composer anatomy:**
131
+ ```
132
+ ┌─────────────────────────────────────────┐
133
+ │ [Avatar] What's on your mind? │ ← Prompt / placeholder
134
+ │ │
135
+ │ [Rich text area with formatting toolbar]│
136
+ │ │
137
+ │ [Attached media preview strip] │
138
+ │ │
139
+ │ ┌────┬────┬────┬────┬─────────┬──────┐ │
140
+ │ │ 📷 │ 🎥 │ 📎 │ 📊 │ Audience│ Post │ │ ← Attachment + audience + submit
141
+ │ └────┴────┴────┴────┴─────────┴──────┘ │
142
+ └─────────────────────────────────────────┘
143
+ ```
144
+
145
+ **Content types:** Text (rich formatting), Images (single or carousel), Video (upload/embed with auto-captions), Link previews (Open Graph), Polls (2-4 options, configurable duration), Stories (24-hour ephemeral, full-screen vertical).
146
+
147
+ **Creation flow best practices:**
148
+ - Auto-save drafts every 30 seconds or on blur.
149
+ - Character count visible at 80% of limit. Alt text prompt for attached images (W3C ATAG requirement).
150
+ - Audience selector defaults to user's last-used setting.
151
+ - Preview mode before publishing. Edit window: 5-15 min or indefinitely with visible history (Mastodon, Slack).
152
+
153
+ ### 1.10 Moderation
154
+
155
+ **Moderation layers (defense in depth):**
156
+ 1. **Automated pre-moderation** — content scanned before publishing (spam filters, NSFW detection, keyword blocklists).
157
+ 2. **Community reporting** — users flag content via a structured report flow (see User Flow Mapping, Section 4).
158
+ 3. **Human moderator review** — queued reports triaged by severity; moderators see context (post, reporter, history).
159
+ 4. **Appeals process** — users can contest moderation decisions through a clear, discoverable flow.
160
+
161
+ **Moderation actions (tiered consequences):**
162
+ | Severity | Action | Example trigger |
163
+ |----------|--------|----------------|
164
+ | Low | Warning / content label | Borderline language |
165
+ | Medium | Content removal + notice | Policy violation |
166
+ | High | Temporary mute/ban (1-30 days) | Repeated violations |
167
+ | Critical | Permanent ban + content purge | Hate speech, threats, illegal content |
168
+
169
+ **Moderation UX principles:** Guidelines in plain language shown during onboarding (Arena, 2025). Report flows under 4 taps. Reporter feedback on outcomes. Moderator dashboards with full context (flagged content, conversation, user history). Transparency reports for community trust.
170
+
171
+ ---
172
+
173
+ ## 2. Best-in-Class Examples
174
+
175
+ ### 2.1 Discord
176
+
177
+ **Strengths:** Server/channel hierarchy with fine-grained RBAC per channel. Colored roles as both access control and visual identity. Always-on voice channels lower the barrier to real-time conversation. Forum channels bridge chat and threaded discussion. Custom emoji per server foster community identity. Server-level onboarding with rules acceptance, role selection, and channel opt-in.
178
+
179
+ **Weaknesses:** Limited server discoverability (no federated search). Threading in text channels is bolted-on vs. first-class. Accessibility gaps in voice controls and screen reader navigation.
180
+
181
+ ### 2.2 Slack
182
+
183
+ **Strengths:** First-class threaded conversations keep main channel clean. Best-in-class search with filters (`from:`, `in:`, `has:`, `before:`). Rich integration/bot ecosystem with interactive message blocks. Huddles bridge sync and async communication. Channel topics and bookmarks for persistent orientation.
184
+
185
+ **Weaknesses:** Information architecture degrades at scale (hundreds of channels cause discovery paralysis). Free tier limits message history. No built-in community moderation tools (designed for workplaces).
186
+
187
+ ### 2.3 Reddit
188
+
189
+ **Strengths:** Definitive nested comment threading with expand/collapse. Upvote/downvote for community-driven content curation. Subreddit autonomy (own rules, flair, theme). Post and user flair system for categorization and identity. Multiple interface paradigms (Old/New Reddit) prove value of separating content architecture from presentation.
190
+
191
+ **Weaknesses:** Downvote routinely misused for disagreement vs. quality. Inconsistent moderator tooling; volunteer burden. Anonymous culture enables toxicity in poorly moderated subreddits.
192
+
193
+ ### 2.4 Instagram
194
+
195
+ **Strengths:** Visual-first feed with full-bleed images/video. Stories format (ephemeral, interactive stickers) pioneered low-stakes sharing. Carousel posts for multi-image narratives. Close Friends for audience segmentation. Seamless shopping integration via product tags.
196
+
197
+ **Weaknesses:** Algorithmic feed opacity frustrates creators. Optional like-count hiding is inconsistently implemented. Flat-only comments limit discussion depth. Heavy reliance on dark patterns for engagement (see Section 6).
198
+
199
+ ### 2.5 LinkedIn
200
+
201
+ **Strengths:** Profiles as structured resumes (experience, education, skills, endorsements). Network distance transparency ("2nd degree"). Unified feed, job listings, and messaging. Written recommendations as social proof.
202
+
203
+ **Weaknesses:** Feed algorithm rewards engagement bait over substance. InMail spam from recruiters. Complex, scattered privacy controls. Extreme notification overload from aggressive defaults.
204
+
205
+ ### 2.6 Mastodon
206
+
207
+ **Strengths:** Federated/decentralized via ActivityPub — users choose value-aligned instances. Antiviral design: no quote-tweets, no algorithmic amplification, no engagement metrics in feeds (UX Collective). First-class content warnings (CW) with click-to-reveal. Edit with public history for accountability. Chronological Home/Local/Federated timelines. Per-post privacy (Public, Unlisted, Followers-only, Direct).
208
+
209
+ **Weaknesses:** High-friction onboarding (instance selection confuses newcomers). Cross-instance discovery limited by design. UI polish lags behind commercial platforms.
210
+
211
+ ---
212
+
213
+ ## 3. User Flow Mapping
214
+
215
+ ### 3.1 Sign Up to First Value
216
+
217
+ ```
218
+ Landing Page → Sign Up (Email/OAuth) → Email Verification (code/magic link)
219
+ → Profile Setup (avatar, display name, bio, interests)
220
+ → Discovery (suggested people, communities, trending content)
221
+ → First Follow/Join (3-5 accounts, 1-2 communities)
222
+ → Populated Feed → First Engagement (like → comment → create post)
223
+ ```
224
+
225
+ **Key metrics:** Time to first value (TTFV) under 3 minutes. Activation rate: % performing one engagement within 24h. NNG recommends progressive disclosure: minimal upfront info, contextual profile completion prompts.
226
+
227
+ ### 3.2 Content Creation and Editing
228
+
229
+ ```
230
+ Compose Trigger (FAB mobile / prompt web / Cmd+N desktop)
231
+ → Composer (text + formatting, media buttons, audience selector, auto-save)
232
+ → Authoring (char count at 80%, alt text on images, @mention/#hashtag autocomplete, link preview)
233
+ → Pre-publish Review (preview, confirm audience, optional schedule)
234
+ → Publish (optimistic UI: appears immediately)
235
+ → Post-publish (edit within window, delete with confirmation, view metrics)
236
+ ```
237
+
238
+ ### 3.3 Moderation Flow — Reporting
239
+
240
+ ```
241
+ Kebab menu (⋯) → "Report" → Choose reason (Spam, Harassment, Hate speech,
242
+ Misinformation, Nudity, Violence, IP violation, Other)
243
+ → Optional context (free-text) → Submit → Confirmation message
244
+ → Offer self-help ("Block/Mute this user?")
245
+ → [Internal] Moderation queue (auto-categorized, AI pre-scored, human review)
246
+ → Action taken → Reporter notified
247
+ ```
248
+
249
+ ### 3.4 Blocking and Muting
250
+
251
+ **Block flow:** Profile overflow menu > "Block @username" > Confirmation dialog explaining consequences ("They won't see your profile or message you. You won't see their content. They won't be notified.") > Blocked state: content mutually hidden, DM history hidden (not deleted), managed in Settings > Privacy > Blocked accounts.
252
+
253
+ **Mute flow:** Profile overflow menu > "Mute @username" > Mute options (posts, stories, notifications) with duration selector (24h / 7 days / indefinite) > Muted state: follow relationship preserved, content silently hidden, user NOT notified.
254
+
255
+ ---
256
+
257
+ ## 4. Micro-Interactions
258
+
259
+ ### 4.1 Like / Reaction Animation
260
+
261
+ The like animation is the most-replicated micro-interaction in social design. Its purpose is to provide satisfying feedback that reinforces engagement.
262
+
263
+ **Implementation pattern:**
264
+ 1. **Trigger** — tap/click the heart/like icon.
265
+ 2. **State change** — icon fills with color (gray outline to red filled heart). Transition: 200-300ms ease-out scale transform (1.0 -> 1.3 -> 1.0).
266
+ 3. **Particle effect** (optional) — small burst of particles or confetti radiating from the icon. Keep duration under 400ms.
267
+ 4. **Count increment** — number beside the icon increments. Use a vertical slide animation for the digit change.
268
+ 5. **Haptic feedback** (mobile) — light haptic tap on iOS (UIImpactFeedbackGenerator.light), short vibration on Android.
269
+
270
+ **Double-tap to like (Instagram pattern):**
271
+ - Large heart icon animates at the center of the image (scale 0 -> 1.2 -> 1.0, opacity 0 -> 1 -> 0 over 800ms).
272
+ - Must not be the only way to like; the icon button must also work (accessibility requirement).
273
+
274
+ ### 4.2 Typing Indicator
275
+
276
+ **Design:**
277
+ - Three animated dots ("...") in a speech bubble, displayed in the chat area at the position where the next message will appear.
278
+ - Animation: dots pulse or bounce sequentially (150ms stagger between each dot, 600ms total cycle).
279
+ - Show the typing user's avatar or name alongside the indicator in group chats.
280
+ - Debounce: start showing after 500ms of continuous typing; hide after 3-5 seconds of inactivity.
281
+
282
+ **Privacy consideration:** Some users find typing indicators anxiety-inducing. Offer a toggle in settings to disable sending (not receiving) typing status. Mastodon does not implement typing indicators by design.
283
+
284
+ ### 4.3 Read Receipts
285
+
286
+ **Implementation patterns:**
287
+ - **Check marks** (WhatsApp model): single check = sent, double check = delivered, blue double check = read.
288
+ - **Avatar stack** (Discord model): small avatars of users who have read the message appear below the message.
289
+ - **"Seen by" label** (Facebook Messenger): "Seen at 2:34 PM" below the last message.
290
+
291
+ **Critical UX rules:**
292
+ - Always provide a setting to disable read receipts (sending them). This is a privacy expectation.
293
+ - In group chats, show aggregate read status ("Seen by 4 of 6") rather than individual timestamps.
294
+ - Never use read receipts to create social pressure (e.g., highlighting "unread" messages to recipients).
295
+
296
+ ### 4.4 Reaction Picker
297
+
298
+ **Interaction flow:**
299
+ 1. **Trigger** — long-press (mobile) or hover + click the smiley icon (web) on a message.
300
+ 2. **Picker appearance** — floating panel appears above or below the message with a row of 6-8 frequently used reactions.
301
+ 3. **Expanded picker** — a "+" icon opens the full emoji picker with search and categories.
302
+ 4. **Selection** — tap an emoji; the picker dismisses and the reaction appears beneath the message with a scale-in animation (0 -> 1.0 over 150ms).
303
+ 5. **De-selection** — tapping the same reaction again removes it (toggle behavior).
304
+
305
+ **Design details:**
306
+ - The quick-reaction row should be customizable by the user (let them pick their 6 most-used emoji).
307
+ - Show a subtle bounce or pop animation on the selected emoji before it moves to the message.
308
+ - On web, support keyboard navigation within the picker (arrow keys, Enter to select, Escape to dismiss).
309
+
310
+ ### 4.5 Comment Threading Expansion
311
+
312
+ **Interaction flow:**
313
+ 1. **Collapsed state** — "View 12 replies" link below a parent comment with a vertical thread line.
314
+ 2. **Tap to expand** — replies slide in with a staggered fade-in animation (50ms delay between each reply, max 5 visible initially).
315
+ 3. **Load more** — if more than 5 replies exist, show "Load N more replies" at the bottom of the thread.
316
+ 4. **Collapse** — tapping the thread line or a "Collapse" button slides replies out and returns to the collapsed state.
317
+ 5. **Scroll anchor** — when expanding, the parent comment must remain visible; do not scroll the parent off-screen.
318
+
319
+ ### 4.6 Message Send Animation
320
+
321
+ **Sequence:**
322
+ 1. **Input submission** — message text clears from the input field.
323
+ 2. **Optimistic render** — message bubble appears in the chat list immediately, styled with reduced opacity or a "sending" indicator.
324
+ 3. **Confirmation** — when server confirms delivery, the bubble transitions to full opacity and the "sending" indicator is replaced by a timestamp or delivery check.
325
+ 4. **Failure state** — if delivery fails, show a red exclamation mark with a "Retry" tap target. Never silently swallow send failures.
326
+
327
+ ---
328
+
329
+ ## 5. Anti-Patterns
330
+
331
+ ### 5.1 Vanity Metrics Obsession
332
+
333
+ **Problem:** Platforms that make follower counts, like counts, and view counts the most prominent profile elements encourage performative behavior over genuine connection. Users optimize for metrics rather than meaningful engagement.
334
+
335
+ **Harm:** Anxiety, self-worth tied to numbers, content homogenization toward what "performs well."
336
+
337
+ **Solution:** De-emphasize counts (Instagram's optional like hiding), show them only to the content creator, or replace with qualitative signals ("Your post sparked a conversation" instead of "47 likes"). NNG advises designing for meaningful engagement metrics (comments, saves, shares) rather than passive ones (views, likes).
338
+
339
+ ### 5.2 Infinite Scroll Without Boundaries
340
+
341
+ **Problem:** Feeds that load content endlessly with no natural stopping point exploit the human tendency to continue an activity that has no clear endpoint (Zeigarnik effect).
342
+
343
+ **Harm:** Users report losing track of time, spending more time than intended, and feeling worse after extended scrolling sessions.
344
+
345
+ **Solution:** Insert natural break points ("You're all caught up" — Instagram), daily usage dashboards, configurable time reminders ("You've been scrolling for 30 minutes"), or pagination with explicit "Load more" actions.
346
+
347
+ ### 5.3 Notification Overload
348
+
349
+ **Problem:** Default notification settings that enable all notification types across email, push, and in-app simultaneously. Every like, follow, comment, and algorithmic suggestion triggers a notification.
350
+
351
+ **Harm:** Notification fatigue leads to users either disabling all notifications (losing important ones) or being constantly interrupted.
352
+
353
+ **Solution:** Conservative defaults (only DMs and mentions as push notifications). Batch non-urgent notifications into a daily digest. Provide granular notification settings grouped by category (interactions, follows, system, marketing). LinkedIn is a notable offender; Mastodon's minimal-by-default approach is exemplary.
354
+
355
+ ### 5.4 Dark Patterns for Engagement
356
+
357
+ **Problem:** Deliberate design manipulation — pull-to-refresh mimicking slot machines, red badges creating clearing compulsion, "Someone viewed your profile" lure-back notifications, autoplay video inflating view counts, streak mechanics (Snapchat) punishing disengagement.
358
+
359
+ **Regulatory context:** EU Digital Services Act (2024) and EDPB explicitly name dark patterns as violations. California CPRA similarly restricts deceptive design.
360
+
361
+ ### 5.5 Unclear Privacy Controls
362
+
363
+ **Problem:** Settings buried in deep hierarchies, using jargon, with defaults maximizing data exposure. Most users never change defaults.
364
+
365
+ **Solution:** Privacy settings one tap from profile. Plain-language descriptions. Quarterly privacy audit prompts. Default to most restrictive, let users opt into broader sharing.
366
+
367
+ ### 5.6 No Content Moderation Infrastructure
368
+
369
+ **Problem:** Launching without moderation tooling. Toxic content drives away positive contributors ("evaporative cooling" effect) — a small number of bad actors destroy community culture.
370
+
371
+ **Solution:** Build moderation tooling before launch: automated pre-screening, moderator dashboards, clear guidelines, structured report/appeal flows (Section 3.3).
372
+
373
+ ### 5.7 Algorithmic Filter Bubble
374
+
375
+ **Problem:** Engagement-optimized algorithms create echo chambers. Users are unaware their feed is curated, mistaking it for a representative view. Leads to polarization and reduced exposure to diverse perspectives.
376
+
377
+ **Solution:** Algorithmic transparency ("Why am I seeing this?"), chronological feed options, intentionally surface diverse perspectives, allow users to control and reset algorithmic preferences.
378
+
379
+ ### 5.8 Forced Public Defaults
380
+
381
+ **Problem:** New posts, profiles, or activity default to "Public" visibility when a more restrictive default would better serve user interests.
382
+
383
+ **Harm:** Users accidentally share content with unintended audiences. Especially harmful for younger users or those in vulnerable situations.
384
+
385
+ **Solution:** Default to the most recently used privacy setting, or to "Followers Only" for new users. Show a clear privacy indicator on the compose screen. Require explicit confirmation when posting publicly for the first time.
386
+
387
+ ### 5.9 Engagement Bait Amplification
388
+
389
+ **Problem:** Algorithms that reward posts with high engagement amplify controversial, outrageous, or emotionally manipulative content because it generates more reactions and comments.
390
+
391
+ **Harm:** Degrades content quality, rewards bad-faith participation, and creates a race to the bottom.
392
+
393
+ **Solution:** Weight engagement quality (comments, saves, shares) over quantity (likes, views). Penalize content flagged as "rage bait" or clickbait. Reddit's upvote/downvote plus time-decay algorithm is a reasonable (though imperfect) model.
394
+
395
+ ### 5.10 Irreversible Actions Without Confirmation
396
+
397
+ **Problem:** Destructive actions (delete post, leave group, block user, send message) that execute immediately without confirmation or undo capability.
398
+
399
+ **Harm:** Accidental deletions, premature sends, unintended blocks.
400
+
401
+ **Solution:** Implement undo windows for soft-destructive actions (Gmail's "Undo Send" pattern — 5-10 second window). For hard-destructive actions (delete account, purge content), require re-authentication and a cooling-off period.
402
+
403
+ ### 5.11 Hostile Onboarding
404
+
405
+ **Problem:** Excessive required information, contacts access, or engagement commitments before showing value. Users who grant contacts access regret it when the platform spams contacts.
406
+
407
+ **Solution:** Minimal required fields (email/OAuth + display name). Optional contacts import with clear data usage explanation. Content preview before requiring account creation (Reddit's lurker-friendly model).
408
+
409
+ ### 5.12 Zombie Notifications
410
+
411
+ **Problem:** Notifications for non-events to re-engage lapsed users ("You haven't posted in a while!", "A post you might like"). Users perceive these as spam, eroding trust in all platform notifications.
412
+
413
+ **Solution:** Only notify about events the user expressed interest in. Never fabricate urgency. Respect frequency caps. One re-engagement email after 30 days is acceptable; daily push is not.
414
+
415
+ ---
416
+
417
+ ## 6. Accessibility
418
+
419
+ ### 6.1 Alt Text for User-Generated Content
420
+
421
+ W3C ATAG requires authoring tools (including social media platforms) to assist users in providing accessible content.
422
+
423
+ **Requirements:**
424
+ - Inline alt text prompt when uploading images (not buried in settings).
425
+ - AI-generated alt text suggestions as starting point, user-editable (Instagram, X do this).
426
+ - "ALT" badge indicator on images with descriptions.
427
+ - Option to mark decorative images (empty alt attribute).
428
+ - Alt text stored as structured metadata, updatable independently of the image.
429
+
430
+ **WCAG:** SC 1.1.1 (Non-text Content, Level A).
431
+
432
+ ### 6.2 Keyboard Navigation in Feeds
433
+
434
+ **Requirements:**
435
+ - Feed items reachable via Tab/arrow keys (`role="feed"` + `role="article"` — WAI-ARIA 1.2).
436
+ - Action buttons (like, comment, share) focusable and operable with Enter/Space.
437
+ - Page Down/Up triggers lazy loading. Skip link bypasses navigation/sidebar.
438
+ - New content loading must not move focus or disrupt scroll position.
439
+
440
+ **WCAG:** SC 2.1.1 (Keyboard, A), SC 2.4.1 (Bypass Blocks, A), SC 2.4.3 (Focus Order, A).
441
+
442
+ ### 6.3 Screen Reader Support for Reactions
443
+
444
+ **Requirements:**
445
+ - Accessible labels on reaction buttons: `aria-label="Like, 47 likes"`.
446
+ - State changes announced via `aria-live="polite"` or `role="status"`.
447
+ - Reaction summaries as text: "Reactions: thumbs up 12, heart 5" — not raw emoji.
448
+ - Custom emoji (Discord, Slack) must include text name as accessible label.
449
+ - Reaction picker navigable by screen reader with named emoji, announced categories, and search.
450
+
451
+ **WCAG:** SC 4.1.2 (Name, Role, Value, A), SC 1.1.1 (Non-text Content, A).
452
+
453
+ ### 6.4 Accessible Chat and Messaging
454
+
455
+ **Requirements:**
456
+ - New messages announced via `aria-live="polite"` (not "assertive" — avoids interrupting user).
457
+ - Message input labeled: `aria-label="Message #channel-name"`.
458
+ - Timestamps, sender, and content programmatically associated ("Jane Doe, 2:34 PM: Hello everyone").
459
+ - Typing indicators conveyed via `aria-live="polite"`: "Jane is typing."
460
+ - Custom emoji need `aria-label` (native Unicode handled by most screen readers).
461
+ - File attachments and media require accessible descriptions. Voice/video calls need captions.
462
+
463
+ **WCAG:** SC 1.3.1 (Info and Relationships, A), SC 4.1.3 (Status Messages, AA).
464
+
465
+ ### 6.5 Accessible Forms in Social Features
466
+
467
+ - Visible labels on all inputs (not placeholder-only — SC 3.3.2). Error messages via `aria-describedby`.
468
+ - Multi-step flows indicate progress ("Step 2 of 4") visually and programmatically.
469
+ - Autocomplete dropdowns use `role="listbox"` + `role="option"` with `aria-activedescendant`.
470
+ - Touch targets minimum 24x24 px (SC 2.5.8, AA).
471
+
472
+ ### 6.6 Cognitive Accessibility
473
+
474
+ - Clear, simple language for all UI text. Consistent navigation/layout across screens (SC 3.2.3, 3.2.4).
475
+ - Warn 60s before session timeout, allow extension (SC 2.2.1). Text resizable to 200% (SC 1.4.4).
476
+ - No autoplay media without immediately accessible pause/stop control.
477
+
478
+ ---
479
+
480
+ ## 7. Cross-Platform Adaptation
481
+
482
+ ### 7.1 Mobile (iOS and Android)
483
+
484
+ **Navigation:** Bottom tab bar (max 5: Feed, Search, Create, Notifications, Profile). Swipe gestures for tab/content navigation. Pull-to-refresh for feeds.
485
+
486
+ **Content creation:** FAB for post creation (Android Material Design). Camera integration for Stories. Full-screen composer with auto-grow text area.
487
+
488
+ **Chat:** Message input anchored above keyboard. Swipe-to-reply on messages. Haptic feedback on send, reactions, long-press.
489
+
490
+ **Platform-specific:** iOS — SF Symbols, Dynamic Type, VoiceOver. Android — Material Design 3, TalkBack, edge-to-edge layout with system bar insets.
491
+
492
+ ### 7.2 Web (Desktop and Responsive)
493
+
494
+ **Layout:** Three-column (left nav, center feed/chat, right details). Keyboard shortcuts via "?" modal (`J`/`K` navigate, `L` like, `R` reply, `N` new post).
495
+
496
+ **Responsive breakpoints:**
497
+ | Breakpoint | Layout | Sidebar behavior |
498
+ |-----------|--------|-----------------|
499
+ | > 1280px | 3-column | Both sidebars visible |
500
+ | 1024-1280px | 2-column | Right sidebar collapsed |
501
+ | 768-1024px | 2-column | Left sidebar collapsed to icons |
502
+ | < 768px | 1-column | Bottom tab navigation |
503
+
504
+ **Web-specific:** Drag-and-drop file upload. Multi-window/tab support (pop-out conversations). Browser Notification API for push. URL-driven state: every profile, post, channel, thread has a shareable permalink.
505
+
506
+ ### 7.3 Desktop Apps (Electron / Native)
507
+
508
+ **Advantages over web:** System tray/menu bar for background notifications. Global keyboard shortcuts (Cmd+Shift+M to mute in Discord). Deeper OS integration (Finder/Explorer drag-and-drop, screen sharing, audio routing). Offline support with sync-on-reconnect.
509
+
510
+ ### 7.4 Cross-Platform Consistency Principles
511
+
512
+ - **Core interactions identical** across platforms (like, comment, follow, message, create).
513
+ - **Adapt to platform conventions** (bottom tabs mobile, sidebar desktop; swipe mobile, hover desktop).
514
+ - **Synchronized state** in real time — dismissed notifications, read status, drafts, settings.
515
+ - **Shared design tokens** — colors, typography, spacing, radii defined in cross-platform design system.
516
+ - **Feature parity as goal, not rule** — camera stories on mobile, keyboard shortcuts on desktop are acceptable divergences.
517
+
518
+ ---
519
+
520
+ ## 8. Decision Tree
521
+
522
+ ### 8.1 Real-Time vs. Asynchronous Communication
523
+
524
+ ```
525
+ What is the primary use case?
526
+
527
+ ├── Urgent coordination, live events, casual social hangout
528
+ │ └── REAL-TIME (chat, voice, video)
529
+ │ ├── Channels with live message flow (Discord, Slack)
530
+ │ ├── Voice channels / huddles
531
+ │ ├── Typing indicators and presence (online/offline)
532
+ │ └── Expectation: responses within minutes
533
+
534
+ ├── Thoughtful discussion, knowledge sharing, documentation
535
+ │ └── ASYNCHRONOUS (forums, threads, posts)
536
+ │ ├── Threaded discussions with nested replies (Reddit, Discourse)
537
+ │ ├── Long-form posts with rich formatting
538
+ │ ├── No typing indicators or presence
539
+ │ └── Expectation: responses within hours or days
540
+
541
+ └── Both needed
542
+ └── HYBRID
543
+ ├── Chat channels + thread branching (Slack model)
544
+ ├── Feed posts + real-time comments (Instagram Live)
545
+ ├── Forum channels within a chat server (Discord Forum)
546
+ └── Key: clearly separate sync and async spaces in the UI
547
+ ```
548
+
549
+ **Design implications:**
550
+ - Real-time: invest in presence indicators, typing state, read receipts, push notifications, low-latency infrastructure (WebSockets).
551
+ - Async: invest in rich text editing, search, threading depth, email notification digests, content permanence.
552
+
553
+ ### 8.2 Anonymous vs. Identified
554
+
555
+ ```
556
+ What identity model serves your community?
557
+
558
+ ├── Full real identity (legal name, photo, credentials)
559
+ │ └── IDENTIFIED
560
+ │ ├── Use case: professional networking, healthcare, finance
561
+ │ ├── Benefits: accountability, trust, professional credibility
562
+ │ ├── Risks: chilling effect on honest feedback, privacy concerns
563
+ │ ├── Examples: LinkedIn, workplace Slack
564
+ │ └── Design: verification badges, real-name policy, profile validation
565
+
566
+ ├── Pseudonymous (consistent handle, no real identity required)
567
+ │ └── PSEUDONYMOUS
568
+ │ ├── Use case: most online communities, hobbyist forums, social media
569
+ │ ├── Benefits: creative freedom, reputation building without personal exposure
570
+ │ ├── Risks: sockpuppets, ban evasion, reduced accountability
571
+ │ ├── Examples: Reddit, Discord, Mastodon, most forums
572
+ │ └── Design: persistent identity, reputation systems, karma/trust levels
573
+
574
+ ├── Fully anonymous (no persistent identity)
575
+ │ └── ANONYMOUS
576
+ │ ├── Use case: whistleblowing, sensitive support groups, confessions
577
+ │ ├── Benefits: maximum freedom of expression, safety for vulnerable users
578
+ │ ├── Risks: trolling, no accountability, difficult to moderate
579
+ │ ├── Examples: 4chan, anonymous feedback tools, some support forums
580
+ │ └── Design: strong moderation, rate limiting, IP-based restrictions
581
+
582
+ └── Layered (verified to platform, pseudonymous to community)
583
+ └── HYBRID IDENTITY
584
+ ├── Platform knows real identity; community sees pseudonym
585
+ ├── Benefits: accountability (can be banned) + privacy (community doesn't know who you are)
586
+ ├── Examples: some gaming platforms, verified-but-pseudonymous services
587
+ └── Design: verification at sign-up, display name/handle system, reveal-on-mod-request
588
+ ```
589
+
590
+ ### 8.3 Open vs. Closed Community
591
+
592
+ ```
593
+ Who should be able to join and participate?
594
+
595
+ ├── Anyone can join, anyone can post
596
+ │ └── OPEN
597
+ │ ├── Use case: public forums, social media, open-source communities
598
+ │ ├── Benefits: maximum growth, diverse perspectives, low friction
599
+ │ ├── Risks: spam, trolling, low signal-to-noise ratio
600
+ │ ├── Moderation need: HIGH (automated + human)
601
+ │ ├── Examples: Reddit (public subreddits), Twitter/X, Mastodon (public instances)
602
+ │ └── Design: robust moderation tools, spam filters, community voting
603
+
604
+ ├── Anyone can view, membership required to post
605
+ │ └── SEMI-OPEN
606
+ │ ├── Use case: knowledge communities, Q&A sites, news comment sections
607
+ │ ├── Benefits: lurkers can learn; contributors are accountable
608
+ │ ├── Risks: barrier may discourage participation
609
+ │ ├── Moderation need: MEDIUM
610
+ │ ├── Examples: Stack Overflow, GitHub Discussions
611
+ │ └── Design: clear "Join to participate" CTA, guest-viewable content
612
+
613
+ ├── Approval required to join; content visible only to members
614
+ │ └── CLOSED
615
+ │ ├── Use case: private groups, paid communities, internal teams
616
+ │ ├── Benefits: high trust, curated membership, safe spaces
617
+ │ ├── Risks: echo chamber, slower growth, exclusionary dynamics
618
+ │ ├── Moderation need: LOW to MEDIUM
619
+ │ ├── Examples: Private Facebook Groups, paid Discord servers, Slack workspaces
620
+ │ └── Design: application/invite flow, member directory, onboarding rules acceptance
621
+
622
+ └── Invitation only, no public visibility
623
+ └── PRIVATE
624
+ ├── Use case: executive teams, sensitive working groups, family groups
625
+ ├── Benefits: maximum privacy and trust
626
+ ├── Risks: very limited growth, potential for insular thinking
627
+ ├── Moderation need: LOW
628
+ ├── Examples: Private Slack channels, WhatsApp groups, Signal groups
629
+ └── Design: invite link management, member limit, end-to-end encryption
630
+ ```
631
+
632
+ ---
633
+
634
+ ## 9. Quick Reference Checklist
635
+
636
+ Use this checklist when designing or auditing a social/community feature.
637
+
638
+ ### Profiles
639
+ - [ ] Avatar with fallback (initials or identicon)
640
+ - [ ] Display name and unique handle/username
641
+ - [ ] Bio with character limit and clear affordance
642
+ - [ ] Privacy tiers (public/semi-private/private)
643
+ - [ ] Status indicator uses color + icon, not color alone
644
+ - [ ] Follow/Connect button with clear state change
645
+ - [ ] Block and Report accessible from profile (via overflow menu)
646
+
647
+ ### Feeds
648
+ - [ ] Chronological option available (not solely algorithmic)
649
+ - [ ] Skeleton loading states (not spinners)
650
+ - [ ] "You're all caught up" boundary or natural stopping point
651
+ - [ ] New content indicator without auto-scrolling ("3 new posts" pill)
652
+ - [ ] Feed items are keyboard navigable (`role="feed"` + `role="article"`)
653
+ - [ ] Virtualized rendering for long lists
654
+
655
+ ### Comments and Threading
656
+ - [ ] Reply threading with visual connector lines
657
+ - [ ] Collapse/expand for nested threads
658
+ - [ ] "View N replies" lazy loading
659
+ - [ ] Rich text support with HTML sanitization
660
+ - [ ] Jump-to-parent link for deep threads
661
+
662
+ ### Reactions
663
+ - [ ] Tap targets meet WCAG 2.5.8 minimum (24x24 px)
664
+ - [ ] Accessible labels on reaction buttons (`aria-label`)
665
+ - [ ] Reaction state change announced to screen readers
666
+ - [ ] Aggregate count displayed; who-reacted list available
667
+ - [ ] Animation duration under 400ms
668
+
669
+ ### Messaging
670
+ - [ ] Unread message indicator with divider line
671
+ - [ ] Timestamp grouping and sender collapsing
672
+ - [ ] New messages announced via `aria-live="polite"`
673
+ - [ ] Typing indicator with privacy toggle
674
+ - [ ] Read receipts with opt-out setting
675
+ - [ ] Retry mechanism for failed sends with visible error state
676
+
677
+ ### Content Creation
678
+ - [ ] Auto-save drafts
679
+ - [ ] Alt text prompt for attached images (ATAG compliance)
680
+ - [ ] Audience/visibility selector with clear labels
681
+ - [ ] Character count at 80% threshold
682
+ - [ ] Preview before publish
683
+ - [ ] Edit capability (with history or time-limited window)
684
+
685
+ ### Moderation
686
+ - [ ] Community guidelines visible during onboarding and always accessible
687
+ - [ ] Report flow completable in fewer than 4 taps
688
+ - [ ] Structured report reasons (not just free-text)
689
+ - [ ] Reporter receives outcome notification
690
+ - [ ] Moderator dashboard with context (post, conversation, user history)
691
+ - [ ] Appeals process discoverable from moderation notice
692
+ - [ ] Tiered consequences documented and applied consistently
693
+
694
+ ### Notifications
695
+ - [ ] Conservative defaults (DMs and mentions only for push)
696
+ - [ ] Granular settings by notification type
697
+ - [ ] Batch/digest option for non-urgent notifications
698
+ - [ ] No zombie notifications or fabricated urgency
699
+ - [ ] Synchronized dismissal across platforms
700
+
701
+ ### Privacy
702
+ - [ ] Privacy settings reachable within 2 taps from profile
703
+ - [ ] Plain-language descriptions for all settings
704
+ - [ ] Default to most restrictive sharing option
705
+ - [ ] Periodic privacy audit prompt
706
+ - [ ] Transparent algorithmic feed controls ("Why am I seeing this?")
707
+
708
+ ### Accessibility
709
+ - [ ] All interactive elements keyboard accessible
710
+ - [ ] Skip links for bypassing navigation
711
+ - [ ] Screen reader labels on all icons, buttons, and custom controls
712
+ - [ ] Alt text prompts for user-uploaded images
713
+ - [ ] Support for text resizing up to 200%
714
+ - [ ] Touch targets minimum 24x24 px (44x44 px recommended)
715
+ - [ ] No autoplay media without pause/stop control
716
+ - [ ] Color is never the sole indicator of state
717
+
718
+ ### Cross-Platform
719
+ - [ ] Core interactions identical across platforms
720
+ - [ ] Platform-specific navigation conventions respected
721
+ - [ ] State synchronized in real time (read status, notifications, drafts)
722
+ - [ ] Design tokens shared via cross-platform design system
723
+ - [ ] Every view has a shareable permalink (web)
724
+
725
+ ---
726
+
727
+ ## References and Sources
728
+
729
+ - [Nielsen Norman Group — Social Media UX: User-Centered Social Strategies](https://www.nngroup.com/reports/social-media-user-experience/)
730
+ - [Nielsen Norman Group — Design Patterns Topic](https://www.nngroup.com/topic/design-patterns/)
731
+ - [Nielsen Norman Group — State of UX 2026](https://www.nngroup.com/articles/state-of-ux-2026/)
732
+ - [W3C WAI — Guidelines to Make Your Social Media Platform Accessible (ATAG)](https://www.w3.org/WAI/standards-guidelines/atag/social-media/)
733
+ - [W3C WAI — Authoring Tool Accessibility Guidelines (ATAG) Overview](https://www.w3.org/WAI/standards-guidelines/atag/)
734
+ - [W3C WAI — WCAG 2.2 Overview](https://www.w3.org/WAI/standards-guidelines/wcag/)
735
+ - [Ethics of UX Design in Social Media — USC Viterbi](https://vce.usc.edu/semester/fall-2025/ethics-of-ux-design-in-social-media/)
736
+ - [Dark Patterns in 2025 — commonUX](https://www.commonux.org/ux-ethics/dark-patterns-in-2025-manipulation-by-design-or-design-for-manipulation/)
737
+ - [Algorithmic Addiction by Design — arXiv (2025)](https://arxiv.org/abs/2505.00054)
738
+ - [Content Moderation Best Practices for 2025 — Arena](https://arena.im/uncategorized/content-moderation-best-practices-for-2025/)
739
+ - [Content Moderation and Community Standards: Policy vs. User Experiences — Wiley (2025)](https://onlinelibrary.wiley.com/doi/abs/10.1002/poi3.70006)
740
+ - [Mastodon Antiviral Design — UX Collective](https://uxdesign.cc/mastodon-is-antiviral-design-42f090ab8d51)
741
+ - [Social Media Accessibility Best Practices — AccessibilityChecker.org](https://www.accessibilitychecker.org/blog/social-media-accessibility/)
742
+ - [Digital Accessibility in 2025: A Screen Reader User's Honest Take — UsableNet](https://blog.usablenet.com/a-screen-reader-users-honest-take)
743
+ - [Micro-interactions in UX — Interaction Design Foundation](https://ixdf.org/literature/article/micro-interactions-ux)
744
+ - [Profile Page Design Examples — Eleken](https://www.eleken.co/blog-posts/profile-page-design)
745
+ - [Breaking Down the UX of Social Media Platforms — Niamh O'Shea (2025)](https://niamh-oshea.medium.com/breaking-down-the-ux-of-social-media-platforms-1a966408dc4b)
746
+ - [Cross-Platform Design: Creating Seamless Experiences — TMDesign](https://medium.com/theymakedesign/cross-platform-design-creating-seamless-experiences-cadd77dba317)
747
+ - [Apple Human Interface Guidelines — Design for iOS](https://developer.apple.com/design/human-interface-guidelines/)
748
+ - [Google Material Design 3](https://m3.material.io/)