@icarusmx/creta 1.5.12 → 1.5.14

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 (27) hide show
  1. package/bin/creta.js +31 -1
  2. package/lib/data/command-help/aws-ec2.js +34 -0
  3. package/lib/data/command-help/grep.js +76 -0
  4. package/lib/data/command-help/index.js +11 -1
  5. package/lib/data/command-help/lz.js +57 -0
  6. package/lib/executors/CommandHelpExecutor.js +6 -1
  7. package/lib/exercises/.claude/settings.local.json +12 -0
  8. package/lib/exercises/01-developing-muscle-for-nvim.md +528 -0
  9. package/lib/exercises/{iterm2-pane-navigation.md → 02-iterm2-pane-navigation.md} +1 -1
  10. package/lib/exercises/05-svelte-first-steps.md +1340 -0
  11. package/lib/exercises/{curl-and-pipes.md → 06-curl-and-pipes.md} +187 -72
  12. package/lib/exercises/07-claude-api-first-steps.md +855 -0
  13. package/lib/exercises/08-playwright-svelte-guide.md +1384 -0
  14. package/lib/exercises/09-docker-first-steps.md +1475 -0
  15. package/lib/exercises/{railway-deployment.md → 10-railway-deployment.md} +1 -0
  16. package/lib/exercises/{aws-billing-detective.md → 11-aws-billing-detective.md} +215 -35
  17. package/lib/exercises/12-install-skills.md +755 -0
  18. package/lib/exercises/13-shell-aliases.md +134 -0
  19. package/lib/exercises/README.md +187 -0
  20. package/lib/exercises/utils/booklet-2up.js +133 -0
  21. package/lib/exercises/utils/booklet-manual-duplex.js +159 -0
  22. package/lib/exercises/utils/booklet-simple.js +136 -0
  23. package/lib/exercises/utils/create-booklet.js +116 -0
  24. package/lib/scripts/aws-ec2-all.sh +58 -0
  25. package/package.json +3 -2
  26. /package/lib/exercises/{git-stash-workflow.md → 03-git-stash-workflow.md} +0 -0
  27. /package/lib/exercises/{array-object-manipulation.md → 04-array-object-manipulation.md} +0 -0
@@ -0,0 +1,528 @@
1
+ # Developing Muscle Memory for Neovim
2
+
3
+ <!-- vim: set foldmethod=marker foldlevel=0: -->
4
+
5
+ ## 📖 LazyVim Reading Guide {{{
6
+
7
+ **Start with:** `zM` (close all folds) → Navigate with `za` (toggle fold under cursor)
8
+
9
+ This document uses fold markers `{{{` and `}}}` for organized reading.
10
+
11
+ **Important keys for this exercise:**
12
+ - `j` - Move down line by line
13
+ - `}` - Jump to next paragraph (you'll practice this!)
14
+ - `{` - Jump to previous paragraph
15
+
16
+ }}}
17
+
18
+ ## 🎯 Purpose {{{
19
+
20
+ This exercise puts you on the vim mastery path by teaching keyboard-driven navigation.
21
+
22
+ **What you'll learn:**
23
+ - The `}` and `{` commands for paragraph jumping
24
+ - How to navigate without touching the mouse
25
+ - Building muscle memory for efficient code reading
26
+
27
+ }}}
28
+
29
+ ## Part 1: The `}` Command {{{
30
+
31
+ ### What `}` Does {{{
32
+
33
+ In vim/neovim, the **`}`** command jumps forward to the next paragraph (empty line-separated block of text).
34
+
35
+ Press `}` right now. You'll skip past this text block and land after the next empty line.
36
+
37
+ Go ahead - press it a few times. Get a feel for the rhythm.
38
+
39
+ }}}
40
+
41
+ ### Why This Matters {{{
42
+
43
+ When reading documentation, you don't need to read every word linearly. You're skimming for structure:
44
+
45
+ - Section titles
46
+ - Code blocks
47
+ - Key concepts
48
+ - Things that look relevant to your task
49
+
50
+ The `}` command lets you **skim at keyboard speed**. No mouse, no scrolling lag, no hand movement.
51
+
52
+ }}}
53
+
54
+ ### Practice Zone: Press `}` Multiple Times {{{
55
+
56
+ This section has several paragraphs separated by empty lines. Your task: Press `}` repeatedly and notice how you hop from paragraph to paragraph.
57
+
58
+ Here's the first paragraph. It's about nothing in particular - just giving you something to jump over. The goal is to feel the rhythm of movement.
59
+
60
+ Here's the second paragraph. Notice how `}` jumped you here instantly? That's the point. You're not scrolling pixel by pixel - you're jumping conceptually.
61
+
62
+ Third paragraph here. By now you should be feeling the pattern. Empty line = paragraph boundary. `}` = jump forward. `{` (which we'll cover later) = jump backward.
63
+
64
+ Fourth paragraph. Keep going! Press `}` again and skip past this one too.
65
+
66
+ Fifth paragraph. You're getting good at this! The movement should start to feel natural.
67
+
68
+ Sixth paragraph. Notice how your eyes don't even read every word anymore? You're scanning for structure, not content. That's efficient reading.
69
+
70
+ Seventh paragraph. This is what developers mean when they talk about "keyboard-driven workflow" - your hands never leave home row.
71
+
72
+ Eighth paragraph. Let's keep building content to jump through. The more paragraphs we have, the more you'll internalize this movement.
73
+
74
+ Ninth paragraph. Starting to feel natural yet? The key is **not thinking about it** - just pressing `}` whenever you want to skip forward.
75
+
76
+ Tenth paragraph. Alright, you've earned a break. But remember - this is just the foundation. Next we'll combine `}` with fold control.
77
+
78
+ }}}
79
+
80
+ ### The Backward Jump (`{`) {{{
81
+
82
+ Of course, you can also jump backward. The **`{`** command does the opposite of `}` - it jumps to the previous paragraph.
83
+
84
+ Try it now: Press `{` a few times and go back up through the paragraphs you just skipped.
85
+
86
+ This is useful when you:
87
+
88
+ - Jumped too far and need to backtrack
89
+ - Want to re-read something you skimmed past
90
+ - Are searching for something and need to move bidirectionally
91
+
92
+ }}}
93
+
94
+ ### Combining `}` and `{` for Bidirectional Scanning {{{
95
+
96
+ Now you have both directions. This means you can:
97
+
98
+ - **`}` `}` `}`** - Skip forward three paragraphs
99
+ - **`{` `{`** - Backtrack two paragraphs
100
+ - Find what you need without touching the mouse
101
+ # TODO: add zM command and za reference here.
102
+ This is the foundation of keyboard-driven navigation. Everything else builds on this.
103
+
104
+ }}}
105
+
106
+ ### Why We Started Here {{{
107
+
108
+ You might be wondering: "Why focus so much on `}` when this is a fold navigation guide?"
109
+
110
+ **Answer:** Because `}` is the **muscle memory foundation**. Before you can efficiently navigate 1,000-line files with folds, you need to be comfortable jumping around without thinking about it.
111
+
112
+ Folds are just **structure on top of paragraphs**. Once `}` is automatic, fold navigation will feel like a natural extension.
113
+
114
+ }}}
115
+
116
+ ### Practice Exercise {{{
117
+
118
+ Before moving on, do this:
119
+
120
+ 1. Press **`gg`** to jump to the top of this file
121
+ 2. Press **`}`** until you get back to this section
122
+ 3. Notice how you skimmed the entire file in ~10 keystrokes
123
+
124
+ That's the power of paragraph jumping. Now let's layer in fold control.
125
+
126
+ }}}
127
+
128
+ }}}
129
+
130
+ ## Part 2: Fold Control - The Overview Commands {{{
131
+
132
+ ### The `zM` Command (Close All Folds) {{{
133
+
134
+ **What it does:** Closes all folds in the file, leaving only top-level headers visible.
135
+
136
+ **Why it's powerful:** Instant table of contents. You see the structure of the entire file at a glance.
137
+
138
+ Before going into **`zM`** remember also **`za`**
139
+
140
+ **Try it now:**
141
+
142
+ 1. Press **`zM`**
143
+ 2. Watch this entire file collapse into just section headers
144
+ 3. You just turned a 400+ line file into ~20 lines of overview
145
+
146
+ This is **zoom-out mode**. You're seeing the forest, not the trees.
147
+
148
+ **When to use `zM`:**
149
+
150
+ - Just opened a new file and want to understand structure
151
+ - Got lost deep in a section and need to reorient
152
+ - Looking for a specific section but don't remember where it is
153
+ - Want to copy/paste a section header
154
+
155
+ }}}
156
+
157
+ ### The `za` Command (Toggle Current Fold) {{{
158
+
159
+ **What it does:** Opens or closes the fold your cursor is on.
160
+
161
+ **Why it's powerful:** Targeted exploration. Open only what matters, keep everything else collapsed.
162
+
163
+ **Try it now:**
164
+
165
+ 1. Make sure you pressed `zM` to collapse everything
166
+ 2. Move your cursor to a section header (use `j`/`k` or `}`)
167
+ 3. Press **`za`**
168
+ 4. Watch that section expand
169
+ 5. Press **`za`** again
170
+ 6. Watch it collapse
171
+
172
+ This is **zoom-in mode**. You're focusing on one thing at a time.
173
+
174
+ **The `za` rhythm:**
175
+
176
+ - See interesting header → **`za`** (open)
177
+ - Read the content
178
+ - Done reading → **`za`** (close)
179
+ - Move to next section
180
+
181
+ }}}
182
+
183
+ ### The `zR` Command (Open All Folds) {{{
184
+
185
+ **What it does:** Opens all folds in the file, showing everything.
186
+
187
+ **Why it's powerful:** Sometimes you need to see the full picture. Or search across all content.
188
+
189
+ **Try it now:**
190
+
191
+ 1. Press **`zR`**
192
+ 2. Watch the entire file expand
193
+
194
+ **When to use `zR`:**
195
+
196
+ - Searching for text (`:/ search term`)
197
+ - Need to compare content across sections
198
+ - Reading linearly from start to finish
199
+ - Copying large chunks of text
200
+
201
+ **Note:** After using `zR`, you can always press `zM` to collapse everything again. These commands are reversible and instant.
202
+
203
+ }}}
204
+
205
+ ### Combining `}` and Fold Commands - The Core Workflow {{{
206
+
207
+ Now we layer the two skills:
208
+
209
+ **The Exploration Pattern:**
210
+
211
+ 1. **`zM`** - Collapse everything (see overview)
212
+ 2. **`}` `}` `}`** - Jump between section headers
213
+ 3. **`za`** - Open interesting section
214
+ 4. Read what matters
215
+ 5. **`za`** - Close it
216
+ 6. Repeat
217
+
218
+ **Try this right now:**
219
+
220
+ 1. Press **`zM`** (collapse all)
221
+ 2. Press **`gg`** (go to top)
222
+ 3. Press **`}`** until you reach "Part 3: Precision Navigation"
223
+ 4. Press **`za`** (open that section)
224
+ 5. Skim the content
225
+ 6. Press **`za`** (close it)
226
+ 7. Press **`}`** to move to next section
227
+
228
+ Did you feel that? You just navigated ~200 lines in ~10 keystrokes.
229
+
230
+ **That's the workflow.** Everything else is just refinement.
231
+
232
+ }}}
233
+
234
+ ### Why This Changes Everything {{{
235
+
236
+ Before fold markers, navigating a large file meant:
237
+
238
+ - Scrolling (slow, imprecise)
239
+ - Ctrl+F searching (requires knowing exact text)
240
+ - Getting lost (no sense of structure)
241
+ - Context switching (opening multiple files)
242
+
243
+ With fold markers + LazyVim:
244
+
245
+ - **`zM`** = Instant table of contents
246
+ - **`}`** = Skip to what matters
247
+ - **`za`** = Read only relevant sections
248
+ - Never lose your place
249
+ - Never feel overwhelmed
250
+
251
+ This is **progressive disclosure in a text file**. It's the UX pattern that makes complex interfaces usable, now applied to documentation.
252
+
253
+ }}}
254
+
255
+ }}}
256
+
257
+ ## Part 3: Precision Navigation - Advanced Movement {{{
258
+
259
+ ### Go to Top (`gg`) and Bottom (`G`) {{{
260
+
261
+ **`gg`** - Jump to the first line of the file
262
+ **`G`** - Jump to the last line of the file
263
+
264
+ These are your **anchors**. No matter where you are, you can instantly return to the boundaries.
265
+
266
+ **When to use:**
267
+
268
+ - **`gg`** - Start over, return to overview
269
+ - **`G`** - See conclusion, check file end
270
+ - Combined with `zM` for instant reorientation
271
+
272
+ **Try it:**
273
+
274
+ 1. Press **`G`** (you're at the bottom)
275
+ 2. Press **`gg`** (back to top)
276
+ 3. Press **`zM`** (collapsed overview)
277
+ 4. Press **`G`** (see end of file, still collapsed)
278
+
279
+ }}}
280
+
281
+ ### Go to Line Number (`22G`) {{{
282
+
283
+ **Format:** `{number}G` - Jump to specific line number
284
+
285
+ **Examples:**
286
+
287
+ - **`22G`** - Jump to line 22
288
+ - **`150G`** - Jump to line 150
289
+ - **`1G`** - Same as `gg` (first line)
290
+
291
+ **When this is powerful:**
292
+
293
+ - Compiler errors: "Error on line 342" → **`342G`**
294
+ - Reviewing PR diffs: "Check line 89" → **`89G`**
295
+ - Debugging logs: "Line 1523 shows the issue" → **`1523G`**
296
+ - Documentation references: "See line 67 for example"
297
+
298
+ **Combined with folds:**
299
+
300
+ 1. Press **`zM`** (collapse all)
301
+ 2. Press **`150G`** (jump to line 150)
302
+ 3. Press **`za`** (open fold at that line)
303
+
304
+ You just navigated to a specific location in a 1,000-line file in **3 keystrokes**.
305
+
306
+ }}}
307
+
308
+ ### Relative Line Numbers (`22j`, `15k`) {{{
309
+
310
+ **Format:** `{number}j` or `{number}k` - Move N lines down/up
311
+
312
+ **Examples:**
313
+
314
+ - **`5j`** - Move 5 lines down
315
+ - **`10k`** - Move 10 lines up
316
+
317
+ **When this is useful:**
318
+
319
+ - You see something 5 lines down → **`5j`**
320
+ - Need to go back 3 lines → **`3k`**
321
+ - Scanning sections with precise movement
322
+
323
+ **Pro tip:** If you enable relative line numbers (`:set relativenumber`), you can see exactly how many lines away something is and jump directly.
324
+
325
+ }}}
326
+
327
+ ### Jump to Fold Boundaries (`]]`, `[[`, `]z`, `[z`) {{{
328
+
329
+ Now that you're comfortable with folds, let's add precision:
330
+
331
+ **`]]`** - Jump to **next fold start**
332
+ **`[[`** - Jump to **previous fold start**
333
+ **`]z`** - Jump to **end of current fold**
334
+ **`[z`** - Jump to **start of current fold**
335
+
336
+ **Scenarios:**
337
+
338
+ **Scenario 1: Scanning fold headers without opening**
339
+
340
+ 1. **`zM`** (collapse all)
341
+ 2. **`]]` `]]` `]]`** (jump between section starts)
342
+ 3. Faster than `}` when you want fold-to-fold movement
343
+
344
+ **Scenario 2: Check fold boundaries**
345
+
346
+ 1. Open a fold with **`za`**
347
+ 2. Press **`]z`** (jump to end of current fold)
348
+ 3. Press **`[z`** (jump back to start of fold)
349
+
350
+ **When to use:**
351
+
352
+ - **`]]` / `[[`** - Fast section-to-section navigation
353
+ - **`]z` / `[z`** - Understand fold scope
354
+ - Combined with `zM` for structural scanning
355
+
356
+ }}}
357
+
358
+ }}}
359
+
360
+ ## Part 4: Your Daily Workflow - Quick Reference {{{
361
+
362
+ ### The Standard Exploration Pattern {{{
363
+
364
+ ```
365
+ Open file → zM (overview)
366
+
367
+ }}}}} (scan headers)
368
+
369
+ za (open section)
370
+
371
+ Read content
372
+
373
+ za (close)
374
+
375
+ Repeat
376
+ ```
377
+
378
+ }}}
379
+
380
+ ### Common Workflows {{{
381
+
382
+ **1. Find Specific Section:**
383
+
384
+ ```
385
+ zM → }}} → za → read → za
386
+ ```
387
+
388
+ **2. Check File Structure:**
389
+
390
+ ```
391
+ gg → zM → G → gg
392
+ ```
393
+
394
+ **3. Jump to Known Line:**
395
+
396
+ ```
397
+ zM → 342G → za
398
+ ```
399
+
400
+ **4. Scan Multiple Sections:**
401
+
402
+ ```
403
+ zM → ]] ]] za → read → za → ]] za → read
404
+ ```
405
+
406
+ **5. Compare Two Sections:**
407
+
408
+ ```
409
+ zM → 100G → za → read → 250G → za → read
410
+ ```
411
+
412
+ }}}
413
+
414
+ }}}
415
+
416
+ ## Complete Command Reference {{{
417
+
418
+ ### Paragraph Navigation {{{
419
+ - **`}`** - Next paragraph
420
+ - **`{`** - Previous paragraph
421
+ }}}
422
+
423
+ ### Fold Control {{{
424
+ - **`zM`** - Close all folds (overview mode)
425
+ - **`zR`** - Open all folds (full view)
426
+ - **`za`** - Toggle current fold
427
+ - **`zo`** - Open current fold
428
+ - **`zc`** - Close current fold
429
+ }}}
430
+
431
+ ### Position Jumps {{{
432
+ - **`gg`** - First line
433
+ - **`G`** - Last line
434
+ - **`{number}G`** - Jump to line number (e.g., `22G`)
435
+ - **`{number}j`** - Move N lines down (e.g., `5j`)
436
+ - **`{number}k`** - Move N lines up (e.g., `10k`)
437
+ }}}
438
+
439
+ ### Fold Boundaries {{{
440
+ - **`]]`** - Next fold start
441
+ - **`[[`** - Previous fold start
442
+ - **`]z`** - End of current fold
443
+ - **`[z`** - Start of current fold
444
+ }}}
445
+
446
+ ### Pro Tips {{{
447
+ - **`Ctrl+d`** - Scroll half page down
448
+ - **`Ctrl+u`** - Scroll half page up
449
+ - **`%`** - Jump to matching bracket/fold marker
450
+ - **`:set foldlevel=1`** - Show level 1 folds only
451
+ }}}
452
+
453
+ }}}
454
+
455
+ ## What's Next? {{{
456
+
457
+ ### You've Built the Muscle Memory {{{
458
+
459
+ If you've been navigating this file using the commands as you learned them, you've already internalized the workflow. Your fingers know:
460
+
461
+ - **`zM`** when you need overview
462
+ - **`}`** when you want to skip forward
463
+ - **`za`** when you want to read something
464
+ - **`gg`** / **`G`** when you need anchors
465
+
466
+ That's it. That's the foundation.
467
+
468
+ }}}
469
+
470
+ ### Where to Practice {{{
471
+
472
+ **Other markdown files in this project:**
473
+
474
+ Look for files with fold markers (they'll have `{{{` and `}}}` in them):
475
+
476
+ ```bash
477
+ # Find all markdown files with fold markers
478
+ rg --type md '\{\{\{' -l
479
+ ```
480
+
481
+ **Your own notes:**
482
+
483
+ Start adding fold markers to your own documentation:
484
+
485
+ ```markdown
486
+ ## Section Name {{{
487
+
488
+ Content here...
489
+
490
+ }}}
491
+ ```
492
+
493
+ Add this vim modeline at the top of any markdown file:
494
+
495
+ ```markdown
496
+ <!-- vim: set foldmethod=marker foldlevel=0: -->
497
+ ```
498
+
499
+ Now your notes are navigable with the same workflow.
500
+
501
+ }}}
502
+
503
+ ### The Philosophy {{{
504
+
505
+ **Navigation is reading strategy.**
506
+
507
+ When you navigate well, you:
508
+
509
+ - Find what matters faster
510
+ - Understand structure before details
511
+ - Never feel overwhelmed
512
+ - Build knowledge systematically
513
+
514
+ Fold markers + LazyVim + muscle memory = **documentation that scales**.
515
+
516
+ Whether it's 100 lines or 10,000 lines, the workflow stays the same:
517
+
518
+ **`zM` → `}}}` → `za` → read → `za` → repeat**
519
+
520
+ }}}
521
+
522
+ }}}
523
+
524
+ ---
525
+
526
+ You just navigated hundreds of lines without scrolling once. Welcome to keyboard mastery.
527
+
528
+ **Made with 🏛️ by icarus.mx** - Teaching developers to navigate complexity.
@@ -27,7 +27,7 @@ That's **three keys** just to move between panes. Way too much!
27
27
  ## ✅ Solution: Customize to Cmd + 0 (or any key you prefer) {{{
28
28
 
29
29
  You can change iTerm2's pane navigation shortcuts to something simpler.
30
-
30
+ # TODO: in the end i used the GUI with cmd + , and added control and now move between panes with ctrl + 1, ctrl + 2
31
31
  **Popular options:**
32
32
  - `Cmd + 0` (simple, one-handed)
33
33
  - `Cmd + Arrow` (directional)