--- type: sprint number: 0 status: active started: 2026-10-17 finished: hours-planned: 6 hours-logged: 3 tags: [sprint, setup] --- # Sprint 0 — Setup & deconstruction ## Theme Remove every barrier to practice: toolchain, fast feedback, project board, CI. After this sprint, a practice session starts in 60 seconds and never touches configuration. ## App deliverable `viexp` cargo project skeleton that compiles, one trivial test green, Gitea Actions CI green, `bacon` watching check+clippy+test on save, Gitea board (project + labels + milestones) ready. ## Rust focus — the vital 20% - What `rustc` / `cargo` / `crates.io` / `Cargo.toml` / `Cargo.lock` are and who owns which file. - The compile cycle: `cargo check` (fast) vs `build` vs `run`; `cargo fmt`, `cargo clippy`. - Reading a compiler error: error code (e.g. E0382), span, help hint — where to look first. ## Practice drills (20–30 min each) - [ ] D1 — Install/verify: `rustup default stable`, `cargo --version`; run `rustup component add clippy rustfmt`; install `bacon` (`cargo install --locked bacon`). - [x] D2 — `cargo new viexp --bin`, add a `lib.rs` skeleton (src split: `main.rs` calls `viexp::run()`), one `#[test] fn sanity()` — make it fail, read the output, make it pass. (Done 2026-10-18: used `cargo init` in the existing repo; task 0001.) - [ ] D3 — Break it on purpose: introduce E0382 (move a `String`, then use it), E0308 (wrong type), E0384 (reassign immutable). Paste each into the ErrorJournal **with a self-correction cue**. - [x] D4 — Gitea CI: `.gitea/workflows/ci.yml` running `fmt --check`, `clippy -D warnings`, `test`. Push and watch it go green. (Done 2026-10-18: green on `main` after PR #13; needed `dtolnay/rust-toolchain@stable` and one rerun — runner network to static.rust-lang.org is flaky.) - [x] D5 — Gitea board: labels, milestone "Sprint 1", issues imported from Sprint-1 DoD. (Done 2026-10-17: 11 labels, 13 sprint milestones, issues #1–#12; kanban board still needs one-time manual creation in the web UI — Gitea 1.26.2 has no projects API.) ## English focus README "Status" section (done), DevLog habit starts today, commit messages from now on: Conventional Commits, imperative mood. ## Session rhythm (45 min) 5 min review → 30 min drill → 10 min DevLog + ErrorJournal. ## Definition of done - [ ] `cargo bacon` shows check+test passing on save - [x] CI green on `main` (2026-10-18, run #14) - [ ] ErrorJournal has ≥3 entries with cues - [ ] Sprint-1 milestone and issues exist on Gitea - [ ] Retro filled ## Retrospective ### Shipped - Task 0001 / issues #1–#2: cargo skeleton (lib/bin split, sanity test) + CI green on `main` via PR #13. ### Frustrations - Reading English text (docs, tool output) eats a lot of session time. Agreed (2026-10-18): theory digests stay short and in Russian in chat; English lives only in artifacts (vault notes, code, commits, CI logs). ### Hours logged / English notes