# Devin Desktop retter filen. Maguyva ser repoet.

Canonical source: https://maguyva.ai/da/for-windsurf

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Devin Desktop (Windsurf-IDE'en) er editoren, og Devin Local er agenten. I et monorepo har agenten stadig brug for et kort over, hvilken fil der betyder noget. Maguyva indekserer din kodebase og leverer den tilbage over MCP (semantisk, AST, graf og tekst), så “hvor sker auth” giver det rigtige auth-flow tilbage — ikke syv teststubbe.

> Devin Desktop retter det, du peger på. Maguyva fortæller Devin Local, hvilken fil den skal pege på.

## Hvad hvert lag gør

Fire dele. Hver har en opgave.

### Devin Desktop

Hvor du og Devin Local rent faktisk arbejder.

### @-nævnelser + .devin/rules/

Manuel kontekst vinder, indtil repoet bliver stort.

### Maguyva

Automatiske kodebasefakta over MCP.

### Arbejdsområder, ikke brugere

Agenter medfører ingen ekstra gebyrer pr. bruger. [Se priser](https://maguyva.ai/da/pricing)

## Devin Desktop er editoren. Brug den.

IDE'en er ikke problemet. Devin Local, tab-completion, rettelser på tværs af flere filer og `.devin/rules/` er glimrende, og du bruger dem allerede til:

- Inline-forslag og Devin Local-rettelser i den åbne fil.
- Rettelser på tværs af flere filer, når ændringen er lokal.
- `.devin/rules/` til repo-konventioner og stilregler.
- `@`-nævnelser til at trække en bestemt fil ind i konteksten.

Bliv ved med det. Intet af det forsvinder.

Men i et rigtigt monorepo (TypeScript med workspace-afhængigheder, Python-services, blandede pakker) går agentkonteksten i stykker i det øjeblik, den relevante fil ikke allerede er på Devin Locals radar.

## Manuelle løsninger, du allerede har prøvet, og hvor de går i stykker

Fire manuelle løsninger parret med deres svigttilstand. Venstre = det, du gør i dag. Højre = hvor det går i stykker.

### // nævn filerne

Du `@`-nævner de tre filer, du tror betyder noget. Devin Local retter rent inde i dem.

### // nævnelse er et gæt

Det virker, når du allerede ved, hvilke filer der er involveret. Hele pointen med kontekstværktøjer er at fremdrage de filer, du ikke vidste, du skulle nævne.

### // indsæt uddragene

Du indsætter 200 linjer fra en anden pakke i Devin Local for at give den nok kontekst.

### // indsat kode bliver forældet

Uddraget, du indsatte klokken 9, afspejler ikke den rebase, din kollega landede klokken 11. Devin Local retter mod en fantomversion af pakken.

### // skriv et kontekstdokument

Du skriver en `.devin/rules/`-fil eller en arkitektur-markdown. Den er korrekt i dag.

### // dokumentation bliver hurtigere forældet end kode

Alt, du skriver i hånden, kommer gradvist ud af trit med virkeligheden. Koden er den eneste sandhed. Et dokument, der forklarer kølaget, er korrekt i en uge — og forkert for evigt derefter.

### // behold regelfilerne

Du tilføjer `.devin/rules/` til navngivning, lint og build-kommandoer. Fremragende til adfærd.

### // regler ≠ indeks

`.devin/rules/` er det rette sted til “kør altid pnpm tsc -b før commits.” Det er ikke et søgbart indeks over hvert symbol, hver fil og hvert kaldested i dit monorepo.

## Maguyva er laget nedenunder

Ikke en erstatning for Devin Desktop. Repo-kontekstlaget, der hægter sig på Devin Locals MCP-understøttelse.

- **Semantisk + AST + graf + tekst**: søg efter betydning, struktur, afhængighed eller ordret tekst. Hvert træf giver en filsti og et linjenummer.
- **På tværs af pakker som standard**: kaldesteder og importører på tværs af alle pakker i monorepoet — ikke kun den, Devin Local har åben.
- **Branch-bevidst**: Maguyva ser den version af koden, Devin Local retter i.
- **Supplerende, ikke konkurrerende**: `.devin/rules/` bliver ved med at gøre sit arbejde. `@`-nævnelser bliver ved med at gøre deres. Maguyva udfylder det hul, de ikke udfylder.

> Devin Local retter den fil, du peger på.
> Maguyva fortæller agenten, *hvilken fil den skal pege på.*

## Tre monorepo-workflows

På tværs af pakker og sprog. Forankret i den faktiske kaldgraf — ikke Devin Locals grep.

### 01. Find auth-flowet på tværs af pakker, uden at nævne noget

```text
devin> hvor sker autentificering i dette monorepo?

graph::query("authentication flow")
  packages/web/src/auth/session.ts:42       middleware
  packages/api/src/auth/jwt.ts:88           token-verificering
  packages/shared/src/auth/types.ts:12      AuthContext
  packages/admin/src/auth/admin-only.ts:31  rbac-tjek

→ 4 indgangspunkter på tværs af 4 pakker, rangeret efter kaldested-tæthed.
[exit 0]
```

Du nævnte ikke en fil. Du indsatte ikke et uddrag. Devin Local har de fire filer, der betyder noget, i den rette rangering, og kan lave en forankret rettelse.

### 02. Find den rigtige implementering, ikke teststubben

```text
devin> hvordan håndterer normalizePhoneNumber E.164?

semantic::query("normalize phone E.164")
  packages/shared/util/phone.ts:88     normalizePhoneNumber()  ← rigtig impl.
  packages/api/test/phone.spec.ts:14   jest.mock(...)          ← stub
[exit 0]
```

Navne lyver. Mocks overskygger rigtig kode. Maguyva rangerer den rigtige implementering over test-mock'en, på tværs af alle pakker.

### 03. Tjek blast radius, før du refaktorerer

```text
devin> hvad kalder QueueDispatcher.publish på tværs af monorepoet?

graph::callers(QueueDispatcher.publish)
  3 i packages/billing/*
  1 i packages/audit/*
  1 i packages/notifications/*
  1 i services/python-worker/*  ← på tværs af sprog via gRPC-stub
[exit 0]
```

På tværs af pakker, og på tværs af sprog når du har et polyglot repo, dukker kaldesteder op direkte. Diffen er forankret i de rigtige importører, ikke Devin Locals grep.

## Opsætning med Devin Desktop

Tre trin. Free-niveau: 3 repos, Op til 50K indekserede repo-linjer, intet kreditkort.

### 01. Indekser et repo på maguyva.ai

Vælg det monorepo, hvor manglende kontekst har givet flest problemer.

### 02. Tilføj Maguyva som en MCP-server i Devin Desktop

`~/.config/devin/mcp_config.json`

```json
{
  "mcpServers": {
    "maguyva": {
      "url": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
      }
    }
  }
}
```

### 03. Stil ét spørgsmål, du allerede kender svaret på

Start ikke med hele din virksomhed. Start med ét repo og ét verificerbart spørgsmål, som “hvad kalder `formatInvoice` på tværs af pakker?”

## Indekser ét repo, du allerede kender.

Test ét spørgsmål, du kan verificere svaret på.
