본문으로 건너뛰기
cccskills
무료GitHub에 공개

ftrl

Expert knowledge of Folketrygdloven (National Insurance Act) processing in melosys-api. Use when: (1) Understanding FTRL bestemmelser (§2-5 to §2-13), (2) Debugging yrkesaktiv/ikke-yrkesaktiv/pensjonist processing flows, (3) Understanding trygdedekning options and combinations, (4) Investigating vilkår for each bestemmelse, (5) Understanding medlemskapsperiode generation logic, (6) Debugging frivillig vs pliktig membership determination.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md12.9 KB
  • references/debugging.md9.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Folketrygdloven (FTRL) Domain

Folketrygdloven (National Insurance Act) Chapter 2 governs membership in the Norwegian social insurance scheme for persons outside treaty/EU contexts. This domain handles §2-1 through §2-13, managing pliktig (mandatory) and frivillig (voluntary) membership applications.

Quick Reference

Domain Model Hierarchy

Behandlingsresultat
├── medlemskapsperioder: List<Medlemskapsperiode>
│   ├── fom/tom: LocalDate          (columns fom_dato/tom_dato)
│   ├── bestemmelse: Bestemmelse
│   ├── medlemskapstype: Medlemskapstyper (PLIKTIG/FRIVILLIG)
│   ├── trygdedekning: Trygdedekninger   (column trygde_dekning)
│   ├── innvilgelsesresultat: InnvilgelsesResultat   (column innvilgelse_resultat)
│   ├── medlPeriodeID: Long?        (column medlperiode_id)
│   └── trygdeavgiftsperioder: Set<Trygdeavgiftsperiode>
└── trygdeavgiftType: Trygdeavgift_typer?

Note: Medlemskapsperiode (domain/.../Medlemskapsperiode.kt) has no arbeidsland column (dropped in V98), and no direct skatteforholdTilNorge/inntektsperioder collections; only trygdeavgiftsperioder is mapped directly (via grunnlagMedlemskapsperiode).

FTRL Bestemmelser (Paragraphs)

ParagraphTypeDescription
§2-1PliktigBosatt i Norge - grunnregel
§2-2PliktigArbeidstaker i Norge
§2-5.a-gPliktigOffentlig ansatte (statsforvaltning, forsvaret, etc.)
§2-5.hPliktigStudent med lån/stipend
§2-6PliktigSjømenn på norskregistrerte skip
§2-7.1FrivilligOpphold i Norge (ikke bosatt)
§2-7.4FrivilligFamiliemedlemmer §2-7
§2-7aFrivilligSjømenn bosatt i Norge, utenlandsk skip
§2-8.1.aFrivilligUtsendt arbeidstaker
§2-8.1.bFrivilligStudent utenlands
§2-8.1.cFrivilligOffentlig oppdrag/stipend
§2-8.1.dFrivilligPensjonist/uføretrygdet
§2-8.2FrivilligAndre yrkesaktive (rimelighetsvurdering)
§2-8.4FrivilligFamiliemedlemmer §2-8
§2-13UnntakUnntak fra medlemskap

Behandlingstema

The valid bestemmelser per tema are defined in code as YrkesaktivBestemmelser, IkkeYrkesaktivBestemmelser and PensjonistBestemmelser (service/.../ftrl/bestemmelse/). The lists below mirror those code objects.

TemaDescriptionBestemmelser (from code)
YRKESAKTIVWorking persons§2-1, §2-2, §2-3 andre ledd, §2-5 første ledd a-g, §2-7 første ledd, §2-7a, §2-8.1.a, §2-8.1.b, §2-8 andre ledd, + vertslandsavtaler (Arktisk råds sekretariat art16, Det internasjonale Barentssekretariatet art14, Den nordatlantiske sjøpattedyrkommisjon art16, Tilleggsavtale NATO)
IKKE_YRKESAKTIVNon-working persons§2-1, §2-5 første ledd h, §2-5 andre ledd, §2-7 første ledd, §2-7 fjerde ledd, §2-8.1.b, §2-8.1.c, §2-8 andre ledd, §2-8 fjerde ledd
PENSJONISTPensioners/disabled§2-1, §2-5 andre ledd, §2-7 første ledd, §2-7 fjerde ledd, §2-8.1.d, §2-8 andre ledd, §2-8 fjerde ledd

Trygdedekning (Coverage)

Coverage codes live in the Trygdedekninger enum (domain/.../kodeverk/Trygdedekninger). For FTRL the relevant values are FULL_DEKNING_FTRL (pliktige + §2-7/§2-7a) and the FTRL_2_9_* / FTRL_2_7* series (frivillig §2-8 / §2-7). There is no bare FULL_DEKNING, HELSEDEL or UTEN_DEKNING value in this enum (the bare HELSEDEL_* codes belong to a different enum, Avgiftsdekning).

CodeDescriptionUse Case
FULL_DEKNING_FTRLFull coverage in folketrygdenPliktige bestemmelser + §2-7/§2-7a
FTRL_2_9_FØRSTE_LEDD_A_HELSE§2-9 first ledd a, health onlyFrivillig §2-8
FTRL_2_9_FØRSTE_LEDD_B_PENSJON§2-9 first ledd b, pension onlyFrivillig §2-8
FTRL_2_9_FØRSTE_LEDD_C_HELSE_PENSJON§2-9 first ledd c, health + pensionFrivillig §2-8 (e.g. pensjonist)
FTRL_2_7_TREDJE_LEDD_B_HELSE_SYKE_FORELDREPENGER§2-7 third ledd bFrivillig §2-7
TILLEGGSAVTALE_NATO_HELSEDELNATO supplementary agreement, healthVertslandsavtale NATO

(The full FTRL_2_9_* matrix — including andre/tredje ledd variants — is enumerated in LovligeKombinasjonerTrygdedekningBestemmelse.)

Medlemskapstype

TypeDescription
PLIKTIGMandatory membership - automatic by law
FRIVILLIGVoluntary membership - by application

Service Layer

FtrlBestemmelser

Location: service/src/main/kotlin/.../ftrl/bestemmelse/FtrlBestemmelser.kt

@Component that resolves the valid bestemmelser for a given Behandlingstema (+ optional Trygdedekninger), by intersecting the tema list (YrkesaktivBestemmelser / IkkeYrkesaktivBestemmelser / PensjonistBestemmelser) with the legal trygdedekning-combinations from LovligeKombinasjonerTrygdedekningBestemmelse.

YrkesaktivBestemmelser / IkkeYrkesaktivBestemmelser / PensjonistBestemmelser

Location: service/src/main/kotlin/.../ftrl/bestemmelse/

Separate files defining valid bestemmelser for each behandlingstema.

MedlemskapsperiodeService

Location: service/src/main/kotlin/.../ftrl/medlemskapsperiode/MedlemskapsperiodeService.kt

Key operations:

  • hentMedlemskapsperioder() - Get periods for behandling
  • opprettMedlemskapsperiode() - Create new period
  • oppdaterMedlemskapsperiode() - Update existing period
  • erstattMedlemskapsperioder() - Replace periods (ny vurdering)

OpprettForslagMedlemskapsperiodeService

Location: service/src/main/kotlin/.../ftrl/medlemskapsperiode/OpprettForslagMedlemskapsperiodeService.kt

Creates suggested membership periods based on søknadsperiode and rules.

UtledMedlemskapsperioder

Location: service/src/main/kotlin/.../ftrl/medlemskapsperiode/UtledMedlemskapsperioder.kt

Logic for deriving membership periods from input data.

GyldigeTrygdedekningerService

Location: service/src/main/kotlin/.../ftrl/GyldigeTrygdedekningerService.kt

Returns valid trygdedekning options for given context.

LovligeKombinasjonerTrygdedekningBestemmelse

Location: service/src/main/kotlin/.../ftrl/bestemmelse/LovligeKombinasjonerTrygdedekningBestemmelse.kt

Defines valid combinations of trygdedekning and bestemmelse.

Vilkår System

Vilkår Structure

Location: service/src/main/kotlin/.../ftrl/bestemmelse/vilkaar/

VilkårForBestemmelse (interface)
├── VilkårForBestemmelseYrkesaktiv
├── VilkårForBestemmelseIkkeYrkesaktiv
└── VilkårForBestemmelsePensjonist

Each bestemmelse has associated vilkår (conditions) that must be evaluated.

AvklarteFaktaForBestemmelse

Location: service/src/main/kotlin/.../ftrl/bestemmelse/avklartefakta/

Defines which avklarte fakta are required for each bestemmelse.

Processing Flows

Yrkesaktiv Flow (§2-8)

┌─────────────────────┐
│ Søknad mottas       │
│ (behandlingstema:   │
│  YRKESAKTIV)        │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Velg bestemmelse    │
│ (§2-8.1.a, §2-8.2)  │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Avklar vilkår       │
│ (arbeidsgiver,      │
│  arbeidsland, etc.) │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Opprett medlemskaps-│
│ periode med avgift  │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Fatt vedtak         │
│ IVERKSETT_VEDTAK_   │
│ FTRL                │
└─────────────────────┘

Pensjonist Flow (§2-8.1.d)

┌─────────────────────┐
│ Søknad mottas       │
│ (behandlingstema:   │
│  PENSJONIST)        │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Bestemmelse:        │
│ §2-8.1.d automatisk │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Trygdedekning:      │
│ FTRL_2_9_*_HELSE    │
│ (kun helsedel)      │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Betalingsvalg:      │
│ FAKTURA/KONTONUMMER │
└─────────┬───────────┘
          │
          ▼
┌─────────────────────┐
│ Fatt vedtak         │
└─────────────────────┘

Saksflyt Integration

IVERKSETT_VEDTAK_FTRL

Step sequence (from ProsessflytDefinisjon):

LAGRE_PERSONOPPLYSNINGER →
LAGRE_MEDLEMSKAPSPERIODE_MEDL →
OPPRETT_FAKTURASERIE →
AVSLUTT_SAK_OG_BEHANDLING →
SEND_MELDING_OM_VEDTAK →
OPPRETTE_AARSAVREGNING_ENDRING →
RESET_ÅPNE_ÅRSAVREGNINGER

Debugging Queries

Schema note: medlemskapsperiode.behandlingsresultat_id is the FK to behandlingsresultat, whose PK is behandling_id (1:1 with behandling, no separate id column). So mp.behandlingsresultat_id equals the behandling.id. behandling links to fagsak via saksnummer (not fagsak_id); fagsak's PK is saksnummer and its type column is fagsak_type. There is no bruker_aktor_id on fagsak — the bruker's aktørID lives in the aktoer table (column aktoer_id, rolle = 'BRUKER', joined on saksnummer).

Find Medlemskapsperiode by Behandling

SELECT mp.*, b.status
FROM medlemskapsperiode mp
JOIN behandlingsresultat br ON mp.behandlingsresultat_id = br.behandling_id
JOIN behandling b ON br.behandling_id = b.id
WHERE b.id = :behandlingId;

Check Bestemmelse and Dekning

SELECT mp.id, mp.fom_dato, mp.tom_dato,
       mp.bestemmelse, mp.trygde_dekning,
       mp.medlemskapstype,
       mp.innvilgelse_resultat
FROM medlemskapsperiode mp
WHERE mp.behandlingsresultat_id = :behandlingId;

Find FTRL Cases for Person

SELECT f.saksnummer, f.fagsak_type, b.id, b.status, f.tema
FROM fagsak f
JOIN aktoer a ON a.saksnummer = f.saksnummer AND a.rolle = 'BRUKER'
JOIN behandling b ON b.saksnummer = f.saksnummer
WHERE a.aktoer_id = :aktorId
AND f.fagsak_type = 'FTRL'
ORDER BY b.registrert_dato DESC;

Check MEDL Registration

SELECT mp.medlperiode_id, mp.bestemmelse, mp.fom_dato, mp.tom_dato
FROM medlemskapsperiode mp
WHERE mp.behandlingsresultat_id = :behandlingId
AND mp.medlperiode_id IS NOT NULL;

Common Issues

IssueSymptomsInvestigation
Wrong bestemmelseIncorrect paragraph in vedtakCheck vilkårsvurdering flow
Invalid dekningValidation errorCheck LovligeKombinasjonerTrygdedekningBestemmelse
Period overlapCannot save medlemskapsperiodeCheck existing periods for fagsak
Missing MEDLmedlperiode_id is NULLCheck LAGRE_MEDLEMSKAPSPERIODE_MEDL step
Avgift calculation failNo trygdeavgiftsperiodeVerify skatteforhold and inntekt grunnlag

Bestemmelse Details

§2-8 First Paragraph (Frivillig Yrkesaktiv)

a) Utsendt arbeidstaker

  • Norwegian employer sends to work abroad
  • Employer has substantial activity in Norway
  • Previously subject to Norwegian legislation

b) Student utenlands

  • Studying abroad with Norwegian loan/stipend
  • Enrolled at recognized institution

c) Offentlig oppdrag/stipend

  • Government assignment abroad
  • Research stipend from Norwegian sources

d) Pensjonist/uføretrygdet

  • Receiving pension from folketrygden
  • Only helsedel coverage available

§2-8 Second Paragraph

  • Other workers where "særlige grunner" make it reasonable
  • Discretionary evaluation (rimelighetsvurdering)

§2-13 Unntak

  • Exception from mandatory membership
  • Used when person should not be member despite §2-1/§2-2

Detailed Documentation

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Expert knowledge of Altinn A1 application processing for posted workers in melosys-api. Use when: (1) Understanding Altinn søknad/skjema processing, (2) Debugging MedlemskapArbeidEOS form mapping, (3) Understanding SoeknadMapper transformations, (4) Investigating posted worker application issues, (5) Understanding the MOTTAK_SOKNAD_ALTINN saga flow.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

navikt/melosys-api22026년 10월 21일 업데이트

Expert knowledge of Employer/Employment integration (EREG/AAREG) in melosys-api. Use when: (1) Working with organization data from EREG (Enhetsregisteret), (2) Working with employment data from AAREG (Arbeidsforhold), (3) Understanding employer/organization lookup, (4) Debugging employer or employment issues, (5) Understanding the mapping between register data and domain models. Triggers: orgnummer, arbeidsforhold, EREG, AAREG, Enhetsregisteret, registeropplysninger, ansettelsesperiode, saksopplysning.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

navikt/melosys-api22026년 10월 21일 업데이트

Modular monolith architecture overview for melosys-api. Use when needing to understand module structure, dependencies between modules, where to place new code, or when changes in one module might affect others. Triggers: "architecture", "module dependencies", "where should I put", "which modules", "dependency graph".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

navikt/melosys-api22026년 10월 21일 업데이트

Expert knowledge of Behandling (case treatment) domain in melosys-api. Use when: (1) Understanding the behandling lifecycle and status transitions, (2) Debugging issues with behandling creation, status changes, or closure, (3) Understanding relationships between Fagsak, Behandling, and Behandlingsresultat, (4) Investigating why a behandling is stuck or has wrong status, (5) Understanding Behandlingstyper, Behandlingstema, Behandlingsstatus enums, (6) Debugging journalføring or SED-triggered behandling creation, (7) Understanding behandling creation via saksflyt sagas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

navikt/melosys-api22026년 10월 21일 업데이트

Expert knowledge of Behandlingsresultat (treatment result) domain in melosys-api. Use when: (1) Understanding result types and their meaning (FASTSATT_LOVVALGSLAND, MEDLEM_I_FOLKETRYGDEN, etc.), (2) Working with periods - Lovvalgsperiode, Medlemskapsperiode, Anmodningsperiode, Utpekingsperiode, (3) Debugging vedtak/decision metadata, criteria evaluation, or social insurance charges, (4) Understanding EU/EEA coordination logic and Article 16 exception handling, (5) Working with trygdeavgift (social insurance charge) calculations.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

navikt/melosys-api22026년 10월 21일 업데이트

brev

무료

Expert knowledge of Brev (letter generation) in melosys-api. Use when: (1) Producing letters and decision documents (vedtaksbrev), (2) Understanding Dokgen templates and mapping, (3) Configuring letter recipients and distribution, (4) Debugging letter generation issues, (5) Adding new letter types or templates.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

navikt/melosys-api22026년 10월 21일 업데이트

navikt의 스킬 모두 보기

이 스킬의 문제 신고