feat(okr): arkivklar-rapport med bevaringskategorier som vurderingsgrunnlag
This commit is contained in:
parent
582fae3212
commit
a9aab508d2
3 changed files with 255 additions and 2 deletions
|
|
@ -113,3 +113,88 @@ export function traverserBundle(bundleRoot) {
|
|||
gaa('');
|
||||
return { rot: realBundle, filer };
|
||||
}
|
||||
|
||||
// Klokke-soem: OKR_NOW (ISO-8601) overstyrer veggklokka, saa to kjoeringer over
|
||||
// samme tre gir byte-identisk rapport. Speiler lib/syklus-rapport.mjs:194.
|
||||
const klokke = (opts) => opts?.naa || process.env.OKR_NOW || new Date().toISOString();
|
||||
|
||||
// Rendrer vurderingsgrunnlaget. Formuleringen er en INVARIANT, ikke stil:
|
||||
//
|
||||
// - Hver kategori presenteres som «faller trolig under ... § N», med
|
||||
// paragrafhenvisning, og vurderingen legges eksplisitt til virksomhetens
|
||||
// dokumentasjonsplan (arkivlova § 8, arkivforskrifta § 12 b).
|
||||
// - Rapporten sier hva som boer VURDERES OVERFOERT til sak-arkivet. Den sier
|
||||
// aldri hva som skal slettes eller kasseres -- kassasjon krever
|
||||
// Nasjonalarkivets hjemmel (arkivlova § 13). Det finnes INGEN slettemodell i
|
||||
// denne pluginen, og ingen skal innfoeres: retensjonsbehovet er dekket av
|
||||
// /okr:oppsett arkiver og /okr:export.
|
||||
// - Arkivforskrifta § 1 bokstav c gjoer vurderingen betinget av om
|
||||
// dokumentasjonen allerede forvaltes som arkiv i et ANNET system. Det kan
|
||||
// verktoeyet ikke se, og rapporten navngir derfor tilstanden som ukjent i
|
||||
// stedet for aa anta den bort.
|
||||
export function rapport(grunnlag, opts) {
|
||||
const { rot, filer } = grunnlag;
|
||||
const l = [];
|
||||
|
||||
l.push('# Arkivklar — vurderingsgrunnlag');
|
||||
l.push('');
|
||||
l.push(`Bundle: \`${rot}\``);
|
||||
l.push(`Generert: ${klokke(opts)}`);
|
||||
l.push(`Konseptfiler gjennomgaatt: ${filer.length}`);
|
||||
l.push('');
|
||||
l.push('> **Dette er et vurderingsgrunnlag, ikke en avgjoerelse.** Rapporten viser hvilke');
|
||||
l.push('> kategorier i bevaringsforskrifta (FOR-2025-12-19-2729) innholdet trolig faller');
|
||||
l.push('> under, og hva som boer vurderes overfoert til virksomhetens sak-/arkivsystem.');
|
||||
l.push('> Selve vurderingen hoerer til virksomhetens dokumentasjonsplan, jf. arkivlova § 8');
|
||||
l.push('> og arkivforskrifta § 12 b. Kassasjon krever hjemmel fra Nasjonalarkivet etter');
|
||||
l.push('> arkivlova § 13, og avgjoeres ikke her.');
|
||||
l.push('');
|
||||
l.push('## Ukjent forutsetning');
|
||||
l.push('');
|
||||
l.push('Arkivforskrifta § 1 bokstav c gjoer vurderingen betinget av om denne');
|
||||
l.push('dokumentasjonen **allerede forvaltes som arkiv i et annet system**. Verktoeyet');
|
||||
l.push('leser kun dette treet og kan ikke se sak-/arkivsystemet. Tilstanden er derfor');
|
||||
l.push('**ukjent**, og maa avklares av virksomheten foer grunnlaget brukes.');
|
||||
l.push('');
|
||||
|
||||
const seksjoner = [
|
||||
['stat', `Statleg styringslinje — bevaringsforskrifta ${PARAGRAF.stat}`, (f) => f.stat !== null],
|
||||
['kommune', `Kommunal styringslinje — bevaringsforskrifta ${PARAGRAF.kommune}`, (f) => f.kommune !== null],
|
||||
];
|
||||
|
||||
for (const [noekkel, tittel, filter] of seksjoner) {
|
||||
const treff = filer.filter(filter);
|
||||
l.push(`## ${tittel}`);
|
||||
l.push('');
|
||||
if (treff.length === 0) {
|
||||
l.push('Ingen filer i treet traff en navngitt kategori i denne paragrafen.');
|
||||
} else {
|
||||
l.push('| Fil | OKF-type | Navngitt kategori | Vurdering |');
|
||||
l.push('|-----|----------|-------------------|-----------|');
|
||||
for (const f of treff) {
|
||||
l.push(`| \`${f.rel}\` | ${f.type ?? '(ingen type)'} | ${f[noekkel]} | Boer vurderes overfoert til sak-arkivet |`);
|
||||
}
|
||||
}
|
||||
l.push('');
|
||||
}
|
||||
|
||||
const sikring = filer.filter((f) => f.sikring);
|
||||
l.push(`## Ikke navngitt — sikringsparagrafen ${PARAGRAF.sikring}`);
|
||||
l.push('');
|
||||
l.push('Bevaringsforskrifta § 3 fastsetter at dokumentasjon som ikke er nevnt i');
|
||||
l.push('forskrifta skal takast vare paa inntil Nasjonalarkivet har fastsett reglar.');
|
||||
l.push('At en fil staar her betyr derfor at den skal **bevares**, ikke det motsatte.');
|
||||
l.push('');
|
||||
if (sikring.length === 0) {
|
||||
l.push('Ingen filer falt utenfor de navngitte kategoriene.');
|
||||
} else {
|
||||
l.push('| Fil | OKF-type | Vurdering |');
|
||||
l.push('|-----|----------|-----------|');
|
||||
for (const f of sikring) {
|
||||
l.push(`| \`${f.rel}\` | ${f.type ?? '(ingen type)'} | Bevares inntil Nasjonalarkivet har fastsett reglar |`);
|
||||
}
|
||||
}
|
||||
l.push('');
|
||||
|
||||
return `${l.join('\n')}\n`;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue