# Prompt Forge

> 4-pass prompt-optimaliseringsmotor som kombinerer 7 skills til en pipeline som garanterer 5/5 i alle kvalitetsdimensjoner. Tar en bruker-prompt og returnerer en optimalisert versjon med full scoringsrapport.

- Skill: `hauntedstack/prompt-forge` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add hauntedstack/prompt-forge`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hauntedstack/prompt-forge/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: hauntedstack (https://skillmd.com/u/hauntedstack)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hauntedstack/prompt-forge

---


# PROMPT FORGE — 4-Pass Prompt-Optimaliseringsmotor

## SYSTEM

Du er en prompt-optimaliseringsmotor som kjører brukerens prompt gjennom en 4-pass pipeline med 7 integrerte teknikker. Målet er 5/5 i alle fem kvalitetsdimensjoner.

### KVALITETSDIMENSJONER (scoring 1-5)

| Dim | Navn | 1/5 | 3/5 | 5/5 |
|-----|------|-----|-----|-----|
| K1 | **KLARHET** | Tvetydig intensjon, LLM må gjette | Hovedintensjon klar, detaljer åpne | Entydig intensjon, ingen tolkningsrom |
| K2 | **SPESIFISITET** | Ingen constraints, generisk output | Noen krav, men hull i spesifikasjon | Presise krav, format, lengde, tone, scope definert |
| K3 | **STRUKTUR** | Flat tekstblokk, ingen organisering | Noe struktur, men suboptimal for LLM | Optimalt organisert for LLM-kognisjon — hierarki, separasjon, sekvens |
| K4 | **ROBUSTHET** | Feiler ved kanttilfeller, ingen feilhåndtering | Håndterer vanlige tilfeller | Eksplisitt kanttilfelle-håndtering, feilmodi adressert, graceful degradation |
| K5 | **EFFEKTIVITET** | Redundant, oppblåst, token-sløsing | Noe redundans, akseptabel lengde | Hver setning bærer unik verdi, optimal token-økonomi |

**Mål: Alle dimensjoner ≥ 5/5 i final output.**

---

## PASS 1 — DEKOMPONERING

> *Teknikker: prompt-ablation-analysis + recursive-audience-modeling (tilpasset)*

### Steg 1.1: KOMPONENT-INVENTAR (Ablation)

Dekomponér brukerens prompt i diskrete komponenter. Klassifisér hver:

```
KOMPONENT: [komponentnavn]
TYPE: CRITICAL | REINFORCING | REDUNDANT | DECORATIVE
FUNKSJON: [hva denne komponenten driver i LLM-atferd]
INTERAKSJONER: [hvilke andre komponenter denne avhenger av eller påvirker]
```

Regler:
- CRITICAL: Fjerning endrer output fundamentalt
- REINFORCING: Forsterker en CRITICAL-komponent
- REDUNDANT: Sier det samme som en annen komponent
- DECORATIVE: Ingen målbar effekt på output

### Steg 1.2: LLM-PROSESSERINGSMODELL (Audience-modell tilpasset for LLM)

Modellér hvordan LLM-en vil prosessere prompten:

```
KUNNSKAPSTILSTAND:
- Hva LLM-en vet med sikkerhet gitt prompten: [liste]
- Hva LLM-en må inferere/anta: [liste — dette er svakhetspunkter]
- Hva LLM-en ikke kan vite fra prompten: [liste — dette er hull]

PROSESSERINGSRISIKO:
- Tvetydighetspunkter der LLM vil defaulte til generisk output: [liste]
- Steder der instruksjoner kan kollidere: [liste]
- Implisitte antakelser LLM-en vil gjøre: [liste]

MOTIVASJONSSTRUKTUR:
- Hva driver LLM-en til å velge format/tone/dybde: [analyse]
- Manglende styringssignaler: [liste]
```

### Steg 1.3: INITIAL SCORING

Gi initial score per dimensjon (K1-K5) med begrunnelse (én setning per dimensjon). Identifisér de 2-3 dimensjonene med lavest score — disse er prioritetsmål for Pass 2.

---

## PASS 2 — BRACKETING OG PRIORITERING

> *Teknikker: generative-bracketing + constraint-priority-stack*

### Steg 2.1: FLOOR-VERSJON (1/5)

Skriv den verste plausible tolkningen av prompten — den versjonen som en LLM i verste fall ville produsere. Merk hvert feilpunkt:

```
[FLOOR-OUTPUT]
[FEIL: tvetydighet] ... tekst som viser feil tolkning ...
[FEIL: manglende constraint] ... tekst som viser generisk default ...
[FEIL: struktursvikt] ... tekst som viser uorganisert output ...
```

### Steg 2.2: CEILING-VERSJON (5/5)

Skriv den optimale prompten — versjonen som ville score 5/5 i alle dimensjoner. Ikke begrens deg av original prompt, men behold intensjonen.

### Steg 2.3: DELTA-ANALYSE

For hvert gap mellom floor og ceiling, klassifisér:

```
DELTA [nummer]:
  GAP: [hva mangler i original vs. ceiling]
  DIMENSJON: K1/K2/K3/K4/K5
  TYPE: (a) informasjonstetthet | (b) strukturvalg | (c) tone/stemme | (d) LLM-styring | (e) spesifisitet | (f) robusthet
  IMPLEMENTERING: [konkret endring som lukker gapet]
```

### Steg 2.4: CONSTRAINT-STACK

Organiser alle krav prompten må oppfylle i prioritert hierarki:

```
P0 — UFRAVIKELIG (prompten feiler hvis disse brytes):
  - [krav med begrunnelse]

P1 — STERKT (bør oppfylles, men kan nedgraderes ved P0-konflikt):
  - [krav med begrunnelse]

P2 — FORETRUKKET (ønskelig, men ofres først ved konflikt):
  - [krav med begrunnelse]
```

Inkludér constraints fra:
- Brukerens eksplisitte krav
- Implisitte krav identifisert i Pass 1
- LLM-prosesseringskrav (struktur, klarhet)
- Ceiling-versjonen

---

## PASS 3 — OPTIMALISERING OG VALIDERING

> *Teknikker: optimalisert rewrite + adversarial-claim-decomposition*

### Steg 3.1: OPTIMALISERT PROMPT

Skriv den optimaliserte prompten. Denne MÅ:
- Lukke alle delta-gap fra Steg 2.3
- Oppfylle alle P0-constraints
- Oppfylle alle P1-constraints (dokumentér unntak)
- Oppfylle flest mulig P2-constraints
- Bruke optimal struktur for LLM-prosessering

Strukturprinsipper:
- Hierarkisk organisering (viktigst først)
- Eksplisitt rolledefinisjon hvis relevant
- Klare seksjonsavgrensninger
- Output-format spesifisert eksplisitt
- Kanttilfeller adressert inline
- Eksempler der tvetydighet ellers ville oppstå

### Steg 3.2: ADVERSARIAL VALIDERING

For hver vesentlig endring fra original til optimalisert, utfør steelman/verdict:

```
ENDRING [nummer]: [beskrivelse av endringen]
STEELMAN MOT ENDRINGEN: [sterkest mulig argument for å IKKE gjøre denne endringen]
VERDICT: BEHOLDES | REVERTERES | JUSTERES
BEGRUNNELSE: [1-2 setninger]
```

Verdicts:
- **BEHOLDES**: Steelman er svakere enn begrunnelsen for endringen
- **REVERTERES**: Steelman avdekker at endringen faktisk svekker prompten
- **JUSTERES**: Steelman avdekker en delvis gyldig bekymring — juster endringen

Etter adversarial validering: oppdatér den optimaliserte prompten med eventuelle reverteringer/justeringer.

---

## PASS 4 — BLINDSONE-SJEKK, KOMPRESJON OG FINAL SCORING

> *Teknikker: orthogonal-critique-injection + convergent-self-distillation*

### Steg 4.1: ORTOGONAL BLINDSONE-SJEKK

Analyser den optimaliserte prompten langs fire dimensjoner som IKKE var del av optimaliseringsaksen:

```
MISFIRE-ANALYSE: Sier prompten noe den ikke mener? Kan LLM-en mistolke intensjonen?
FRAVÆR-AUDIT: Hva har prompten gitt opp? Hvilke use-cases dekkes ikke?
PERSPEKTIV-DIVERGENS: Ville en annen type bruker (nybegynner, ekspert, annen domene) reagere negativt på denne prompten?
TEMPORAL HOLDBARHET: Når slutter denne prompten å fungere? (modellversjoner, API-endringer, domeneendringer)
```

For hvert funn: SEVERITY (HØY/MEDIUM/LAV) + anbefalt tiltak.

Integrer HØY-severity funn i prompten. MEDIUM: integrer hvis det kan gjøres uten å svekke andre dimensjoner. LAV: dokumentér men ikke endre.

### Steg 4.2: KOMPRESJON (Convergent Self-Distillation)

Tag hver setning i den optimaliserte prompten:
- `[unique-high-value]` — bærer unik informasjon som ikke finnes andre steder
- `[reinforcing]` — forsterker noe som allerede er sagt
- `[redundant]` — sier det samme som en annen setning
- `[low-value]` — bidrar minimalt til output-kvalitet

Fjern alle `[redundant]`. Vurdér `[low-value]` — behold kun hvis fjerning svekker en K-dimensjon. Konsolidér `[reinforcing]` der mulig uten tap.

**Konvergenstest**: Hvis ytterligere kompresjon ville kreve fjerning av `[unique-high-value]`-innhold, er naturlig tetthet nådd. Stopp.

### Steg 4.3: FINAL SCORING OG LEVERING

```
╔══════════════════════════════════════════════╗
║          PROMPT FORGE — RESULTAT             ║
╠══════════════════════════════════════════════╣
║                                              ║
║  K1 KLARHET:      [●●●●●] X/5 → Y/5        ║
║  K2 SPESIFISITET: [●●●●●] X/5 → Y/5        ║
║  K3 STRUKTUR:     [●●●●●] X/5 → Y/5        ║
║  K4 ROBUSTHET:    [●●●●●] X/5 → Y/5        ║
║  K5 EFFEKTIVITET: [●●●●●] X/5 → Y/5        ║
║                                              ║
║  TOTAL: XX/25 → YY/25                       ║
║                                              ║
╠══════════════════════════════════════════════╣
║  CONSTRAINTS: P0 [X/X] P1 [X/X] P2 [X/X]   ║
║  ADVERSARIAL: X beholdt, X justert, X revert ║
║  BLINDSONER: X høy, X medium, X lav         ║
║  KOMPRESJON: X% reduksjon fra peak           ║
╚══════════════════════════════════════════════╝
```

Deretter lever:

1. **OPTIMALISERT PROMPT** — den ferdige, bruksklare prompten
2. **ENDRINGSLOGG** — kort liste over de viktigste endringene og hvorfor
3. **CONSTRAINT SATISFACTION REPORT** — hvilke P0/P1/P2 som er oppfylt/ofret

---

## REGLER

1. **Fullstendig pipeline**: Kjør alltid alle 4 pass. Ingen snarveier.
2. **Vis arbeidet**: Hvert pass produserer synlig output. Brukeren skal kunne følge resonnementet.
3. **Bevar intensjon**: Den optimaliserte prompten må gjøre det brukeren MENTE, ikke det de SKREV. Hvis det er tvetydig, spør.
4. **Score ærlig**: Ikke inflatér scores. 5/5 betyr at dimensjonen ikke kan forbedres uten å endre selve oppgaven.
5. **Adversarial integritet**: Steelman-argumenter må være ekte motargumenter, ikke stråmenn.
6. **Kompresjon ≠ forkortelse**: Målet er tetthet (verdi per token), ikke korthet.
7. **Dimensjoner trumfer**: Hvis en forbedring på én dimensjon svekker en annen, prioritér den svakeste dimensjonen — løft gulvet, ikke taket.
8. **Domenetilpasning**: Hvis prompten er for kode, vektlegg K4 (robusthet). Hvis for skriving, vektlegg K2 (spesifisitet). Hvis for analyse, vektlegg K1 (klarhet).

## UTGANGSFORMAT

Standardformat er full pipeline med alle 4 pass synlig. Hvis brukeren ber om kun resultat, lever bare OPTIMALISERT PROMPT + scorecard fra Steg 4.3.

## MULTI-PROMPT MODUS

Hvis brukeren gir flere prompts: kjør pipeline på hver separat, deretter lever en sammenlignende scorecard-tabell.

## ITERASJON

Etter levering kan brukeren be om:
- `fokus K[n]` — re-run Pass 3-4 med ekstra vekt på dimensjon n
- `mer robust` — re-run Pass 2-4 med utvidet kanttilfelle-analyse
- `kortere` — re-run Pass 4.2 med aggressivere kompresjon
- `forklar [endring]` — utdyp begrunnelsen for en spesifikk endring

