Compare commits
4 Commits
b1577e23be
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| fd1c85511d | |||
| e446ef5d25 | |||
| 581cc70020 | |||
| 1af250ad19 |
@@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
name: lesson-close
|
||||||
|
description: Close a finished viexp practice session — write today's DevLog entry, record ErrorJournal cues, update the sprint note (hours-logged, checkboxes) and bring task-note statuses in line with reality. Use at the end of a practice session, when the user says the lesson is over, «закрой урок», «конец урока», or invokes /lesson-close. Show the diff and never commit — the owner reviews and commits.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Lesson close
|
||||||
|
|
||||||
|
Turn the finished session into the vault artifacts. Answer in Russian — the chat language
|
||||||
|
per the Sprint-0 retro agreement; artifact content is English (hard repo rule).
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
1. DevLog: create or update today's `docs/devlog/YYYY-MM-DD.md` following the
|
||||||
|
`TMP/DevLog.md` template — what was done, frustrations, English practice (2–3 words
|
||||||
|
actually met this session), Next session.
|
||||||
|
2. ErrorJournal: append today's compiler/tool errors with a self-correction cue, if any
|
||||||
|
occurred this session (`TMP/ErrorJournal.md` pattern). Skip silently if there were none.
|
||||||
|
3. Sprint note: update `hours-logged` and tick the checkboxes that this session's
|
||||||
|
demoable results actually cover.
|
||||||
|
4. Task notes: bring `status:` fields in line with reality (a task with all acceptance
|
||||||
|
criteria met but uncommitted goes to `review`, not `done` — see docs/tasks/0001 for
|
||||||
|
the done pattern).
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
|
||||||
|
- Show the resulting diff summary in chat — the owner reviews and commits personally.
|
||||||
|
Never commit or push on your own.
|
||||||
|
- If a step has nothing to record, say so in one line instead of inventing content.
|
||||||
|
- Update only what this session actually touched; do not backfill older notes.
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
name: lesson-plan
|
||||||
|
description: Build today's viexp practice-session plan from the vault itself (active sprint note, latest DevLog "Next session", open tasks and milestone issues). Use at the start of any practice session in this repo — when the user asks for a lesson plan, «план урока», «план на сегодня», or invokes /lesson-plan. Produce the plan only and never start the work before an explicit go-ahead.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Lesson plan
|
||||||
|
|
||||||
|
Assemble today's lesson plan so the owner does not spend session time planning or drift
|
||||||
|
from the methodology (sprint rhythm 5/30/10, one drill = one commit). Answer in Russian —
|
||||||
|
the chat language per the Sprint-0 retro agreement; keep the section headers exactly as
|
||||||
|
given below.
|
||||||
|
|
||||||
|
## Gather the context yourself
|
||||||
|
|
||||||
|
1. Active sprint: the note in `docs/sprints/` with `status: active` in frontmatter.
|
||||||
|
2. The latest `docs/devlog/*.md` by date — its «Next session» section.
|
||||||
|
3. Open tasks of that sprint: `docs/tasks/` notes with `status: todo | in-progress | blocked`.
|
||||||
|
4. Open issues of the sprint's milestone via `tea` (see docs/workflows/gitea-workflow.md
|
||||||
|
for the quirks; `scripts/gitea-issues.sh` maps label names to IDs). If `tea` fails or
|
||||||
|
is slow, fall back to the task notes and say so.
|
||||||
|
|
||||||
|
## Answer strictly in this format
|
||||||
|
|
||||||
|
```text
|
||||||
|
Где мы — 2–3 строки: последний коммит, что осталось с прошлого урока.
|
||||||
|
Цель урока — одна фраза + номер task/issue.
|
||||||
|
Дрели — 2–4 шт. по 20–30 мин, каждая: название / что делаю /
|
||||||
|
критерий готовности (демонстрируемый результат). Размер дрели = один коммит.
|
||||||
|
Финал — последние 10 минут: DevLog, ErrorJournal, синхронизировать доску.
|
||||||
|
Бюджет урока: __ мин — сумма дрелей плюс финал не превышает бюджет.
|
||||||
|
```
|
||||||
|
|
||||||
|
If the user passed a number with the command (e.g. `/lesson-plan 45`), use it as the
|
||||||
|
budget; otherwise leave `__ мин` for the owner to fill.
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
|
||||||
|
- If the drills do not fit the budget, cut the number of drills — never shorten a drill
|
||||||
|
below 20 minutes.
|
||||||
|
- If something is missing or unclear, pick an obvious default, mark it «допущение», and
|
||||||
|
move on — do not ask questions.
|
||||||
|
- Until the owner replies «поехали» (or corrects a point), do nothing: no file edits, no
|
||||||
|
commits, no issue changes.
|
||||||
@@ -11,6 +11,16 @@ tags: [devlog]
|
|||||||
## What I did
|
## What I did
|
||||||
-
|
-
|
||||||
|
|
||||||
|
## Files touched today
|
||||||
|
```dataview
|
||||||
|
TABLE WITHOUT ID file.link AS "Note", file.mtime AS "Modified"
|
||||||
|
WHERE file.mtime >= date(this.file.name) AND file.mtime < date(this.file.name) + dur(1d)
|
||||||
|
AND file.path != this.file.path
|
||||||
|
AND file.folder != "TMP"
|
||||||
|
SORT file.mtime DESC
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Code review notes
|
## Code review notes
|
||||||
Reviewer feedback and what I changed because of it.
|
Reviewer feedback and what I changed because of it.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
---
|
||||||
|
type: devlog
|
||||||
|
date: 2026-10-19
|
||||||
|
sprint: 0
|
||||||
|
minutes: 45
|
||||||
|
tags: [devlog]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Dev log — 2026-10-19
|
||||||
|
|
||||||
|
## What I did
|
||||||
|
- Task 0002 (issue #3): verified the toolchain and set up the fast-feedback loop.
|
||||||
|
Decision: stay on the Arch pacman `rust` package (1.99.0, clippy/rustfmt included) —
|
||||||
|
rustup would duplicate what pacman already manages.
|
||||||
|
- Installed bacon 3.26.0 and added `bacon.toml`: default job `check`, `clippy` pinned to
|
||||||
|
`-- -D warnings` (CI parity). The built-in `clippy` job does NOT fail on warnings —
|
||||||
|
list the effective jobs (`bacon --list-jobs`) instead of trusting defaults.
|
||||||
|
- Verified the watch loop with an inject/revert probe: clean → warning shown → clean
|
||||||
|
again. rust-analyzer works on the project; local baseline green (fmt/clippy/test).
|
||||||
|
- Recovered the lost "lesson prompts" side chat from the local ZCode session database;
|
||||||
|
wrote [[workflows/session-workflow|session-workflow]] and turned both prompts into
|
||||||
|
project commands (`/lesson-plan`, `/lesson-close` in `.agents/skills/`).
|
||||||
|
- Wired DevLog into Obsidian: Daily notes (folder `docs/devlog`, template `TMP/DevLog.md`)
|
||||||
|
and a Dataview "Files touched today" table.
|
||||||
|
|
||||||
|
## Files touched today
|
||||||
|
```dataview
|
||||||
|
TABLE WITHOUT ID file.link AS "Note", file.mtime AS "Modified"
|
||||||
|
WHERE file.mtime >= date(this.file.name) AND file.mtime < date(this.file.name) + dur(1d)
|
||||||
|
AND file.path != this.file.path
|
||||||
|
AND file.folder != "TMP"
|
||||||
|
SORT file.mtime DESC
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Code review notes
|
||||||
|
Reviewer feedback and what I changed because of it.
|
||||||
|
|
||||||
|
## Rust notes
|
||||||
|
Tooling day — no new Rust syntax; the compiler never got a chance to complain.
|
||||||
|
|
||||||
|
## English practice
|
||||||
|
New words and phrases I used today:
|
||||||
|
- *watch mode* — режим слежения; *bacon re-runs the checks on every save in watch mode*.
|
||||||
|
- *parity* — соответствие, одинаковость; *the clippy job now has parity with CI*.
|
||||||
|
- *headless* — без интерфейса; *I verified the jobs headless, without the TUI*.
|
||||||
|
- *recover* — восстанавливать; *I recovered the lost conversation from the local database*.
|
||||||
|
|
||||||
|
## Next session
|
||||||
|
- Try `/lesson-plan 45` in a fresh session; adjust the command if the plan shape is off.
|
||||||
|
- Drill D3: three deliberate compiler errors (E0382, E0308, E0384) into the ErrorJournal
|
||||||
|
with self-correction cues.
|
||||||
|
- Merge session-workflow + skills commits are on `main` — push when ready; then Sprint-0
|
||||||
|
retro and close-out.
|
||||||
@@ -10,6 +10,7 @@ of the repository.
|
|||||||
- [[workflows/research-workflow|Research workflow]] — how we collect and analyze research artifacts
|
- [[workflows/research-workflow|Research workflow]] — how we collect and analyze research artifacts
|
||||||
- [[workflows/gitea-workflow|Gitea workflow]] — how the board, labels, milestones and issues are organized
|
- [[workflows/gitea-workflow|Gitea workflow]] — how the board, labels, milestones and issues are organized
|
||||||
- [[workflows/english-workflow|English workflow]] — how the project doubles as English practice
|
- [[workflows/english-workflow|English workflow]] — how the project doubles as English practice
|
||||||
|
- [[workflows/session-workflow|Session workflow]] — the two ritual prompts that open and close every practice session
|
||||||
|
|
||||||
## Folders
|
## Folders
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,16 @@ Rust is learned through English, English through Rust.
|
|||||||
- **Commit messages in English** — Conventional Commits format forces short, structured sentences.
|
- **Commit messages in English** — Conventional Commits format forces short, structured sentences.
|
||||||
- **DevLog entry** (10 min, last step of every session): 3–5 sentences about what you did,
|
- **DevLog entry** (10 min, last step of every session): 3–5 sentences about what you did,
|
||||||
in English. Don't translate from Russian in your head — describe the code, not the feelings.
|
in English. Don't translate from Russian in your head — describe the code, not the feelings.
|
||||||
|
Obsidian **Daily notes** is wired to this habit: folder `docs/devlog`, filename `YYYY-MM-DD`,
|
||||||
|
template `TMP/DevLog.md` — open today's note via the ribbon calendar icon or the command
|
||||||
|
palette ("Daily notes: Open today's daily note"). The config lives in `.obsidian/`
|
||||||
|
(gitignored), so re-create it manually on a new machine.
|
||||||
|
- Each DevLog auto-renders a **"Files touched today" table** (Dataview community plugin, v0.5.70,
|
||||||
|
installed in `.obsidian/plugins/dataview/`). The query filters by `file.mtime` inside the day
|
||||||
|
taken from the note's own filename, so every past entry shows its own day, not "today".
|
||||||
|
Caveat: `mtime` shows the *last* touch — a note edited again later moves to the newer day's
|
||||||
|
table. For the true change history of code files (`.rs` is not indexed by Dataview) use git:
|
||||||
|
`git log --since="00:00" --name-only --pretty=format:`.
|
||||||
- **Read error messages and docs in English only.** Never switch the compiler or Rust Book to Russian.
|
- **Read error messages and docs in English only.** Never switch the compiler or Rust Book to Russian.
|
||||||
|
|
||||||
## Weekly habits
|
## Weekly habits
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
# Session workflow
|
||||||
|
|
||||||
|
Two ritual prompts bookend every practice session: the assistant assembles the lesson plan
|
||||||
|
from the vault itself (sprint note, DevLog, open tasks), and closes the session by writing
|
||||||
|
the artifacts back. Planning stops being a manual step that eats lesson time and drifts
|
||||||
|
from the methodology (sprint rhythm 5/30/10, one drill = one commit).
|
||||||
|
|
||||||
|
The vault keeps the English canonical version. Ready-to-paste Russian originals (the chat
|
||||||
|
language) are kept outside the repo at `~/.local/share/viexp/session-prompts-ru.md` — the
|
||||||
|
vault itself is English-only, and `TMP/` is tracked in git despite the name. The English
|
||||||
|
prompts below are also safe to paste as-is.
|
||||||
|
|
||||||
|
In ZCode both rituals are project commands, no pasting needed: `/lesson-plan [budget-min]`
|
||||||
|
and `/lesson-close` (defined in `.agents/skills/`).
|
||||||
|
|
||||||
|
## Session-start prompt
|
||||||
|
|
||||||
|
Paste as the first message of a new chat. Fill in the lesson budget; the assistant replies
|
||||||
|
with the plan only and waits for a go-ahead.
|
||||||
|
|
||||||
|
```text
|
||||||
|
viexp lesson — prepare today's plan. Plan only, do not start the work.
|
||||||
|
|
||||||
|
Gather the context yourself:
|
||||||
|
1. Active sprint: docs/sprints/ with status: active.
|
||||||
|
2. The latest docs/devlog/*.md by date — its "Next session" section.
|
||||||
|
3. Open tasks of the sprint: docs/tasks/ (status: todo | in-progress | blocked)
|
||||||
|
and open issues of the current milestone via tea.
|
||||||
|
|
||||||
|
Answer strictly in this format:
|
||||||
|
Where we are — 2–3 lines: last commit, what is left from the previous lesson.
|
||||||
|
Lesson goal — one phrase + task/issue number.
|
||||||
|
Drills — 2–4 × 20–30 min, each: name / what I do / done-when (demoable
|
||||||
|
result). One drill = one commit.
|
||||||
|
Wrap-up — last 10 minutes: DevLog, ErrorJournal, sync the board.
|
||||||
|
Lesson budget: __ min — drills plus wrap-up must fit the budget.
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
- If it does not fit the budget, cut the number of drills, never the time of each.
|
||||||
|
- If something is missing or unclear — pick an obvious default, mark it
|
||||||
|
"assumption", do not ask questions.
|
||||||
|
- Until I reply "go" (or correct a point) — do nothing.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Session-end prompt
|
||||||
|
|
||||||
|
Paste in the last ~10 minutes of the session; review the diff and commit yourself.
|
||||||
|
|
||||||
|
```text
|
||||||
|
Close the viexp lesson:
|
||||||
|
1. Create/update today's docs/devlog/ entry from the TMP/DevLog.md template:
|
||||||
|
what I did, frustrations, English practice, Next session.
|
||||||
|
2. ErrorJournal — today's errors with a self-correction cue, if any.
|
||||||
|
3. Sprint note: update hours-logged and checkboxes.
|
||||||
|
4. Bring task-note statuses in line with reality.
|
||||||
|
Show the changes — I will review and commit myself.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Why it works this way
|
||||||
|
|
||||||
|
- **Fixed answer format** — the plan always has the same shape, so the methodology can't
|
||||||
|
drift: the assistant pulls "Next session" from the DevLog and open issues itself.
|
||||||
|
- **Planning is separated from work** — nothing happens before the explicit "go"; correcting
|
||||||
|
a plan point is cheaper than redoing a lesson mid-way.
|
||||||
|
- **The budget cuts scope, not depth** — fewer drills, never shorter drills.
|
||||||
Reference in New Issue
Block a user