Run one 45-minute study session on a personal topic (outside school) in the obsidian-laeringshvelv vault: warm-up, new module material, problems or hands-on labs on this machine, learner model, flashcards and log. Started by `studie <kode>` as `/egen-okt <kode>`, where <kode> is a topic in the "Personlige temaer" table in `_system/config.md`. Use whenever the user wants to study a personal topic ("studer geologi", "økt i infra").
Install
npx skillscat add sondrejk/dotfiles/egen-okt Install via the SkillsCat registry.
Egen økt
A session on a personal topic runs exactly like okt, except where this file says otherwise.
Read ../okt/SKILL.md (relative to this skill's base directory) first, and follow it with the changes below. Section numbers refer to okt.
In short: the topic is given, the session is 45 minutes, modules replace lectures, milestones replace exams, and tools are learned in labs.
Files
In addition to the files in okt:
| File | Use |
|---|---|
_system/config.md |
The "Personlige temaer" table: code, folder, card domain, sources, split, status. |
15 egne studier/<kode>/læreplan.md |
Modules, milestones, level 3 and 4 for this topic, sources, next topic. |
15 egne studier/<kode>/mål.md |
Why the user learns this and the goals. Read at start. |
~/laber/<kode>/ |
Lab working files. Never inside the vault. |
1. Oppstart (replaces steps 3-7 in okt)
date '+%F %H:%M'. Read_system/config.md, the last ~60 lines of_system/logg.md, and the topic'smål.mdandlæreplan.md.$ARGUMENTSmust be a code in "Personlige temaer". If it is not, list the codes, say thatstudie nyplans a new topic, and stop.- Status
vedlikehold: say the goals are reached and the cards continue. Ask whether to plan a part 2 (runnytt-temawithrevider <kode>) or run a repetition session (warm-up plus problems on the weakest concepts). - Unfinished sessions: apply the rule in
oktstep 3 only to blocks with this code. Unfinished blocks with other codes: finish silently if older than 3 hours, otherwise leave them. - School exam within 7 days (the Emner table): one line, for example
TDT4200 har eksamen om 4 dager., then continue. Never stop the user. - No PDF scan, no course choice, no capture notes, no exam ramp.
- Write the log block as in
oktstep 8, withTema: <modul nr og tema>.
2. Oppvarming
4 questions, max 4 minutes: 3 from this topic and 1 from another active personal topic if one exists. Never school courses.
Skip the warm-up when fewer than 3 concepts in this topic have level 1 or more, and log - oppvarming hoppet over (for lite stoff).
3. Hoveddel (rest of the 45 minutes)
Split: the Fordeling column in config (default 50/50). The "while the course is behind" rule in okt does not apply.
Topic: "Neste tema" in læreplan.md. If a milestone has all its modules lært and is not passed, the main part is that milestone (section 4 below).
- Status
ikke innlest: run theinntaprocedure for personal topics on the module, max 5 minutes. - New material works as in
okt. Worked examples use the topic's own medium: a manifest and its effect, a command and its output, a rock and how it is identified. - Level 3 and 4 are defined in
## Nivå 3 og 4inlæreplan.md. Problem sources: exercises in the anchor source, adapted official tutorials, and your own problems. - When every concept of a module has level 2 or more, set the module to
lært. There are no lecture notes to update.
Labs
The user builds. Claude prepares the start state, breaks working setups for level 4 and verifies the result.
Hard rules:
- Only on this machine: Docker, kind, OpenTofu with local providers only (
docker,kind,local,null,random,tls) and Ansible against lab containers. Never cloud providers, never credentials, never files outside~/laber/<kode>/. - Every resource name starts with
lab-<kode>-(containers, networks, volumes). The kind cluster islab-<kode>. kindandkubectlalways get--kubeconfig ~/laber/<kode>/kubeconfig, on every command, because shell state does not persist between commands. Never read or write~/.kube/config.- OpenTofu runs in the lab folder with local state.
- Clean up only by prefix:
docker ps -aq --filter name=^lab-<kode>-,kind delete cluster --name lab-<kode>. Neverdocker system pruneand neverrmoutside the lab folder. - No
sudoin labs.
Flow:
- Write the task in
~/laber/<kode>/<NN>-<navn>/OPPGAVE.mdand in chat: the goal, the start state and what the result must do. Never how to do it. - Prepare the start state (cluster up, base files, or a broken setup for level 4).
- The user works in their own terminal and editor in that folder, and writes
sjekkwhen done. - Verify by running checks:
get/describe,curlagainst the service,tofu planwith no changes, a second Ansible run withchanged=0. Read the user's files and assess the method as inokt: point at errors with a question. - Levels and hints follow
okt. A level 4 task is a working setup you break without saying how (wrong selector, closed port, wrong variable). The user finds and fixes the fault.
4. Milepæl (replaces Eksamensmodus)
- The task stands in the Milepæler table in
læreplan.md. Time limit from the table, no hints. - Full review afterwards. Concepts used correctly without hints reach level 4 if the task was new to the user. Weak concepts get next action
oppvarming neste økt. - Passed: set the milestone's status to
bestått <dato>. - All milestones passed: set the topic's status to
vedlikeholdin config and tell the user. Suggestrevider <kode>for a part 2.
5. Avslutning
As in okt, with these changes:
- Suggest wrapping up after 45 minutes instead of 90.
- The
kortprocedure uses the limits for personal topics. - Recompute "Neste tema" by the rule in the topic's
læreplan.md. - Stop running lab containers (
docker stop, by prefix) so they do not use resources. They keep their state for the next session. Say so in one line.