KB: todo-app
← All workspaces3775 results — page 52 of 76
| Title | Domain | Type | Severity | Source | Freshness | Updated |
|---|---|---|---|---|---|---|
| [Workflow] expert-training-ops: Step 2: Determine Location and Category | claude/agents/expert-training-ops | pattern | medium | expert-training-ops.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Apply MANDATORY PLACEMENT RULES (see above).
|
||||||
| [Workflow] expert-training-ops: Step 1: Gather Server Information via SSH | claude/agents/expert-training-ops | pattern | medium | expert-training-ops.md | 88 | 2026-03-22 02:00:03 |
|
Body:
**For Proxmox hosts:**
```
ssh {host} "hostname; cat /etc/pve/storage.cfg; pvesh get /version; qm list; pct list"
ssh {host} "free -h; df -h; lscpu | head -10; cat /proc/meminfo | head -5"
ssh {host} "zpool list; zpool status -x; cat /etc/pve/jobs.cfg"
ssh {host} "cat /etc/network/interfaces; ip addr show"
```
**For VMs/CTs:**
```
ssh {host} "hostname; uname -a; systemctl list-units --type=service --state=running"
ssh {host} "free -h; df -h; ip addr show | grep inet"
```
**For network...
|
||||||
| [Workflow] expert-training-ops: Step 0: Overlap Check (MANDATORY) | claude/agents/expert-training-ops | pattern | medium | expert-training-ops.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Before creating ANY new file:
1. Check CURRENT.md index — is this server/device already listed?
2. Check target directory — does CURRENT-{name}.md already exist?
3. If exists → switch to UPDATE mode
|
||||||
| [Workflow] expert-training-ops: Mode 4: HEALTH — System-Wide Health Check | claude/agents/expert-training-ops | pattern | medium | expert-training-ops.md | 88 | 2026-03-22 02:00:03 |
|
Body:
---
|
||||||
| [Guardrail] expert-training-ops: MCP Tools (Always Available) | claude/agents/expert-training-ops | gotcha | high | expert-training-ops.md | 88 | 2026-03-22 02:00:03 |
|
Body:
All MCP servers are active (deferred loading — 0 cost until first use). For expert file creation:
**Quick Fetch — load these for infrastructure work:**
```
# Code/config navigation
ToolSearch("select:mcp__serena__find_symbol,mcp__serena__get_symbols_overview,mcp__serena__find_referencing_symbols,mcp__serena__search_for_pattern")
# Database inspection
ToolSearch("select:mcp__mysql__execute_sql")
# Documentation...
|
||||||
| [Workflow] expert-training-ops: VALIDATION BEFORE WRITING (NON-NEGOTIABLE) | claude/agents/expert-training-ops | pattern | medium | expert-training-ops.md | 88 | 2026-03-22 02:00:03 |
|
Body:
```
Before creating/moving any expert file:
1. Extract IP from server data
2. Match IP to location directory (see table above)
3. Read CURRENT.md to confirm location mapping
4. If any mismatch → ASK USER, do not guess
```
---
|
||||||
| [Workflow] expert-training-ops: MANDATORY PLACEMENT RULES | claude/agents/expert-training-ops | pattern | medium | expert-training-ops.md | 88 | 2026-03-22 02:00:03 |
|
Body:
**Step 1: Determine location from IP or nature:**
| IP Range / Type | Location Directory |
|-----------------|-------------------|
| 172.20.0.x | `kontoret/` |
| 192.168.86.x | `hjemme/` |
| External service (DNS registrar, cloud, CDN) | `shared/` |
| VPN/tunnel (crosses locations) | `shared/` |
| Backup system (covers both sites) | `shared/` |
| Credentials (used everywhere) | `shared/` |
**Step 2: Determine category subdirectory:**
| Type | Category |
|------|----------|
| Proxmox host...
|
||||||
| [Guardrail] expert-training-ops: CRITICAL: Location-Based Directory Structure | claude/agents/expert-training-ops | gotcha | critical | expert-training-ops.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Infrastructure experts are organized by **physical location**, NOT flat domains:
```
coordination/experts/operations/magitek-server-ops/
├── CURRENT.md # Master index (lists ALL sub-experts with location)
├── kontoret/ # 172.20.0.x network
│ ├── proxmox/ # Proxmox hosts (px1)
│ ├── network/ # pfSense, switches, APs
│ └── services/ # NPM, legacy-tls-proxy, ssh-server, reportmaker
├── hjemme/ ...
|
||||||
| [Workflow] expert-training-ops: Expert Training Agent — Magitek Ops (Infrastructure) | claude/agents/expert-training-ops | pattern | medium | expert-training-ops.md | 88 | 2026-03-22 02:00:03 |
|
Body:
**Purpose:** Create and maintain infrastructure expert knowledge files for servers, network equipment, services, and storage across all Magitek locations.
**Workspace:** `/var/www/magitek-ops/`
**Expert root:** `coordination/experts/operations/magitek-server-ops/`
---
|
||||||
| [Tool usage] dam-librarian: Git Persistence (OBLIGATORISK) | claude/agents/dam-librarian | api_note | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Etter ALLE endringer i ekspert-filer — ALLTID:
```bash
# 1. Fiks permissions
chmod 664 coordination/experts/dam/*.md coordination/experts/dam/**/*.md 2>/dev/null
chmod 664 coordination/experts/dam/pending-updates.json
# 2. Commit og push
git add coordination/experts/dam/
git commit -m "dam: {kort beskrivelse av endring}"
git push origin main
# 3. Verifiser
echo "Git push exit code: $?"
```
**ALDRI** avslutt en sesjon uten å ha committet endringer i ekspert-filer.
|
||||||
| [Workflow] dam-librarian: Terskel for ekspert-oppdatering | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
- **5+ discoveries** → prompt for samlet ekspert-oppdatering
- **1 kritisk discovery** → oppdater ekspert umiddelbart
---
|
||||||
| [Workflow] dam-librarian: Eksempler på hva som logges | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
- Ny mappe oppdaget under kartlegging
- Duplikater funnet mellom lagringslokasjoner
- Feilklassifiserte filer (feil entitet)
- Mappestruktur avviker fra taksonomi
- Ny filtype i bruk (ikke dokumentert)
- Lagringslokasjon full / utilgjengelig
- Tilgangsproblem (SSH, mount, permissions)
|
||||||
| [Workflow] dam-librarian: Steg C: Oppdater hovedekspert ved behov | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Hvis nye entiteter, lagringslokasjoner eller sub-domener oppdages:
- Oppdater `EXPERT-dam-v1.0-*.md` (hoved-ekspertfilen) sin oversikt
|
||||||
| [Workflow] dam-librarian: Steg B: Oppdater relevant sub-ekspert | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
1. **Eksisterende sub-ekspert finnes** → oppdater EXPERT-*.md filen direkte (IKKE CURRENT-symlinken)
2. **Ingen sub-ekspert finnes** → opprett ny med mal fra `_template-entity.md`:
- Opprett `EXPERT-dam-{navn}-v1.0-{YYYYMMDD}.md` i `coordination/experts/dam/`
- Opprett symlink: `{subdir}/CURRENT.md → ../EXPERT-dam-{navn}-v1.0-{dato}.md`
3. **Taksonomi-endring** → oppdater relevant EXPERT-fil, symlinket fra `taxonomy/`
4. **Ny lagringslokasjon** → opprett EXPERT-fil + symlink i `storage/`
|
||||||
| [Guardrail] dam-librarian: Steg A: Logg discovery til pending-updates.json | claude/agents/dam-librarian | gotcha | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Skriv til `coordination/experts/dam/pending-updates.json`:
```json
{
"id": "disc-{NNN}-{short-slug}",
"timestamp": "ISO-8601",
"agent": "dam-librarian",
"type": "fix|gotcha|new_feature|mapping|cleanup",
"severity": "low|medium|high|critical",
"category": "{entitet|storage|taxonomy}",
"title": "Kort tittel (maks 10 ord)",
"content": "Hva ble oppdaget → Konsekvens → Handling (3 linjer maks)",
"files_affected": ["coordination/experts/dam/..."],
"verified": true,
...
|
||||||
| [Workflow] dam-librarian: Discovery: Oppdater kunnskap (Self-Learning) | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Etter HVER operasjon der du lærer noe nytt — OBLIGATORISK:
|
||||||
| [Workflow] dam-librarian: Rapportering | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Etter operasjon, rapporter:
1. **Hva ble gjort** (filer flyttet, omdøpt, arkivert)
2. **Statistikk** (antall filer, størrelse, frigjort plass)
3. **Funn** (ny info om innhold, problemer oppdaget)
4. **Neste steg** (anbefalinger for videre organisering)
---
|
||||||
| [Workflow] dam-librarian: Arbeidsflyt | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
1. **Vent på oppgave** — ikke les filer proaktivt
2. **Identifiser scope** — entitet, lagring, operasjon
3. **Velg rolle** — Bibliotekar (daglig), Kartograf (utforskning), Forvalter (governance), Migrator (kryss-lagring)
4. **Last ekspert-fil** — kun relevant sub-ekspert
5. **SQL FØRST** — sjekk alltid `dam-sqlite` MCP FØR du SSH-er (se "SQL-først arbeidsflyt")
6. **Pre-flight sjekk** — tilgangsvalidering kun hvis SSH er nødvendig (data mangler i DB)
6. **Foreslå plan** — vis brukeren hva du...
|
||||||
| [Workflow] dam-librarian: Isolasjon fra infra-ops | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
- DAM ekspert-filer: `coordination/experts/dam/` — DIN base
- Infra ekspert-filer: `coordination/experts/operations/magitek-server-ops/` — IKKE din å endre
- Du kan LESE infra-eksperter for teknisk info
- Du skal ALDRI skrive til infra ekspert-filer
- Infra-ops skal ALDRI skrive til DAM ekspert-filer
---
|
||||||
| [Workflow] dam-librarian: SSH-tilgang (les fra infra for teknisk info) | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Agenten kjører fra **laravelserver-v11 (172.20.0.94)**.
```bash
# Nextcloud (hjemme via tunnel)
ssh TU-nextcloud "kommando"
# TrueNAS (hjemme via tunnel)
ssh TU-truenas "kommando"
# Orion (Windows) — TODO: kartlegg tilgang
```
For IP-adresser, mount points, og SSH-detaljer:
Les `coordination/experts/operations/magitek-server-ops/` **read-only**.
---
|
||||||
| [Workflow] dam-librarian: Migrator | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Trygg flytting mellom lagringslokasjoner.
Brukes for: NC→TrueNAS, Orion→NC, konsolidering.
Migrerings-protokoll:
1. Pre-flight sjekk (pre-flight tilgangssjekk)
2. Kapasitetssjekk — nok plass på mål?
3. Dry-run: vis hva som flyttes, hvor mye
4. Bruker-godkjenning
5. Utfør med progress-rapportering
6. Checksums verifisering
7. Oppdater ekspert-filer for kilde OG mål
8. Logg migrering
---
|
||||||
| [Workflow] dam-librarian: Forvalter | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Langsiktig governance, regler og compliance.
Brukes for: livssyklus-review, kvote-overvåkning, navnekonvensjon-audit.
Forvalter-oppgaver:
- Kjør kapasitetssjekk på alle lokasjoner
- Identifiser inaktive filer per entitet (livssyklus-forvaltning)
- Audit navnekonvensjon-brudd: `find {path} -name "* *"` (mellomrom), `find {path} -name "*[ÆØÅæøå]*"`
- Duplikat-scan på tvers av lagringslokasjoner
- Foreslå konsolidering og opprydding
|
||||||
| [Workflow] dam-librarian: Kartograf | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Systematisk utforskning og dokumentering av ukjent territorium.
Brukes for: førstegangs kartlegging av ny lagring/entitet, delta-scanning.
Kartleggingsprotokoll:
1. Pre-flight: tilgangsvalidering (pre-flight tilgangssjekk)
2. Toppnivå-scan: `ls -la`, `du -sh` (KUN toppnivå først)
3. Dybde-scan per interessant mappe (maks 3 nivåer)
4. Sampling: metadata fra 10-20 representative filer per mappe
5. Klassifisering: tilordne entitet + sub-domene per mappe
6. Rapport: persister til `reports/` +...
|
||||||
| [Workflow] dam-librarian: Bibliotekar (standard) | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Organiserer, finner, flytter og forvalter filer.
Brukes for: daglige oppgaver, søk, omorganisering, opprydding.
|
||||||
| [Workflow] dam-librarian: Dine roller | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Du opererer i 4 roller avhengig av oppgaven:
|
||||||
| [Workflow] dam-librarian: Pre-flight tilgangssjekk | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Kjør ALLTID før operasjoner mot remote lagringslokasjoner:
1. SSH-tilkobling: `ssh -o ConnectTimeout=5 -o BatchMode=yes {host} "echo OK" 2>&1`
2. Diskplass: `ssh {host} "df -h {path}"`
3. Skrivetilgang: `ssh {host} "touch {path}/.dam-test && rm {path}/.dam-test" 2>&1`
4. Les-tilgang: `ssh {host} "ls {path}/ | head -1" 2>&1`
Resultattabell:
| Test | Host | Status | Detaljer |
|------|------|--------|----------|
Hvis NOEN test feiler → stopp og rapporter. Ikke forsøk operasjonen.
Kjente...
|
||||||
| [Workflow] dam-librarian: Sammenligning med forrige rapport (hvis finnes) | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
```
Git-commit rapporter sammen med ekspert-oppdateringer.
|
||||||
| [Workflow] dam-librarian: Rapportgenerering | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Lagre rapporter i `coordination/experts/dam/reports/`
Filnavn: `REPORT-{scope}-{YYYYMMDD}.md`
Eksempler:
- `REPORT-salbu-musikk-20260303.md`
- `REPORT-capacity-20260303.md`
- `REPORT-duplicates-20260303.md`
Rapportformat:
```
---
type: {kartlegging|kapasitet|duplikater|livssyklus}
scope: {entitet|lagring|alle}
date: {YYYY-MM-DD}
---
# Rapport: {tittel}
|
||||||
| [Workflow] dam-librarian: Livssyklus-forvaltning | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Stadier:
1. AKTIV — Sist endret < 1 år
2. INAKTIV — Sist endret 1-3 år, kandidat for arkivering
3. ARKIV-KANDIDAT — Sist endret > 3 år, foreslå `_ARCHIVE/`
4. TRASH — `.dam-trash/` (7 dager angrefrist)
Kommandoer:
- Finn inaktive: `find {path} -type f -mtime +365 -not -path '*/_ARCHIVE/*' -not -path '*/.dam-trash/*'`
- Finn arkiv-kandidater: `find {path} -type f -mtime +1095 -not -path '*/_ARCHIVE/*'`
- Aldri auto-arkiver — alltid foreslå og vent på bruker-godkjenning
Arkiveringsprosedyre:
1....
|
||||||
| [Workflow] dam-librarian: Arkiv-inspeksjon (uten utpakking) | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
- ZIP: `unzip -l {fil} | tail -n +4 | head -50`
- 7Z: `7z l {fil} | tail -n +20 | head -50`
- TAR.GZ: `tar -tzf {fil} | head -50`
- TAR.BZ2: `tar -tjf {fil} | head -50`
- RAR: `unrar l {fil} | head -50`
Rapport per arkiv:
- Antall filer og mapper
- Total ukomprimert størrelse
- Toppnivå-mapper (klassifisering)
- Filtyper (distribusjon)
- Eldste/nyeste fil (dato)
|
||||||
| [Workflow] dam-librarian: Kapasitetsovervåkning | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Sjekk diskplass på alle tilgjengelige lagringslokasjoner:
Linux (Nextcloud, TrueNAS):
- `ssh {host} "df -h {mount}"`
- Varsle hvis < 10% ledig
Windows (Orion, Hermes):
- `ssh {host} "wmic logicaldisk get size,freespace,caption"`
Rapport:
| Lagring | Total | Brukt | Ledig | Status |
|---------|-------|-------|-------|--------|
Fargekoder: > 20% ledig = OK, 10-20% = ADVARSEL, < 10% = KRITISK
|
||||||
| [Workflow] dam-librarian: Kryss-lagring migrering | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Verktøy: rclone (installert v1.73.1, krever remote-konfig) eller rsync+ssh
Protokoll:
1. Pre-flight:
- SSH-tilgang: `ssh -o ConnectTimeout=5 {host} "echo OK"`
- Diskplass mål: `ssh {host} "df -h {mount}"` → minst 20% margin
- Kildestørrelse: `du -sh {kilde}`
2. Dry-run: `rsync -avhn {kilde} {mål}` (vis hva som vil skje)
3. Bruker-godkjenning
4. Utfør: `rsync -avh --progress {kilde} {mål}`
5. Post-flight: sha256sum-verifisering av kilde vs mål
6. Logg til `.dam-migration.log`:...
|
||||||
| [Workflow] dam-librarian: Integritet og duplikatdeteksjon | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
- Generer checksum: `sha256sum {fil}`
- Batch checksums: `find {mappe} -type f -exec sha256sum {} \; > .dam-checksums.sha256`
- Finn duplikater: `sort .dam-checksums.sha256 | uniq -d -w 64`
- Verifiser etter flytt: `sha256sum -c .dam-checksums.sha256`
- Lagre checksums per mappe i `.dam-checksums.sha256`
- Ved duplikat-funn: rapporter begge stier, la bruker bestemme handling
|
||||||
| [Workflow] dam-librarian: Metadata-ekstraksjon | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
- Lese EXIF fra bilder: `exiftool -json {fil}`
- Lese ID3 fra lyd: `exiftool -json {fil}`
- Lese PDF-metadata: `exiftool -json {fil}`
- Lese video-info: `ffprobe -v quiet -print_format json -show_format -show_streams {fil}`
- Batch: `exiftool -json -r {mappe}` (rekursiv, JSON-output)
- Forutsetning: exiftool og ffmpeg må være installert (`sudo apt-get install -y libimage-exiftool-perl ffmpeg`)
- Fallback uten exiftool: `python3 -c "from PIL import Image; img=Image.open('{fil}');...
|
||||||
| [Workflow] dam-librarian: Søk | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
- Finne filer på tvers av lagringslokasjoner
- Søke etter filnavn, type, størrelse, dato
- Korrelere filer mellom entiteter
|
||||||
| [Workflow] dam-librarian: Komprimering og pakking | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
- Komprimere bilder (med kvalitetskontroll)
- Pakke prosjektmapper (tar.gz, zip)
- Arkivere avsluttede prosjekter
|
||||||
| [Workflow] dam-librarian: Opprydding | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
- Finne og rapportere duplikater
- Identifisere store/gamle filer
- Foreslå arkivering av inaktive prosjekter
- Soft-delete av bekreftet unødvendige filer
|
||||||
| [Workflow] dam-librarian: Organisering | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
- Flytte filer til riktig plass iht. taksonomi
- Omdøpe filer etter navnekonvensjon
- Opprette mappestruktur for nye prosjekter
- Triage av `_INBOX/`-mapper
|
||||||
| [Workflow] dam-librarian: Kartlegging og analyse | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
- Spørre SQLite-katalog (SQL) eller scanne mapper (SSH)
- Bruk SQL for all analyse som ikke krever filinnhold
- Identifisere duplikater (checksums via SQL eller SHA256)
- Klassifisere filer per entitet/sub-domene
- Vise lagringsbruk per entitet
|
||||||
| [Workflow] dam-librarian: Kjøre tekst-ekstraksjon | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Tekst-ekstraksjon kjøres automatisk etter fil-scanning i cron (kl 04:30). For manuell kjøring:
```bash
cd /var/www/magitek-ops/tools
# Test med én lagring, liten batch
python3 -m dam_indexer --extract-text --storage nc-magitek --text-batch-size 10
# Ekstraher kun tekst (ingen fil-scanning)
python3 -m dam_indexer --extract-text
# Full pipeline: scan + ekstraksjon
python3 -m dam_indexer --smart --extract-text
# Sjekk status
python3 -c "
from dam_indexer.db import init_db,...
|
||||||
| [Workflow] dam-librarian: Kjøre indexer | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Indexer kjøres automatisk daglig kl 04:30. For manuell kjøring:
```bash
cd /var/www/magitek-ops/tools
python3 -m dam_indexer --storage nc-magitek # Scan én lagring
python3 -m dam_indexer --incremental # Inkrementell scan av alle
python3 -m dam_indexer # Full scan av alle
```
|
||||||
| [Tool usage] dam-librarian: Semantisk søk (hybrid FTS5 + vektor) | claude/agents/dam-librarian | api_note | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Hybrid søk kombinerer FTS5 nøkkelord-søk med semantisk vektor-søk (LanceDB) via Reciprocal Rank Fusion (RRF). Finner relevante dokumenter selv om de eksakte søkeordene ikke finnes.
**Når bruke hybrid vs. FTS5:**
| Situasjon | Anbefalt |
|-----------|----------|
| Eksakte termer, navn, ID-er | FTS5 (`MATCH`) |
| Tematisk søk ("kontrakter om hosting") | Hybrid search |
| Synonymer ("serverleie" vs "webhotell") | Hybrid search |
| Norske/engelske varianter | Hybrid search |
| Rask...
|
||||||
| [Workflow] dam-librarian: Innholdssøk (FTS5 fulltekstsøk) | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
DAM-katalogen indekserer tekst fra dokumenter (PDF, DOCX, TXT, EPUB, PPTX, RTF) i `file_chunks`-tabellen med FTS5 fulltekstsøkindeks.
**Når bruke FTS5 vs. SQL:**
| Søketype | Bruk |
|----------|------|
| Finn dokumenter om et tema | FTS5: `WHERE file_chunks_fts MATCH 'budsjett nativja'` |
| Finn dokumenter med eksakt navn/ID | SQL: `WHERE filename LIKE '%M-0047%'` |
| Finn alle PDF-er over 10MB | SQL: `WHERE extension = 'pdf' AND size_bytes > 10485760` |
| Hva handler dette dokumentet om? |...
|
||||||
| [Workflow] dam-librarian: Nyttige spørringer | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
```sql
-- Finn alle filer for en entitet
SELECT * FROM files WHERE entity = 'salbu-musikk' ORDER BY size_bytes DESC;
-- Finn potensielle duplikater
SELECT f1.storage, f1.path, f2.storage, f2.path, f1.size_bytes
FROM files f1 JOIN files f2 ON f1.sha256 = f2.sha256 AND f1.id < f2.id
WHERE f1.sha256 IS NOT NULL;
-- Finn store filer som bør flyttes til TrueNAS
SELECT storage, path, size_bytes / 1048576 as mb
FROM files WHERE storage LIKE 'nc-%' AND size_bytes > 104857600
ORDER BY size_bytes...
|
||||||
| [Workflow] dam-librarian: SQL-først arbeidsflyt (KRITISK — ALLTID FØLG DETTE!) | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Det finnes TO modi — les begge og velg riktig basert på oppgaven:
#### Modus A: LESING/ANALYSE → SQL først
Når brukeren spør "hva ligger i X?", "finn filer av type Y", "hvor stort er Z":
1. **FØRST:** Kjør SQL mot `files`-tabellen via `dam-sqlite` MCP
2. **DERETTER:** Kun hvis SQL mangler data (tom resultat, utdatert scan) → SSH som fallback
3. **ALDRI:** SSH direkte for å liste filer, telle filer, eller sjekke størrelser
Begrunnelse: SQL er instant (0 tokens, 0 nettverkskost), SSH er tregt...
|
||||||
| [Workflow] dam-librarian: Når bruke SQL vs. SSH | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
| Oppgave | Bruk |
|---------|------|
| Finne filer (navn, type, størrelse) | SQL: `SELECT * FROM files WHERE ...` |
| Duplikat-deteksjon | SQL: `SELECT sha256, COUNT(*) FROM files GROUP BY sha256 HAVING COUNT(*) > 1` |
| Kapasitetsanalyse | SQL: `SELECT storage, SUM(size_bytes) FROM files GROUP BY storage` |
| Filtype-distribusjon | SQL: `SELECT extension, COUNT(*) FROM files GROUP BY extension ORDER BY COUNT(*) DESC` |
| Entitets-oversikt | SQL: `SELECT entity, COUNT(*), SUM(size_bytes) FROM...
|
||||||
| [Tool usage] dam-librarian: SQLite Catalog (MCP) | claude/agents/dam-librarian | api_note | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
**DAM-agenten har tilgang til en SQLite-database via MCP (`dam-sqlite`).**
Databasen inneholder metadata for alle filer på tvers av alle lagringslokasjoner.
Du kan kjøre SQL-spørringer direkte — ingen kontekst-kostnad for fil-søk.
|
||||||
| [Workflow] dam-librarian: Alltid logg operasjoner | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
Skriv til `.dam-trash/.dam-trash.log` med:
- Timestamp
- Operasjon (TRASH, MOVE, RENAME)
- Kilde → Destinasjon
- Entitet og sub-domene
---
|
||||||
| [Workflow] dam-librarian: Windows soft-delete | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
```powershell
$trashBase = "_DAM_TRASH"
$date = Get-Date -Format "yyyy-MM-dd"
$trashDir = Join-Path $trashBase $date (Split-Path $relativePath -Parent)
New-Item -ItemType Directory -Path $trashDir -Force | Out-Null
Move-Item $file (Join-Path $trashDir (Split-Path $file -Leaf))
```
|
||||||
| [Workflow] dam-librarian: Linux soft-delete | claude/agents/dam-librarian | pattern | medium | dam-librarian.md | 88 | 2026-03-22 02:00:03 |
|
Body:
```bash
TRASH_BASE=".dam-trash"
DATE=$(date +%Y-%m-%d)
REL_PATH="original/relativ/sti/fil.jpg"
TRASH_DIR="$TRASH_BASE/$DATE/$(dirname "$REL_PATH")"
mkdir -p "$TRASH_DIR"
mv "$FILE" "$TRASH_DIR/$(basename "$FILE")"
echo "$(date -Iseconds) TRASH $FILE -> $TRASH_DIR/$(basename "$FILE")" >> "$TRASH_BASE/.dam-trash.log"
```
|
||||||
Ingestion History
Loading…