CLAUDE.md — vault state & plan

Working notes for AI assistants (and future me) helping with this Obsidian vault. Keep this short. Update when things change.


What this vault is

Obsidian vault of kursanteckningar from civilingenjör i teknisk fysik & elektroteknik, LTU (TCTEA). Written in Swedish. LaTeX Suite. Intended to be published for future students (format inspired by Brian McFee’s Digital Signals Theory).

Contact / owner: [email protected]


Where the owner is in the program

  • Program: 5 years, 4 läsperioder (LP) per year.
  • Current time: LP4, Åk1 (VT2026).
  • Courses completed / in progress (dump exists in meta/raw course dump/):
    • Åk1 LP1: F0051T Ingenjörsvetenskap, M0065M Envariabelanalys 1
    • Åk1 LP2: F0004T Fysik 1, M0066M Envariabelanalys 2
    • Åk1 LP3: D0009E Intro till programmering, M0067M Linjär algebra
    • Åk1 LP4 (pågår): F0006T Fysik 3, M0068M Flervariabelanalys
  • Everything else on the Homepage (Åk2–Åk5) is future. Don’t invent notes for it.
  • Active editing right now is in flervariabelanalys (Dubbelintegraler, Lagranges multiplikatormetod, Kedjeregeln, Extremvärdesproblem) and rotationsmekanik (F0006T).

Vault layout (roles, not hierarchy)

Homepage.md           Course index, the published landing page
koncept/              Atomic, course-agnostic concept notes. THIS IS THE PRODUCT.
kurser/<kod>.md       Per-course MOC (map of content). Links into koncept/.
kurser/kursfiler/     LEGACY. Per-topic course-prefixed files. To be folded into
                      koncept/ or the course MOC, then removed.
meta/
  bilder/             Pasted images
  böcker/             Reference books (PDFs) — see "Reference books" below
  raw course dump/    Canvas exports — source material, never published
Screenshot.md         Empty scratch file
.obsidian/            Vault config

Reference books (in meta/böcker/)

Used for ## Läsning chapter links from koncept/ notes.

FileUsed forNotes
z.Calculus A Complete Course 10th.pdf (Adams)M0065M, M0066M, M0068M1207 p. Full TOC available via pypdf outline.
University Physics with Modern Physics in SI Units.pdf (Young & Freedman)F0004T, F0006T, F0051T1612 p. Covers mechanics → modern physics.
Fysika_upplaga-5.pdf (Elfgren)F0004T, F0006TLTU formelsamling. 25 p.
Kompendium i mekanik.pdf (Lehto)F0006T77 p.

Missing: no book currently in the vault for M0067M (linjär algebra) or D0009E (Python). Notes in those courses don’t get ## Läsning links.

Obsidian supports linking to a PDF page:

[[<bookfile>.pdf#page=N|Display text]]

Annotation IDs (&annotation=XXXR) are optional — only present when the owner has placed a highlight and wants that exact anchor (see koncept/Rotationsmekanik.md for the fully-annotated pattern).

For new notes, use the plain #page=N form. Extract chapter page numbers via:

import pypdf
r = pypdf.PdfReader(path)
# walk r.outline, use r.get_destination_page_number(item)

Note template & conventions

Reference for the standard template: koncept/Gränsvärden.md (handwritten by the owner, use as style guide). Supplementary reference: koncept/Extremvärden.md.

Standard section order (bottom-up)

---
frontmatter
---

# Titel

> **Kurs:** <kod>
> **Förkunskaper:** [[...]]

---

## 1. <delrubrik>
...
## N. <delrubrik>

## Läsning        ← PDF chapter links (Adams / UP / Fysika etc.)
## Se även        ← internal [[wikilinks]] to related koncept/
## Resurser       ← external links (prefer 3Blue1Brown, then Wikipedia/Khan)

Frontmatter template

kurs:
  - <kurskod>
tags:
  - <ämne>
  - <underämne>
förkunskaper:
  - "[[...]]"
status: utkast | granskad | publicerad
aliases:
  - <synonym>

Style rules

  • Swedish for note content. English for code and metadata keys.
  • Key formulas in $$ \boxed{...} $$.
  • Examples in > [!example]- <titel> (collapsible callout).
  • Warnings in > [!warning] / > [!tip] / > [!note].
  • No “Ordlista svenska ↔ engelska” tables — these were removed globally on 2026-04-23. Don’t reintroduce them.
  • Prefer 3Blue1Brown in ## Resurser when a relevant video exists.

The core problems we’ve agreed on

  1. Structure is hybrid and that is fine, but roles were unclear. Rule: koncept/ is atomic and course-agnostic; kurser/ is course-scoped MOCs + labs + projects.
  2. Quality is wildly inconsistent. Most stubs have been filled as of 2026-04-23 (see “Big sweeps” below), but many are still status: utkast and need review.
  3. Naming collisions between single-var and multi-var versions of the same idea (Extremvärden vs Extremvärdesproblem). Convention still undecided — owner hasn’t picked merge-vs-split yet.
  4. kurser/kursfiler/ duplicates koncept/ and creates the “where does this go” anxiety.
  5. Labs/projects have no home yet. Plan: kurser/<kod>/labb-N.md, kurser/<kod>/projekt.md.
  6. Publishing new-student-ready notes requires filtering out drafts.

Big sweeps already done (2026-04-23)

  • Removed all ## Ordlista svenska ↔ engelska tables from koncept/ (39 files).
  • Filled ~95 empty stubs across M0065M, M0066M, M0067M, M0068M, F0004T, F0006T, F0051T, D0009E using the Gränsvärden.md template as style guide.
  • Added ## Läsning section with PDF chapter deep-links to 114 files (Adams for math, UP for physics).
  • Owner-written notes were preserved and not overwritten (e.g. Inre konversion.md, Scintillationsräknare.md, topologiska begräpp.md, Avogadros tal 2026-04-23.md, lecture-note sections inside Kritiska punkter.md / Experimentell metodik.md).
  • Rewrote all 8 kurser/<kod>.md MOCs into Quartz-friendly layout: short description, snabbfakta-box, personal reflection, module-grouped concept list, slim examination + resources.
  • First-mention crosslinking pass across koncept/ (/tmp/crosslink.py): 79 new [[Target|matched]] links + 102 broken wikilinks repaired ([[Gränsvärden i en variabel]][[Gränsvärden]], [[Taylorpolynom]][[Taylors formel]], [[Extremvärden och monotoni]][[Extremvärden]], and ~20 more in BROKEN table).

Crosslinking convention (since 2026-04-23)

Follow these rules when cross-linking concept notes:

  1. First-mention-per-page only. Once a concept is linked in a page’s body, don’t link subsequent mentions — they add noise for the reader.
  2. Never self-link. A page about Derivata doesn’t link [[Derivata]] inside itself. The # Titel header plus the > **Kurs:** ... block already identify it.
  3. Use display aliases to preserve the author’s original prose/case: [[Gränsvärden|gränsvärdet]], not [[Gränsvärden]].
  4. Never link inside: frontmatter, code fences, $$…$$ math blocks, inline $…$, existing [[wikilinks]], markdown [text](url) links, # headings, or the > **Kurs:** / **Förkunskaper:** … blockquote.
  5. Don’t auto-link overly generic words (metod, funktion, variabel, rotation, argument, objekt, klass, …). If they must be linked, do it by hand at a genuinely-meaningful spot. The big list of NO_AUTOLINK_TITLES / BAD_ALIASES is in /tmp/crosslink.py.
  6. Keep ## Se även even when the concept is already linked inline — it’s a navigation hub and the reader expects it.
  7. The script /tmp/crosslink.py is idempotent (existing wikilinks are skipped), so it can be re-run after adding new notes. Always run --apply only after a plain dry-run looks clean.

Plan / backlog

  • Draft meta/konventioner.md with the rules above (source of truth for the vault).
  • Decide variant-naming convention (merge vs split).
  • Promote mature utkastgranskadpublicerad as owner revisits notes.
  • Add ## Läsning to M0067M (needs a linjär-algebra book in meta/böcker/) and D0009E (needs a Python reference) once suitable sources are added.
  • Fold kurser/kursfiler/* into the corresponding course MOCs, then delete the folder.
  • Clean up koncept/Extremvärdesproblem.md (half-finished Lagrange content, stray TODOs).
  • Create kurser/<kod>/ subfolders for labs/projects as they come up — not preemptively.
  • Set up publish pipeline (Obsidian Publish or Quartz) with status: publicerad filter.

Do NOT:

  • Rewrite every old note in one pass. Upgrade on revisit.
  • Create notes for future courses (Åk2+) until the owner reaches them.
  • Touch meta/raw course dump/ — it’s source material, read-only.
  • Reintroduce “Ordlista svenska ↔ engelska” tables.
  • Overwrite owner-written content when filling stubs — merge, don’t replace.

How to help (for AI assistants)

  1. Default language for note content is Swedish. Code and metadata are English.
  2. Match the template in koncept/Gränsvärden.md when creating or cleaning concept notes.
  3. Before editing, check if a concept already exists under a different name (stubs common).
  4. When adding ## Läsning links, use pypdf to extract the PDF outline and map section titles → page numbers; never guess page numbers.
  5. Keep commits/edits small and focused. Quality > coverage.
  6. When unsure about structure, ask — don’t invent a new folder or convention.
  7. For any non-trivial batch edit, use AskUser to confirm scope, frontmatter policy, and whether external links (Wikipedia/Khan/3Blue1Brown) are wanted.