@shaykec/bridge 0.4.25 → 0.4.26

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 (319) hide show
  1. package/journeys/ai-engineer.yaml +34 -0
  2. package/journeys/backend-developer.yaml +36 -0
  3. package/journeys/business-analyst.yaml +37 -0
  4. package/journeys/devops-engineer.yaml +37 -0
  5. package/journeys/engineering-manager.yaml +44 -0
  6. package/journeys/frontend-developer.yaml +41 -0
  7. package/journeys/fullstack-developer.yaml +49 -0
  8. package/journeys/mobile-developer.yaml +42 -0
  9. package/journeys/product-manager.yaml +35 -0
  10. package/journeys/qa-engineer.yaml +37 -0
  11. package/journeys/ux-designer.yaml +43 -0
  12. package/modules/README.md +52 -0
  13. package/modules/accessibility-fundamentals/content.md +126 -0
  14. package/modules/accessibility-fundamentals/exercises.md +88 -0
  15. package/modules/accessibility-fundamentals/module.yaml +43 -0
  16. package/modules/accessibility-fundamentals/quick-ref.md +71 -0
  17. package/modules/accessibility-fundamentals/quiz.md +100 -0
  18. package/modules/accessibility-fundamentals/resources.md +29 -0
  19. package/modules/accessibility-fundamentals/walkthrough.md +80 -0
  20. package/modules/adr-writing/content.md +121 -0
  21. package/modules/adr-writing/exercises.md +81 -0
  22. package/modules/adr-writing/module.yaml +41 -0
  23. package/modules/adr-writing/quick-ref.md +57 -0
  24. package/modules/adr-writing/quiz.md +73 -0
  25. package/modules/adr-writing/resources.md +29 -0
  26. package/modules/adr-writing/walkthrough.md +64 -0
  27. package/modules/ai-agents/content.md +120 -0
  28. package/modules/ai-agents/exercises.md +82 -0
  29. package/modules/ai-agents/module.yaml +42 -0
  30. package/modules/ai-agents/quick-ref.md +60 -0
  31. package/modules/ai-agents/quiz.md +103 -0
  32. package/modules/ai-agents/resources.md +30 -0
  33. package/modules/ai-agents/walkthrough.md +85 -0
  34. package/modules/ai-assisted-research/content.md +136 -0
  35. package/modules/ai-assisted-research/exercises.md +80 -0
  36. package/modules/ai-assisted-research/module.yaml +42 -0
  37. package/modules/ai-assisted-research/quick-ref.md +67 -0
  38. package/modules/ai-assisted-research/quiz.md +73 -0
  39. package/modules/ai-assisted-research/resources.md +33 -0
  40. package/modules/ai-assisted-research/walkthrough.md +85 -0
  41. package/modules/ai-pair-programming/content.md +105 -0
  42. package/modules/ai-pair-programming/exercises.md +98 -0
  43. package/modules/ai-pair-programming/module.yaml +39 -0
  44. package/modules/ai-pair-programming/quick-ref.md +58 -0
  45. package/modules/ai-pair-programming/quiz.md +73 -0
  46. package/modules/ai-pair-programming/resources.md +34 -0
  47. package/modules/ai-pair-programming/walkthrough.md +117 -0
  48. package/modules/ai-test-generation/content.md +125 -0
  49. package/modules/ai-test-generation/exercises.md +98 -0
  50. package/modules/ai-test-generation/module.yaml +39 -0
  51. package/modules/ai-test-generation/quick-ref.md +65 -0
  52. package/modules/ai-test-generation/quiz.md +74 -0
  53. package/modules/ai-test-generation/resources.md +41 -0
  54. package/modules/ai-test-generation/walkthrough.md +100 -0
  55. package/modules/api-design/content.md +189 -0
  56. package/modules/api-design/exercises.md +84 -0
  57. package/modules/api-design/game.yaml +113 -0
  58. package/modules/api-design/module.yaml +45 -0
  59. package/modules/api-design/quick-ref.md +73 -0
  60. package/modules/api-design/quiz.md +100 -0
  61. package/modules/api-design/resources.md +55 -0
  62. package/modules/api-design/walkthrough.md +88 -0
  63. package/modules/clean-code/content.md +136 -0
  64. package/modules/clean-code/exercises.md +137 -0
  65. package/modules/clean-code/game.yaml +172 -0
  66. package/modules/clean-code/module.yaml +44 -0
  67. package/modules/clean-code/quick-ref.md +44 -0
  68. package/modules/clean-code/quiz.md +105 -0
  69. package/modules/clean-code/resources.md +40 -0
  70. package/modules/clean-code/walkthrough.md +78 -0
  71. package/modules/clean-code/workshop.yaml +149 -0
  72. package/modules/code-review/content.md +130 -0
  73. package/modules/code-review/exercises.md +95 -0
  74. package/modules/code-review/game.yaml +83 -0
  75. package/modules/code-review/module.yaml +42 -0
  76. package/modules/code-review/quick-ref.md +77 -0
  77. package/modules/code-review/quiz.md +105 -0
  78. package/modules/code-review/resources.md +40 -0
  79. package/modules/code-review/walkthrough.md +106 -0
  80. package/modules/daily-workflow/content.md +81 -0
  81. package/modules/daily-workflow/exercises.md +50 -0
  82. package/modules/daily-workflow/module.yaml +33 -0
  83. package/modules/daily-workflow/quick-ref.md +37 -0
  84. package/modules/daily-workflow/quiz.md +65 -0
  85. package/modules/daily-workflow/resources.md +38 -0
  86. package/modules/daily-workflow/walkthrough.md +83 -0
  87. package/modules/debugging-systematically/content.md +139 -0
  88. package/modules/debugging-systematically/exercises.md +91 -0
  89. package/modules/debugging-systematically/module.yaml +46 -0
  90. package/modules/debugging-systematically/quick-ref.md +59 -0
  91. package/modules/debugging-systematically/quiz.md +105 -0
  92. package/modules/debugging-systematically/resources.md +42 -0
  93. package/modules/debugging-systematically/walkthrough.md +84 -0
  94. package/modules/debugging-systematically/workshop.yaml +127 -0
  95. package/modules/demo-test/content.md +68 -0
  96. package/modules/demo-test/exercises.md +28 -0
  97. package/modules/demo-test/game.yaml +171 -0
  98. package/modules/demo-test/module.yaml +41 -0
  99. package/modules/demo-test/quick-ref.md +54 -0
  100. package/modules/demo-test/quiz.md +74 -0
  101. package/modules/demo-test/resources.md +21 -0
  102. package/modules/demo-test/walkthrough.md +122 -0
  103. package/modules/demo-test/workshop.yaml +31 -0
  104. package/modules/design-critique/content.md +93 -0
  105. package/modules/design-critique/exercises.md +71 -0
  106. package/modules/design-critique/module.yaml +41 -0
  107. package/modules/design-critique/quick-ref.md +63 -0
  108. package/modules/design-critique/quiz.md +73 -0
  109. package/modules/design-critique/resources.md +27 -0
  110. package/modules/design-critique/walkthrough.md +68 -0
  111. package/modules/design-patterns/content.md +335 -0
  112. package/modules/design-patterns/exercises.md +82 -0
  113. package/modules/design-patterns/game.yaml +55 -0
  114. package/modules/design-patterns/module.yaml +45 -0
  115. package/modules/design-patterns/quick-ref.md +44 -0
  116. package/modules/design-patterns/quiz.md +101 -0
  117. package/modules/design-patterns/resources.md +40 -0
  118. package/modules/design-patterns/walkthrough.md +64 -0
  119. package/modules/exploratory-testing/content.md +133 -0
  120. package/modules/exploratory-testing/exercises.md +88 -0
  121. package/modules/exploratory-testing/module.yaml +41 -0
  122. package/modules/exploratory-testing/quick-ref.md +68 -0
  123. package/modules/exploratory-testing/quiz.md +75 -0
  124. package/modules/exploratory-testing/resources.md +39 -0
  125. package/modules/exploratory-testing/walkthrough.md +87 -0
  126. package/modules/git/content.md +128 -0
  127. package/modules/git/exercises.md +53 -0
  128. package/modules/git/game.yaml +190 -0
  129. package/modules/git/module.yaml +44 -0
  130. package/modules/git/quick-ref.md +67 -0
  131. package/modules/git/quiz.md +89 -0
  132. package/modules/git/resources.md +49 -0
  133. package/modules/git/walkthrough.md +92 -0
  134. package/modules/git/workshop.yaml +145 -0
  135. package/modules/hiring-interviews/content.md +130 -0
  136. package/modules/hiring-interviews/exercises.md +88 -0
  137. package/modules/hiring-interviews/module.yaml +41 -0
  138. package/modules/hiring-interviews/quick-ref.md +68 -0
  139. package/modules/hiring-interviews/quiz.md +73 -0
  140. package/modules/hiring-interviews/resources.md +36 -0
  141. package/modules/hiring-interviews/walkthrough.md +75 -0
  142. package/modules/hooks/content.md +97 -0
  143. package/modules/hooks/exercises.md +69 -0
  144. package/modules/hooks/module.yaml +39 -0
  145. package/modules/hooks/quick-ref.md +93 -0
  146. package/modules/hooks/quiz.md +81 -0
  147. package/modules/hooks/resources.md +34 -0
  148. package/modules/hooks/walkthrough.md +105 -0
  149. package/modules/hooks/workshop.yaml +64 -0
  150. package/modules/incident-response/content.md +124 -0
  151. package/modules/incident-response/exercises.md +82 -0
  152. package/modules/incident-response/game.yaml +132 -0
  153. package/modules/incident-response/module.yaml +45 -0
  154. package/modules/incident-response/quick-ref.md +53 -0
  155. package/modules/incident-response/quiz.md +103 -0
  156. package/modules/incident-response/resources.md +40 -0
  157. package/modules/incident-response/walkthrough.md +82 -0
  158. package/modules/llm-fundamentals/content.md +114 -0
  159. package/modules/llm-fundamentals/exercises.md +83 -0
  160. package/modules/llm-fundamentals/module.yaml +42 -0
  161. package/modules/llm-fundamentals/quick-ref.md +64 -0
  162. package/modules/llm-fundamentals/quiz.md +103 -0
  163. package/modules/llm-fundamentals/resources.md +30 -0
  164. package/modules/llm-fundamentals/walkthrough.md +91 -0
  165. package/modules/one-on-ones/content.md +133 -0
  166. package/modules/one-on-ones/exercises.md +81 -0
  167. package/modules/one-on-ones/module.yaml +44 -0
  168. package/modules/one-on-ones/quick-ref.md +67 -0
  169. package/modules/one-on-ones/quiz.md +73 -0
  170. package/modules/one-on-ones/resources.md +37 -0
  171. package/modules/one-on-ones/walkthrough.md +69 -0
  172. package/modules/package.json +9 -0
  173. package/modules/prioritization-frameworks/content.md +130 -0
  174. package/modules/prioritization-frameworks/exercises.md +93 -0
  175. package/modules/prioritization-frameworks/module.yaml +41 -0
  176. package/modules/prioritization-frameworks/quick-ref.md +77 -0
  177. package/modules/prioritization-frameworks/quiz.md +73 -0
  178. package/modules/prioritization-frameworks/resources.md +32 -0
  179. package/modules/prioritization-frameworks/walkthrough.md +69 -0
  180. package/modules/prompt-engineering/content.md +123 -0
  181. package/modules/prompt-engineering/exercises.md +82 -0
  182. package/modules/prompt-engineering/game.yaml +101 -0
  183. package/modules/prompt-engineering/module.yaml +45 -0
  184. package/modules/prompt-engineering/quick-ref.md +65 -0
  185. package/modules/prompt-engineering/quiz.md +105 -0
  186. package/modules/prompt-engineering/resources.md +36 -0
  187. package/modules/prompt-engineering/walkthrough.md +81 -0
  188. package/modules/rag-fundamentals/content.md +111 -0
  189. package/modules/rag-fundamentals/exercises.md +80 -0
  190. package/modules/rag-fundamentals/module.yaml +45 -0
  191. package/modules/rag-fundamentals/quick-ref.md +58 -0
  192. package/modules/rag-fundamentals/quiz.md +75 -0
  193. package/modules/rag-fundamentals/resources.md +34 -0
  194. package/modules/rag-fundamentals/walkthrough.md +75 -0
  195. package/modules/react-fundamentals/content.md +140 -0
  196. package/modules/react-fundamentals/exercises.md +81 -0
  197. package/modules/react-fundamentals/game.yaml +145 -0
  198. package/modules/react-fundamentals/module.yaml +45 -0
  199. package/modules/react-fundamentals/quick-ref.md +62 -0
  200. package/modules/react-fundamentals/quiz.md +106 -0
  201. package/modules/react-fundamentals/resources.md +42 -0
  202. package/modules/react-fundamentals/walkthrough.md +89 -0
  203. package/modules/react-fundamentals/workshop.yaml +112 -0
  204. package/modules/react-native-fundamentals/content.md +141 -0
  205. package/modules/react-native-fundamentals/exercises.md +79 -0
  206. package/modules/react-native-fundamentals/module.yaml +42 -0
  207. package/modules/react-native-fundamentals/quick-ref.md +60 -0
  208. package/modules/react-native-fundamentals/quiz.md +61 -0
  209. package/modules/react-native-fundamentals/resources.md +24 -0
  210. package/modules/react-native-fundamentals/walkthrough.md +84 -0
  211. package/modules/registry.yaml +1650 -0
  212. package/modules/risk-management/content.md +162 -0
  213. package/modules/risk-management/exercises.md +86 -0
  214. package/modules/risk-management/module.yaml +41 -0
  215. package/modules/risk-management/quick-ref.md +82 -0
  216. package/modules/risk-management/quiz.md +73 -0
  217. package/modules/risk-management/resources.md +40 -0
  218. package/modules/risk-management/walkthrough.md +67 -0
  219. package/modules/running-effective-standups/content.md +119 -0
  220. package/modules/running-effective-standups/exercises.md +79 -0
  221. package/modules/running-effective-standups/module.yaml +40 -0
  222. package/modules/running-effective-standups/quick-ref.md +61 -0
  223. package/modules/running-effective-standups/quiz.md +73 -0
  224. package/modules/running-effective-standups/resources.md +36 -0
  225. package/modules/running-effective-standups/walkthrough.md +76 -0
  226. package/modules/solid-principles/content.md +154 -0
  227. package/modules/solid-principles/exercises.md +107 -0
  228. package/modules/solid-principles/module.yaml +42 -0
  229. package/modules/solid-principles/quick-ref.md +50 -0
  230. package/modules/solid-principles/quiz.md +102 -0
  231. package/modules/solid-principles/resources.md +39 -0
  232. package/modules/solid-principles/walkthrough.md +84 -0
  233. package/modules/sprint-planning/content.md +142 -0
  234. package/modules/sprint-planning/exercises.md +79 -0
  235. package/modules/sprint-planning/game.yaml +84 -0
  236. package/modules/sprint-planning/module.yaml +44 -0
  237. package/modules/sprint-planning/quick-ref.md +76 -0
  238. package/modules/sprint-planning/quiz.md +102 -0
  239. package/modules/sprint-planning/resources.md +39 -0
  240. package/modules/sprint-planning/walkthrough.md +75 -0
  241. package/modules/sql-fundamentals/content.md +160 -0
  242. package/modules/sql-fundamentals/exercises.md +87 -0
  243. package/modules/sql-fundamentals/game.yaml +105 -0
  244. package/modules/sql-fundamentals/module.yaml +45 -0
  245. package/modules/sql-fundamentals/quick-ref.md +53 -0
  246. package/modules/sql-fundamentals/quiz.md +103 -0
  247. package/modules/sql-fundamentals/resources.md +42 -0
  248. package/modules/sql-fundamentals/walkthrough.md +92 -0
  249. package/modules/sql-fundamentals/workshop.yaml +109 -0
  250. package/modules/stakeholder-communication/content.md +186 -0
  251. package/modules/stakeholder-communication/exercises.md +87 -0
  252. package/modules/stakeholder-communication/module.yaml +38 -0
  253. package/modules/stakeholder-communication/quick-ref.md +89 -0
  254. package/modules/stakeholder-communication/quiz.md +73 -0
  255. package/modules/stakeholder-communication/resources.md +41 -0
  256. package/modules/stakeholder-communication/walkthrough.md +74 -0
  257. package/modules/system-design/content.md +149 -0
  258. package/modules/system-design/exercises.md +83 -0
  259. package/modules/system-design/game.yaml +95 -0
  260. package/modules/system-design/module.yaml +46 -0
  261. package/modules/system-design/quick-ref.md +59 -0
  262. package/modules/system-design/quiz.md +102 -0
  263. package/modules/system-design/resources.md +46 -0
  264. package/modules/system-design/walkthrough.md +90 -0
  265. package/modules/team-topologies/content.md +166 -0
  266. package/modules/team-topologies/exercises.md +85 -0
  267. package/modules/team-topologies/module.yaml +41 -0
  268. package/modules/team-topologies/quick-ref.md +61 -0
  269. package/modules/team-topologies/quiz.md +101 -0
  270. package/modules/team-topologies/resources.md +37 -0
  271. package/modules/team-topologies/walkthrough.md +76 -0
  272. package/modules/technical-debt/content.md +111 -0
  273. package/modules/technical-debt/exercises.md +92 -0
  274. package/modules/technical-debt/module.yaml +39 -0
  275. package/modules/technical-debt/quick-ref.md +60 -0
  276. package/modules/technical-debt/quiz.md +73 -0
  277. package/modules/technical-debt/resources.md +25 -0
  278. package/modules/technical-debt/walkthrough.md +94 -0
  279. package/modules/technical-mentoring/content.md +128 -0
  280. package/modules/technical-mentoring/exercises.md +84 -0
  281. package/modules/technical-mentoring/module.yaml +41 -0
  282. package/modules/technical-mentoring/quick-ref.md +74 -0
  283. package/modules/technical-mentoring/quiz.md +73 -0
  284. package/modules/technical-mentoring/resources.md +33 -0
  285. package/modules/technical-mentoring/walkthrough.md +65 -0
  286. package/modules/test-strategy/content.md +136 -0
  287. package/modules/test-strategy/exercises.md +84 -0
  288. package/modules/test-strategy/game.yaml +99 -0
  289. package/modules/test-strategy/module.yaml +45 -0
  290. package/modules/test-strategy/quick-ref.md +66 -0
  291. package/modules/test-strategy/quiz.md +99 -0
  292. package/modules/test-strategy/resources.md +60 -0
  293. package/modules/test-strategy/walkthrough.md +97 -0
  294. package/modules/test-strategy/workshop.yaml +96 -0
  295. package/modules/typescript-fundamentals/content.md +127 -0
  296. package/modules/typescript-fundamentals/exercises.md +79 -0
  297. package/modules/typescript-fundamentals/game.yaml +111 -0
  298. package/modules/typescript-fundamentals/module.yaml +45 -0
  299. package/modules/typescript-fundamentals/quick-ref.md +55 -0
  300. package/modules/typescript-fundamentals/quiz.md +104 -0
  301. package/modules/typescript-fundamentals/resources.md +42 -0
  302. package/modules/typescript-fundamentals/walkthrough.md +71 -0
  303. package/modules/typescript-fundamentals/workshop.yaml +146 -0
  304. package/modules/user-story-mapping/content.md +123 -0
  305. package/modules/user-story-mapping/exercises.md +87 -0
  306. package/modules/user-story-mapping/module.yaml +41 -0
  307. package/modules/user-story-mapping/quick-ref.md +64 -0
  308. package/modules/user-story-mapping/quiz.md +73 -0
  309. package/modules/user-story-mapping/resources.md +29 -0
  310. package/modules/user-story-mapping/walkthrough.md +86 -0
  311. package/modules/writing-prds/content.md +133 -0
  312. package/modules/writing-prds/exercises.md +93 -0
  313. package/modules/writing-prds/game.yaml +83 -0
  314. package/modules/writing-prds/module.yaml +44 -0
  315. package/modules/writing-prds/quick-ref.md +77 -0
  316. package/modules/writing-prds/quiz.md +103 -0
  317. package/modules/writing-prds/resources.md +30 -0
  318. package/modules/writing-prds/walkthrough.md +87 -0
  319. package/package.json +1 -1
@@ -0,0 +1,122 @@
1
+ # Demo Test Walkthrough
2
+
3
+ ## Step 1: Terminal Practice
4
+
5
+ <!-- hint:terminal -->
6
+
7
+ **Task:** Create a file called `demo.txt` with the text "Socrates demo" inside it.
8
+
9
+ **Question:** What command would you use to create a file with specific content from the terminal? Can you think of more than one way?
10
+
11
+ **Checkpoint:** The user should demonstrate using echo with redirection or a heredoc. Accept any valid approach (echo, printf, cat, etc.).
12
+
13
+ ---
14
+
15
+ ## Step 2: Mermaid Diagram
16
+
17
+ <!-- hint:diagram mermaid-type="flowchart" topic="Three tiers of Socrates: Full, Canvas, Terminal" -->
18
+
19
+ **Task:** Look at the diagram showing Socrates's three tiers.
20
+
21
+ **Question:** Why do you think the system is designed with three tiers instead of just one? What happens if the canvas is unavailable?
22
+
23
+ **Checkpoint:** The user should understand progressive enhancement — terminal always works, canvas adds visuals, extension adds context awareness.
24
+
25
+ ---
26
+
27
+ ## Step 3: Smart Buttons
28
+
29
+ <!-- hint:buttons type="single" options="Terminal,Canvas,Full" -->
30
+
31
+ **Task:** Choose which tier you think is the most important for a teaching platform.
32
+
33
+ **Question:** If you could only keep one tier, which would it be and why?
34
+
35
+ **Checkpoint:** Any answer is valid as long as the user reasons about trade-offs. Terminal is the baseline; canvas adds engagement; full adds context.
36
+
37
+ ---
38
+
39
+ ## Step 4: Info Card
40
+
41
+ <!-- hint:card type="concept" title="Socratic Method" -->
42
+
43
+ **Task:** Read the concept card about the Socratic method.
44
+
45
+ **Question:** How is asking questions different from giving direct answers when it comes to learning? Can you think of a time when a question helped you understand something better than an explanation would have?
46
+
47
+ **Checkpoint:** The user should articulate that questions force active thinking and deeper understanding compared to passive reading.
48
+
49
+ ---
50
+
51
+ ## Step 5: Code Snippet
52
+
53
+ <!-- hint:code language="javascript" highlight="2,3" -->
54
+
55
+ **Task:** Look at this code snippet and identify what the highlighted lines do.
56
+
57
+ **Question:** What pattern does this code follow? Why might the highlighted lines be important?
58
+
59
+ **Checkpoint:** The user should be able to read highlighted code and explain its purpose.
60
+
61
+ ---
62
+
63
+ ## Step 6: Smart List
64
+
65
+ <!-- hint:list style="cards" -->
66
+
67
+ **Task:** Review the list of Socrates element types.
68
+
69
+ **Question:** Which element type do you think is most effective for learning — quizzes, games, terminals, or diagrams? Why?
70
+
71
+ **Checkpoint:** The user should reason about different learning styles and how each element serves a different purpose.
72
+
73
+ ---
74
+
75
+ ## Step 7: Step Tracker
76
+
77
+ <!-- hint:steps -->
78
+ <!-- hint:progress -->
79
+
80
+ **Task:** Check your progress through this walkthrough.
81
+
82
+ **Question:** You're past the halfway point. What have you learned so far about how Socrates structures a lesson?
83
+
84
+ **Checkpoint:** The user should recognize the pattern: each step introduces a concept, asks a question, and validates understanding.
85
+
86
+ ---
87
+
88
+ ## Step 8: Web Embed
89
+
90
+ <!-- hint:embed url="https://example.com" -->
91
+
92
+ **Embed:** https://example.com
93
+
94
+ **Task:** Observe how external content can be embedded directly in a lesson.
95
+
96
+ **Question:** When would embedding an external resource be more useful than describing it in text? What are the trade-offs?
97
+
98
+ **Checkpoint:** The user should mention interactivity, visual learning, and the risk of external content becoming unavailable.
99
+
100
+ ---
101
+
102
+ ## Step 9: Inline Quiz
103
+
104
+ <!-- hint:quiz inline -->
105
+
106
+ **Task:** Answer a quick inline quiz question.
107
+
108
+ **Question:** What does XP stand for in Socrates's gamification system?
109
+
110
+ **Checkpoint:** Experience Points. The user should understand XP drives belt progression.
111
+
112
+ ---
113
+
114
+ ## Step 10: Celebration
115
+
116
+ <!-- hint:celebrate -->
117
+
118
+ **Task:** You've completed the full walkthrough! Every element type has been exercised.
119
+
120
+ **Question:** Looking back at all 10 steps, which teaching element felt most engaging to you? Which would you want more of in a real module?
121
+
122
+ **Checkpoint:** Any thoughtful reflection is valid. This step tests the celebration/completion visual.
@@ -0,0 +1,31 @@
1
+ scenarios:
2
+ - id: create-greeting
3
+ title: "Build a Greeting Script"
4
+ difficulty: beginner
5
+ xp: 20
6
+ setup: []
7
+ files:
8
+ - name: greet.sh
9
+ content: |
10
+ #!/bin/bash
11
+ # TODO: Accept a name argument and print a greeting
12
+ echo "Hello, World!"
13
+ language: bash
14
+ readonly: false
15
+ task: "Modify greet.sh to accept a name as the first argument ($1) and print 'Hello, <name>!' instead of 'Hello, World!'. If no argument is provided, default to 'World'."
16
+ validations:
17
+ - label: "Script accepts a name argument"
18
+ check: output-contains
19
+ pattern: "\\$1|\\${1}"
20
+ - label: "Default fallback to World"
21
+ check: output-contains
22
+ pattern: "World|:-|default"
23
+ - label: "Greeting printed correctly"
24
+ check: output-contains
25
+ pattern: "Hello,"
26
+ hints:
27
+ - "Use ${1:-World} to provide a default value when no argument is given."
28
+ - "The full line: echo \"Hello, ${1:-World}!\""
29
+ agent_prompts:
30
+ on_start: "What does the :- syntax do in bash parameter expansion? Why is a default value useful?"
31
+ on_complete: "How would you extend this to accept both a first name and last name? What about validating the input?"
@@ -0,0 +1,93 @@
1
+ # Design Critique — Structured Feedback That Improves Work
2
+
3
+ <!-- hint:slides topic="Design critique: critique vs criticism, Liz Lerman Critical Response Process, I Like/I Wish/What If, and facilitation tips" slides="4" -->
4
+
5
+ ## Why Critique Matters
6
+
7
+ Design critique is a collaborative process for evaluating design work and generating actionable feedback. Done well, it improves outcomes, builds shared understanding, and creates a culture where feedback is valued. Done poorly, it demoralizes designers and produces watered-down "design by committee" results.
8
+
9
+ ## Critique vs Criticism
10
+
11
+ | Critique | Criticism |
12
+ |----------|-----------|
13
+ | Goal-oriented: improve the work | Emotion-driven: express opinion |
14
+ | Specific, tied to principles | Vague ("I don't like it") |
15
+ | Offers alternatives | Only identifies problems |
16
+ | Separates person from work | Often feels personal |
17
+ | Invites dialogue | Shuts down conversation |
18
+
19
+ **Key insight:** Criticism judges; critique analyzes and helps the designer think through solutions.
20
+
21
+ ## Liz Lerman's Critical Response Process
22
+
23
+ Liz Lerman's Critical Response Process (CRP) provides four clear steps for structured feedback:
24
+
25
+ 1. **Statements of meaning** — What resonates? What stands out? (No opinions yet.)
26
+ 2. **Artist as questioner** — The designer asks their own questions about the work.
27
+ 3. **Neutral questions** — Audience asks questions that begin with curiosity, not opinion.
28
+ 4. **Permissioned opinions** — Only after permission, specific suggestions may be offered.
29
+
30
+ ```mermaid
31
+ flowchart TD
32
+ A[Work Presented] --> B[Statements of Meaning]
33
+ B --> C[Artist As Questioner]
34
+ C --> D[Neutral Questions]
35
+ D --> E{Permission Given?}
36
+ E -->|Yes| F[Opinions / Suggestions]
37
+ E -->|No| G[End Session]
38
+ F --> G
39
+ ```
40
+
41
+ ## Structured Feedback Frameworks
42
+
43
+ ### I Like / I Wish / What If
44
+
45
+ A simple framework to balance positivity with constructive suggestions:
46
+
47
+ - **I like...** — What works well (anchors feedback in strengths).
48
+ - **I wish...** — A specific improvement, phrased as desire not complaint.
49
+ - **What if...** — Open-ended alternatives that spark new ideas.
50
+
51
+ **Example:** "I like how the primary CTA stands out. I wish the secondary actions had clearer hierarchy. What if we grouped related actions under a menu?"
52
+
53
+ ### Rose / Thorn / Bud
54
+
55
+ - **Rose** — Something that's working well.
56
+ - **Thorn** — A problem or concern.
57
+ - **Bud** — Potential or opportunity not yet realized.
58
+
59
+ ## Running Effective Critique Sessions
60
+
61
+ 1. **Set the stage** — Clarify the goal (e.g., "We're deciding whether this flow solves the checkout problem").
62
+ 2. **Define constraints** — What's on/off the table? Scope the feedback.
63
+ 3. **Establish rules** — No "I don't like" without reasoning; reference principles (e.g., WCAG, user research).
64
+ 4. **Time-box** — 15–30 minutes per artifact keeps focus.
65
+ 5. **Document** — Capture decisions and action items. What will change?
66
+
67
+ ## Giving Feedback
68
+
69
+ - **Be specific** — "The contrast ratio fails WCAG AA" > "It's hard to read."
70
+ - **Reference principles** — Cite usability heuristics, accessibility standards, or user research.
71
+ - **Suggest alternatives** — Don't just say "change this"; offer a direction.
72
+ - **Separate person from work** — Critique the design, not the designer.
73
+
74
+ ## Receiving Feedback
75
+
76
+ - **Listen first** — Don't defend or explain during feedback. Take notes.
77
+ - **Clarify** — Ask neutral questions: "What specifically feels unclear?"
78
+ - **Thank** — Acknowledge the intent to help, even when you disagree.
79
+ - **Decide later** — You don't have to accept every suggestion; decide after reflection.
80
+
81
+ ## Common Anti-Patterns
82
+
83
+ | Anti-pattern | Why it fails |
84
+ |--------------|--------------|
85
+ | **Subjective opinions without reasoning** | "I don't like blue" gives no actionable direction. |
86
+ | **Design by committee** | Everyone's opinion gets equal weight; the design loses coherence. |
87
+ | **Feedback too late** | Critique after implementation is costly; critique early and often. |
88
+ | **Missing context** | Feedback without knowing goals, users, or constraints is useless. |
89
+ | **HiPPO (Highest Paid Person's Opinion)** | One voice overrides evidence and process. |
90
+
91
+ ## Summary
92
+
93
+ Design critique is a skill. Use structured processes (CRP, I Like/I Wish/What If) to ensure feedback is specific, principle-based, and constructive. Run focused sessions, give permission for opinions, and document outcomes. The goal is better work, not consensus for its own sake.
@@ -0,0 +1,71 @@
1
+ # Design Critique Exercises
2
+
3
+ ## Exercise 1: Convert Criticism to Critique
4
+
5
+ **Task:** Take these criticism statements and rewrite them as critique. Make them specific, principle-based, and include at least one alternative.
6
+
7
+ - "I don't like the layout."
8
+ - "The colors are wrong."
9
+ - "This is confusing."
10
+
11
+ **Validation:**
12
+ - [ ] Each rewrite references a principle (e.g., usability, accessibility, hierarchy)
13
+ - [ ] Each rewrite is specific about what feels wrong and why
14
+ - [ ] Each rewrite suggests at least one alternative direction
15
+
16
+ **Hints:**
17
+ 1. "Layout" → Which element? Alignment? Hierarchy? White space?
18
+ 2. "Colors" → Contrast? Brand? Accessibility?
19
+ 3. "Confusing" → Which step? What's the user trying to do?
20
+
21
+ ---
22
+
23
+ ## Exercise 2: Facilitate a CRP Session
24
+
25
+ **Task:** Facilitate a 15-minute Critical Response Process session with 2–3 colleagues. Use a real design artifact (screen, flow, or component). Document the output.
26
+
27
+ **Validation:**
28
+ - [ ] All four CRP steps were completed in order
29
+ - [ ] "Statements of meaning" contained no opinions or suggestions
30
+ - [ ] "Permissioned opinions" were only given after explicit permission
31
+ - [ ] At least 2–3 actionable next steps were documented
32
+
33
+ **Hints:**
34
+ 1. Print or share the CRP steps so everyone can see them
35
+ 2. If someone gives an opinion early, gently redirect: "Let's save opinions for step 4"
36
+ 3. Capture notes in a shared doc for the designer
37
+
38
+ ---
39
+
40
+ ## Exercise 3: Spot the Anti-Patterns
41
+
42
+ **Task:** Read this feedback transcript and identify at least three anti-patterns (subjective opinion without reasoning, design by committee, missing context, HiPPO, etc.). Rewrite one piece of feedback to be constructive.
43
+
44
+ **Sample transcript:**
45
+ > "I think we should make the button bigger." / "Actually, I liked the smaller one." / "The CEO said she wants it blue." / "Let's just try both and see."
46
+
47
+ **Validation:**
48
+ - [ ] At least three anti-patterns identified with labels
49
+ - [ ] One piece of feedback rewritten to reference principles and suggest alternatives
50
+ - [ ] The rewrite would help the designer take action
51
+
52
+ **Hints:**
53
+ 1. "I think" + no reasoning = subjective opinion
54
+ 2. "The CEO said" without evidence = HiPPO
55
+ 3. "Try both" without criteria = design by committee
56
+
57
+ ---
58
+
59
+ ## Exercise 4: Give Principle-Based Feedback
60
+
61
+ **Task:** Choose a design (from a portfolio, Dribbble, or a real project). Write three pieces of feedback that each reference a specific principle: one usability heuristic (Nielsen), one accessibility guideline (WCAG), and one visual design principle (e.g., hierarchy, contrast).
62
+
63
+ **Validation:**
64
+ - [ ] Each feedback cites a named principle or guideline
65
+ - [ ] Each feedback is specific to an element or pattern in the design
66
+ - [ ] Each feedback suggests what would improve compliance or effectiveness
67
+
68
+ **Hints:**
69
+ 1. Nielsen's heuristics: visibility, match real world, user control, consistency, error prevention, recognition over recall, flexibility, aesthetic design, error recovery, help
70
+ 2. WCAG: contrast ratios, focus order, alt text, keyboard access
71
+ 3. Visual: F-pattern, hierarchy, proximity, alignment
@@ -0,0 +1,41 @@
1
+ slug: design-critique
2
+ title: "Design Critique -- Structured Feedback That Improves Work"
3
+ version: 1.0.0
4
+ description: "Learn to give and receive design feedback that actually improves outcomes."
5
+ category: ux-design
6
+ tags: [design-critique, feedback, ux-design, collaboration, design-process]
7
+ difficulty: beginner
8
+
9
+ xp:
10
+ read: 10
11
+ walkthrough: 30
12
+ exercise: 20
13
+ quiz: 15
14
+ quiz-perfect-bonus: 10
15
+
16
+ time:
17
+ quick: 5
18
+ read: 15
19
+ guided: 40
20
+
21
+ prerequisites: []
22
+ related: [code-review, user-story-mapping]
23
+
24
+ triggers:
25
+ - "How do I give design feedback?"
26
+ - "How do I run a design critique?"
27
+ - "What's the difference between critique and criticism?"
28
+ - "How do I improve my design review process?"
29
+
30
+ visuals:
31
+ diagrams: [diagram-flow, diagram-mermaid]
32
+ quiz-types: [quiz-drag-order, quiz-timed-choice]
33
+ slides: true
34
+
35
+ sources:
36
+ - url: "https://www.nngroup.com"
37
+ label: "Nielsen Norman Group"
38
+ type: docs
39
+ - url: "https://www.oreilly.com/library/view/discussing-design/9781491902398/"
40
+ label: "Discussing Design by Adam Connor"
41
+ type: book
@@ -0,0 +1,63 @@
1
+ # Design Critique Quick Reference
2
+
3
+ ## Critique vs Criticism
4
+
5
+ | Critique | Criticism |
6
+ |----------|-----------|
7
+ | Specific | Vague |
8
+ | Principle-based | Opinion-based |
9
+ | Suggests alternatives | Only identifies problems |
10
+ | Separates person from work | Feels personal |
11
+
12
+ ## Liz Lerman's Critical Response Process (CRP)
13
+
14
+ | Step | What Happens |
15
+ |------|--------------|
16
+ | 1. Statements of meaning | What resonates? (No opinions.) |
17
+ | 2. Artist as questioner | Designer asks their own questions |
18
+ | 3. Neutral questions | Audience asks curious, non-opinion questions |
19
+ | 4. Permissioned opinions | Suggestions only after artist invites them |
20
+
21
+ ## I Like / I Wish / What If
22
+
23
+ | Phrase | Purpose |
24
+ |--------|---------|
25
+ | **I like...** | Anchor in strengths |
26
+ | **I wish...** | Frame improvement as desire |
27
+ | **What if...** | Open-ended alternatives |
28
+
29
+ ## Giving Feedback
30
+
31
+ | Do | Don't |
32
+ |----|-------|
33
+ | Be specific | Say "I don't like it" without reasoning |
34
+ | Reference principles (WCAG, heuristics) | Give opinions without evidence |
35
+ | Suggest alternatives | Only identify problems |
36
+ | Separate person from work | Make it personal |
37
+
38
+ ## Receiving Feedback
39
+
40
+ | Do | Don't |
41
+ |----|-------|
42
+ | Listen and take notes | Defend during feedback |
43
+ | Ask clarifying questions | Accept everything blindly |
44
+ | Thank participants | Dismiss or argue |
45
+ | Decide later what to act on | Commit to changes in the moment |
46
+
47
+ ## Common Anti-Patterns
48
+
49
+ | Anti-pattern | Fix |
50
+ |--------------|-----|
51
+ | Subjective opinion without reasoning | Require principle or evidence |
52
+ | Design by committee | Prioritize against goals and users |
53
+ | Feedback too late | Critique early and often |
54
+ | Missing context | Set goal and constraints upfront |
55
+ | HiPPO overrides | Use process; cite evidence |
56
+
57
+ ## Critique Session Checklist
58
+
59
+ - [ ] Set goal and constraints
60
+ - [ ] Choose framework (CRP or I Like/I Wish/What If)
61
+ - [ ] Time-box (15–30 min per artifact)
62
+ - [ ] Document action items
63
+ - [ ] Assign next steps
@@ -0,0 +1,73 @@
1
+ # Design Critique Quiz
2
+
3
+ ## Question 1
4
+
5
+ What is the main difference between critique and criticism?
6
+
7
+ A) Critique is shorter; criticism is longer
8
+ B) Critique aims to improve the work with specific, principle-based feedback; criticism is often opinion without direction
9
+ C) Critique is given in person; criticism is written
10
+ D) Critique is for design; criticism is for code
11
+
12
+ <!-- ANSWER: B -->
13
+ <!-- EXPLANATION: Critique is goal-oriented and analyzes work to help the designer improve. It references principles, offers alternatives, and separates person from work. Criticism tends to be vague, emotional, and judgmental without actionable direction. -->
14
+
15
+ ## Question 2
16
+
17
+ In Liz Lerman's Critical Response Process, when may participants offer opinions or suggestions?
18
+
19
+ A) At any time during the session
20
+ B) Only after the artist grants permission
21
+ C) Only during "Statements of meaning"
22
+ D) Only if the facilitator approves
23
+
24
+ <!-- ANSWER: B -->
25
+ <!-- EXPLANATION: The fourth step of CRP is "Permissioned opinions." Participants may only offer opinions or suggestions after the artist explicitly invites them. This creates psychological safety and ensures feedback is welcomed, not imposed. -->
26
+
27
+ ## Question 3
28
+
29
+ Which feedback is the best example of critique?
30
+
31
+ A) "I don't like the blue. Change it."
32
+ B) "The primary CTA contrast is 3:1, which fails WCAG AA (4.5:1). Consider darkening the background or lightening the text."
33
+ C) "It looks bad."
34
+ D) "My boss said to make it bigger."
35
+
36
+ <!-- ANSWER: B -->
37
+ <!-- EXPLANATION: Good critique is specific (which element, what metric), references principles (WCAG), and suggests alternatives. Options A, C, and D are vague, subjective, or authority-based without reasoning. -->
38
+
39
+ ## Question 4
40
+
41
+ What does "I Wish" in the I Like / I Wish / What If framework accomplish?
42
+
43
+ A) It expresses negative feelings about the design
44
+ B) It frames a desired improvement as a wish, which feels less accusatory and more constructive
45
+ C) It allows the designer to ignore feedback
46
+ D) It replaces the need for "What If"
47
+
48
+ <!-- ANSWER: B -->
49
+ <!-- EXPLANATION: "I wish" reframes criticism as desire. Instead of "This is wrong," you say "I wish the hierarchy were clearer." This reduces defensiveness and keeps the focus on improvement rather than blame. -->
50
+
51
+ ## Question 5
52
+
53
+ Which is a common anti-pattern in design critique?
54
+
55
+ A) Giving feedback early in the process
56
+ B) Design by committee—everyone's opinion gets equal weight, producing incoherent results
57
+ C) Documenting action items after the session
58
+ D) Using a structured framework like CRP
59
+
60
+ <!-- ANSWER: B -->
61
+ <!-- EXPLANATION: Design by committee occurs when all feedback is treated equally without prioritization against goals, users, or evidence. The design loses coherence. Early feedback (A), documenting actions (C), and using frameworks (D) are good practices. -->
62
+
63
+ ## Question 6
64
+
65
+ When receiving feedback, what should the designer do during the feedback phase?
66
+
67
+ A) Defend each point as it's raised
68
+ B) Listen, take notes, ask clarifying questions—and decide what to act on later
69
+ C) Accept every suggestion immediately
70
+ D) End the session if feedback is too critical
71
+
72
+ <!-- ANSWER: B -->
73
+ <!-- EXPLANATION: Defending in real-time shuts down dialogue and makes people hesitant to share. The designer should listen first, clarify with neutral questions, thank participants, and decide later which feedback to incorporate. Not all feedback needs to be accepted. -->
@@ -0,0 +1,27 @@
1
+ # Design Critique — Resources
2
+
3
+ ## Videos
4
+
5
+ - [Liz Lerman's Critical Response Process](https://www.youtube.com/watch?v=ZQtZq19_OtM) — Introduction to CRP for creative feedback.
6
+
7
+ ## Articles and Readings
8
+
9
+ - [Design Critiques: Encourage a Positive Culture](https://www.nngroup.com/articles/design-critiques/) — Nielsen Norman Group. Step-by-step guide to effective critique sessions.
10
+ - [Derailed Design Critiques: Tactics for Getting Back on Track](https://www.nngroup.com/articles/derailed-design-critiques/) — Nielsen Norman Group. How to handle common pitfalls.
11
+ - [I Like, I Wish, I Wonder](https://www.designkit.org/methods/i-like-i-wish-i-wonder) — IDEO Design Kit. The "I wonder" variant of the framework.
12
+ - [Giving and Receiving Design Feedback](https://alistapart.com/article/giving-and-receiving-design-feedback/) — A List Apart. Practical tips for both roles.
13
+
14
+ ## Books
15
+
16
+ - **Discussing Design** by Adam Connor and Aaron Irizarry — Definitive guide to design critique: frameworks, facilitation, and building a culture of feedback. O'Reilly.
17
+
18
+ ## Tools
19
+
20
+ - [Miro](https://miro.com) — Collaborative boards for running remote critique sessions with sticky notes and diagrams.
21
+ - [Figma Comments](https://www.figma.com) — In-context feedback on design files; use with structured templates (I Like / I Wish / What If) for consistency.
22
+ - [Notion](https://www.notion.so) — Document critique outcomes, action items, and decisions for future reference.
23
+
24
+ ## Workshops and Templates
25
+
26
+ - [Critical Response Process Handout](https://lizlerman.com/critical-response-process/) — Liz Lerman's official CRP description and facilitation notes.
27
+ - [Design Critique Worksheet](https://www.nngroup.com/articles/ux-workshop/) — Template for structuring critique sessions with goals and documentation.
@@ -0,0 +1,68 @@
1
+ # Design Critique Walkthrough — Learn by Doing
2
+
3
+ ## Before We Begin
4
+
5
+ Critique is not criticism: criticism judges without direction; critique analyzes against principles and suggests alternatives. The goal is to improve the work while respecting the designer.
6
+
7
+ **Diagnostic question:** When someone has given you feedback on a design (or any creative work), what made it feel constructive? What made it feel dismissive or vague?
8
+
9
+ **Checkpoint:** You can distinguish one characteristic of critique (specific, principle-based, suggests alternatives) from criticism (vague, opinion-only).
10
+
11
+ ---
12
+
13
+ ## Step 1: Distinguish Critique from Criticism
14
+
15
+ Before giving feedback, you need to recognize the difference.
16
+
17
+ <!-- hint:buttons type="single" prompt="Which feedback type is more useful?" options="Vague opinion,Specific with alternatives" -->
18
+
19
+ **Task:** Look at a design artifact (wireframe, mockup, or flow). Write two pieces of feedback: one that is criticism (vague, opinion-based) and one that is critique (specific, principle-based, with alternatives).
20
+
21
+ **Question:** What makes your "critique" version more useful than the "criticism" version? How would the designer know what to change?
22
+
23
+ **Checkpoint:** The user can articulate that critique includes specificity, references to principles, and suggests alternatives—while criticism is opinion without direction.
24
+
25
+ ---
26
+
27
+ ## Step 2: Apply I Like / I Wish / What If
28
+
29
+ <!-- hint:card type="concept" title="I Like / I Wish / What If: affirm, improve, imagine" -->
30
+ <!-- hint:list style="numbered" -->
31
+
32
+ **Task:** Run a mini critique on a design (yours or a peer's) using only the I Like / I Wish / What If framework. Write at least one response in each category.
33
+
34
+ **Question:** Did "I wish" force you to be more constructive than a raw complaint? Why does "What if" open possibilities instead of shutting them down?
35
+
36
+ **Checkpoint:** The user produces feedback in all three categories and can explain how the framework shapes their language.
37
+
38
+ ---
39
+
40
+ ## Step 3: Practice Liz Lerman's Critical Response Process
41
+
42
+ <!-- hint:list style="numbered" -->
43
+
44
+ **Task:** Run a 10-minute critique session using CRP. Choose one person as the "artist" (designer) and one as facilitator. Go through: (1) Statements of meaning, (2) Artist as questioner, (3) Neutral questions, (4) Permissioned opinions.
45
+
46
+ **Question:** What was different about giving feedback only after "permission" was granted? Did it change how you phrased your opinions?
47
+
48
+ **Checkpoint:** The user completes all four steps and notices that permission creates psychological safety and more thoughtful suggestions.
49
+
50
+ ---
51
+
52
+ ## Step 4: Run a Design Critique on a Wireframe
53
+
54
+ **Task:** Conduct a 15-minute design critique on a real wireframe or prototype. Set the goal and constraints upfront. Use either I Like/I Wish/What If or CRP. Document at least three actionable next steps.
55
+
56
+ **Question:** At the end, can you list what specifically will change? If not, what was missing from the feedback?
57
+
58
+ **Checkpoint:** The session produces documented action items that are specific enough to implement.
59
+
60
+ ---
61
+
62
+ ## Step 5: Receive Feedback Without Defending
63
+
64
+ **Task:** Present your own design work to a partner and receive feedback. Your job: listen, take notes, ask clarifying questions. Do not defend or explain during the feedback phase.
65
+
66
+ **Question:** How did it feel to only listen? What would have happened if you had defended each point as it came up?
67
+
68
+ **Checkpoint:** The user completes the exercise without defending and can reflect on how listening changes the quality of feedback received.