feat(console-bash): register completed L01-L08 cards
This commit is contained in:
@@ -3,13 +3,13 @@
|
||||
"title": "Bash · Console Tools",
|
||||
"catalog_only": true,
|
||||
"cards": [
|
||||
{"id": "L01", "repo": "lab-console-busybox", "number": "01", "title": "BusyBox — the Swiss Army Knife", "status": "planned"},
|
||||
{"id": "L02", "repo": "lab-console-tmux", "number": "02", "title": "Tmux — sessions, windows and panes", "status": "planned"},
|
||||
{"id": "L03", "repo": "lab-console-neovim", "number": "03", "title": "Neovim — navigation and editing", "status": "planned"},
|
||||
{"id": "L04", "repo": "lab-console-git-basics-1", "number": "04", "title": "Git Basics I — status, add and commit", "status": "planned"},
|
||||
{"id": "L05", "repo": "lab-console-git-basics-2", "number": "05", "title": "Git Basics II — log, diff and restore", "status": "planned"},
|
||||
{"id": "L06", "repo": "lab-console-git-branching-1", "number": "06", "title": "Git Branching I — branch, switch and merge", "status": "planned"},
|
||||
{"id": "L07", "repo": "lab-console-git-branching-2", "number": "07", "title": "Git Branching II — rebase and conflicts", "status": "planned"},
|
||||
{"id": "L08", "repo": "lab-console-docker", "number": "08", "title": "Docker Fundamentals", "status": "planned"}
|
||||
{"id": "L01", "repo": "lab-console-busybox", "number": "01", "title": "BusyBox — the Swiss Army Knife", "status": "existing"},
|
||||
{"id": "L02", "repo": "lab-console-tmux", "number": "02", "title": "Tmux — sessions, windows and panes", "status": "existing"},
|
||||
{"id": "L03", "repo": "lab-console-neovim", "number": "03", "title": "Neovim — navigation and editing", "status": "existing"},
|
||||
{"id": "L04", "repo": "lab-console-git-basics-1", "number": "04", "title": "Git Basics I — status, add and commit", "status": "existing"},
|
||||
{"id": "L05", "repo": "lab-console-git-basics-2", "number": "05", "title": "Git Basics II — log, diff and restore", "status": "existing"},
|
||||
{"id": "L06", "repo": "lab-console-git-branching-1", "number": "06", "title": "Git Branching I — branch, switch and merge", "status": "existing"},
|
||||
{"id": "L07", "repo": "lab-console-git-branching-2", "number": "07", "title": "Git Branching II — rebase and conflicts", "status": "existing"},
|
||||
{"id": "L08", "repo": "lab-console-docker", "number": "08", "title": "Docker Fundamentals", "status": "existing"}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Bash · Console Tools — plan kart
|
||||
|
||||
Status: plan, 8 lekcji.
|
||||
Status: L01–L08 gotowe; seria zakończona i odbierana w profilu
|
||||
`native-amd64` przez `stemctl`.
|
||||
|
||||
Seria przygotowuje warsztat przed FPGA, assemblerem i C. Nazwa obejmuje pracę
|
||||
w powłoce i terminalu; BusyBox może udostępniać `ash`, więc nie utożsamiamy
|
||||
@@ -18,8 +19,53 @@ Bash · Console Tools
|
||||
└── L08 · Docker Fundamentals
|
||||
```
|
||||
|
||||
Każda karta kończy się małym dowodem wykonania: komendą, stanem terminala albo
|
||||
historią Git, którą uczeń potrafi odtworzyć i wyjaśnić.
|
||||
Każda karta zawiera trzy wykonywalne taski. Repozytorium karty dostarcza
|
||||
kontrakt `stem-card.yaml`, testy stanu, wygenerowany widok React, dwustronicowy
|
||||
PDF A4 oraz akcje `build`, `test`, `run` i `debug`. Debug zapisuje
|
||||
`trace.log` w katalogu artefaktów tasku.
|
||||
|
||||
## Stan odbioru serii — 2026-07-21
|
||||
|
||||
| Karta | Dowód końcowy |
|
||||
| --- | --- |
|
||||
| L01 BusyBox | dispatch multicall, operacje plikowe, proces i host |
|
||||
| L02 Tmux | sesja, okna i panele, zachowanie stanu po detach/attach |
|
||||
| L03 Neovim | nawigacja, search/edit/save, undo/redo |
|
||||
| L04 Git Basics I | init, status/add, pierwszy commit i clean |
|
||||
| L05 Git Basics II | log, diff staged/worktree, bezpieczne restore |
|
||||
| L06 Git Branching I | branch/switch, rozbieżność, merge commit |
|
||||
| L07 Git Branching II | rebase, rzeczywisty konflikt UU, liniowa historia |
|
||||
| L08 Docker | specyfikacja image, lifecycle, volume i bind mount |
|
||||
|
||||
Wszystkie 24 taski przechodzą w kontenerze `native-amd64`. Każdy task pracuje
|
||||
w izolowanym katalogu tymczasowym i raportuje mierzalny komunikat `PASS`.
|
||||
|
||||
### Granice środowiska
|
||||
|
||||
Obraz `native-amd64` nie zawiera BusyBox. L01 używa więc audytowalnego
|
||||
fixture C implementującego wyłącznie ćwiczony mechanizm multicall, wykrywa
|
||||
prawdziwy BusyBox, gdy jest dostępny, i zawsze raportuje użyty backend. Fixture
|
||||
nie jest przedstawiany jako binarka BusyBox.
|
||||
|
||||
Profil ucznia nie otrzymuje socketu Docker/Podman. L08 używa jawnego modelu
|
||||
stanów offline do sprawdzenia semantyki image/container/storage. Jego `PASS`
|
||||
nie oznacza uruchomienia prawdziwego silnika. Powtórzenie ćwiczenia z realnym
|
||||
CLI należy wykonać na kontrolowanej maszynie operatorskiej, najlepiej z
|
||||
rootless Podmanem albo Dockerem, bez montowania socketu do kontenera ucznia.
|
||||
|
||||
### Sposób uruchamiania
|
||||
|
||||
```bash
|
||||
stemctl series show console-bash
|
||||
stemctl list-cards console-bash
|
||||
stemctl card use console-bash L01
|
||||
stemctl test native-amd64 console-bash L01 1
|
||||
stemctl debug native-amd64 console-bash L01 3
|
||||
```
|
||||
|
||||
Numer karty i tasku można podmienić na dowolne L01–L08 i 1–3. Identyfikatory,
|
||||
repozytoria i kolejność kart są zapisane w `series/console-bash.json`, a stan
|
||||
realizacji w `catalog/console-bash.json`.
|
||||
|
||||
Pierwotne ustalenia znajdują się również w
|
||||
`series/inf/lab-rv32i-c-pointers-arrays/guidelines/console-series.md`.
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"id": "console-bash",
|
||||
"title": "Bash · Console Tools",
|
||||
"source_org": "edu-inf",
|
||||
"answer_org": "c2025-1a-inf",
|
||||
"source_remote": "r1",
|
||||
"answer_remote": "r1a",
|
||||
"fallback_branch": "main",
|
||||
"workspace_dir": "console",
|
||||
"source_dir": "console",
|
||||
"default_card": "L01",
|
||||
"cards": [
|
||||
{"id": "L01", "repo": "lab-console-busybox", "branch": "main", "title": "BusyBox — the Swiss Army Knife"},
|
||||
{"id": "L02", "repo": "lab-console-tmux", "branch": "main", "title": "Tmux — sessions, windows and panes"},
|
||||
{"id": "L03", "repo": "lab-console-neovim", "branch": "main", "title": "Neovim — navigation and editing"},
|
||||
{"id": "L04", "repo": "lab-console-git-basics-1", "branch": "main", "title": "Git Basics I — status, add and commit"},
|
||||
{"id": "L05", "repo": "lab-console-git-basics-2", "branch": "main", "title": "Git Basics II — log, diff and restore"},
|
||||
{"id": "L06", "repo": "lab-console-git-branching-1", "branch": "main", "title": "Git Branching I — branch, switch and merge"},
|
||||
{"id": "L07", "repo": "lab-console-git-branching-2", "branch": "main", "title": "Git Branching II — rebase and conflicts"},
|
||||
{"id": "L08", "repo": "lab-console-docker", "branch": "main", "title": "Docker Fundamentals"}
|
||||
]
|
||||
}
|
||||
+5
-1
@@ -13,7 +13,7 @@
|
||||
"title": "Legacy Informatyka series",
|
||||
"role": "series",
|
||||
"legacy": true,
|
||||
"series": ["inf", "rv32i-asm", "freertos"]
|
||||
"series": ["console-bash", "inf", "rv32i-asm", "freertos"]
|
||||
},
|
||||
{
|
||||
"id": "edu-fiz",
|
||||
@@ -35,6 +35,10 @@
|
||||
}
|
||||
],
|
||||
"series": [
|
||||
{
|
||||
"id": "console-bash",
|
||||
"file": "series/console-bash.json"
|
||||
},
|
||||
{
|
||||
"id": "inf",
|
||||
"file": "series/inf.json"
|
||||
|
||||
Reference in New Issue
Block a user