docs: add session workflow note (lesson start/end prompts)

This commit is contained in:
2026-10-19 10:02:18 +03:00
parent 1af250ad19
commit 581cc70020
2 changed files with 66 additions and 0 deletions
+1
View File
@@ -10,6 +10,7 @@ of the repository.
- [[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/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
+65
View File
@@ -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.