feat(okr): /okr:export PDF via weasyprint + scripts/export-pdf.py (SC5)
This commit is contained in:
parent
5890d09ac9
commit
a0e533a856
2 changed files with 192 additions and 0 deletions
84
commands/export.md
Normal file
84
commands/export.md
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
---
|
||||
name: okr:export
|
||||
description: Eksporter OKR-dokumenter (kvalitetsvurdering, gap-matrise, statusrapport, retrospektiv) til print-klar PDF
|
||||
allowed-tools: Read, Bash
|
||||
argument-hint: "[dokumenttype eller filsti]"
|
||||
---
|
||||
|
||||
# OKR Export - Eksporter OKR-leveranser til PDF
|
||||
|
||||
Generer en print-klar A4-PDF av et OKR-dokument for deling med ledelse,
|
||||
Riksrevisjon eller styringsdialog. Konverterer Markdown til PDF via
|
||||
`scripts/export-pdf.py` (weasyprint), med tabell-striping og fargekodede
|
||||
score-celler (`.score-green` / `.score-yellow` / `.score-red`).
|
||||
|
||||
## Kontekstbevissthet
|
||||
|
||||
OKR-kontekst injiseres automatisk via hook. Sjekk system-konteksten FØR du spør:
|
||||
- Hvis syklus og aktive OKR-filer er listet (f.eks. `.claude/okr/syklus/T1-2026/`):
|
||||
tilby å eksportere dem direkte.
|
||||
- Hvis `.claude/okr/dokumenter/` inneholder genererte rapporter: tilby disse.
|
||||
- Spør kun om dokumenttype når konteksten ikke gjør valget åpenbart.
|
||||
|
||||
## Arbeidsflyt
|
||||
|
||||
1. **Velg dokumenttype** — hvilken leveranse skal eksporteres:
|
||||
- **kvalitetsvurdering** — output fra `/okr:kvalitet`
|
||||
- **gap-matrise** — output fra `/okr:gap`
|
||||
- **statusrapport** — output fra `/okr:sporing`
|
||||
- **retrospektiv** — `retrospektiv.md` fra `/okr:oppsett arkiver`
|
||||
- eller en vilkårlig Markdown-fil brukeren oppgir.
|
||||
|
||||
2. **Sørg for Markdown-kilde** — hvis dokumentet finnes som fil, bruk filstien.
|
||||
Hvis det kun finnes i samtalen, skriv det til en `.md`-fil først (f.eks.
|
||||
`.claude/okr/dokumenter/kvalitetsvurdering-T1-2026.md`).
|
||||
|
||||
3. **Kjør eksporten** via Bash:
|
||||
```bash
|
||||
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/export-pdf.py <input.md> <output.pdf>
|
||||
```
|
||||
Eksempel:
|
||||
```bash
|
||||
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/export-pdf.py \
|
||||
.claude/okr/dokumenter/kvalitetsvurdering-T1-2026.md \
|
||||
.claude/okr/dokumenter/kvalitetsvurdering-T1-2026.pdf
|
||||
```
|
||||
|
||||
4. **Bekreft resultatet** — skriptet skriver `Skrev PDF: <sti>` til stderr ved
|
||||
suksess. Rapporter filstien til brukeren.
|
||||
|
||||
**Tips for fargekoding:** I Markdown-tabellen kan score-celler tagges med
|
||||
`attr_list`-syntaks slik at de blir fargelagt i PDF-en:
|
||||
|
||||
```markdown
|
||||
| KR | Score |
|
||||
|----|-------|
|
||||
| KR1 | 0.9 {: .score-green} |
|
||||
| KR2 | 0.5 {: .score-yellow} |
|
||||
| KR3 | 0.2 {: .score-red} |
|
||||
```
|
||||
|
||||
## Feilhåndtering
|
||||
|
||||
Eksporten har to dokumenterte forutsetninger (ikke bundlet med pluginet):
|
||||
|
||||
- **Manglende Python-pakker** (`markdown`, `weasyprint`) → skriptet avslutter med
|
||||
exit 1 og hintet:
|
||||
```
|
||||
pip install markdown weasyprint
|
||||
```
|
||||
- **Manglende native bibliotek** (Pango/cairo/gdk-pixbuf) → feiler ved rendring
|
||||
med exit 1 og hintet:
|
||||
```
|
||||
brew install pango
|
||||
```
|
||||
|
||||
Begge feil gir en tydelig instruks (ikke en traceback). Når en forutsetning
|
||||
mangler: rapporter instruksen til brukeren, ikke prøv å installere noe selv.
|
||||
|
||||
## Referanser
|
||||
|
||||
- `${CLAUDE_PLUGIN_ROOT}/scripts/export-pdf.py` — selve eksport-skriptet
|
||||
- `${CLAUDE_PLUGIN_ROOT}/commands/kvalitet.md` — produserer kvalitetsvurdering
|
||||
- `${CLAUDE_PLUGIN_ROOT}/commands/gap.md` — produserer gap-matrise
|
||||
- weasyprint: https://doc.courtbouillon.org/weasyprint/stable/
|
||||
Loading…
Add table
Add a link
Reference in a new issue