Öppen ändringslogg

Vad har ändrats, och varför

Den här sidan listar alla ändringar Årebladet gjort i den här granskningen, både före och efter publicering. Varje rad motsvarar en commit i tidningens publiceringsrepo; ingenting är retuscherat i tysthet. Mänskliga sammanfattningar av väsentliga ändringar efter publicering finns högst upp; därunder följer den maskinella commit-historiken.

19 ändringar registrerade. Första ändring 23 maj 2026; senaste 28 maj 2026.

Mänskligt kuraterade ändringar

Mänsklig sammanfattning av väsentliga ändringar efter publicering. Den maskinella commit-historiken under denna sida visar varje teknisk ändring; raderna här ska bara fånga sådant som påverkar läsarens förståelse av sakuppgifter.

Format: YYYY-MM-DD — kort rubrik. Varje punkt ska kunna stå för sig själv som ett enradssvar på frågan "vad ändrades och varför?".

Commit-historik

  1. 792916b

    edit(x92): second-pass PII redactions across remaining sources

    Visa detaljer
    Following the registreringsbevis pass, swept all 28 source PDFs and 40
    evidence images for personnummer, home addresses, personal phone, and
    personal email patterns.
    
    - bolagsverket-x92-dispens-decision.pdf: Svernlöv PN (century-prefixed
      form 19641204-1490) + Holland street "2/84 North Steyne Road" — true
      redaction via pymupdf apply_redactions.
    - em-holland-svar.png: Holland's mobile +61439747747 black-boxed; rest
      of the quoted reply unchanged.
    - arebladet-email-holland-nhu.md (the email source page): mobile masked
      in two places; personal email addresses of recipients masked
      (MCH148@outlook.com, conradocker@gmail.com, Michael.j.addison@bigpond.com,
      ma@tasdata.com.au). Lawyer's work address at Baker McKenzie kept since
      it's the public route the company directs press queries through.
    
    Everything else clean: org-numbers, lawyer work addresses, names, dates,
    DOB-prefix (820503), Manly NSW city — all retained as public/journalistic.

    — Par Boman

  2. 30ed0d9

    edit(x92): redact Svernlöv PN + Holland street address from registreringsbevis

    Visa detaljer
    The sources.json note already claimed the personnummer was masked, but
    the PDF still carried the full PN (641204-1490) and Martin Holland's
    home street address (2/84 North Steyne Road). Both removed via
    pymupdf true-redaction (apply_redactions, not annotation overlay).
    DOB-prefix, city, names kept — only the load-bearing PII is gone.

    — Par Boman

  3. b23068e

    feat(i18n): English version of site + full X92 translation, em-dash sweep

    Visa detaljer
    - Astro i18n: sv default (no prefix), /en/ for English
    - UK/AU split-flag LanguageToggle in both header variants + hub masthead
    - Full English X92 article (artikel.en.md) + chapters-x92-en.json
    - English chrome: /en/index, /en/methodology, /en/about, /en/sources (with Swedish-terms glossary)
    - rehype-chapters: chaptersByLang dispatch + smart-quote canonicalization in normalize()
      (unified's .use merges options when same plugin registered twice; one invocation
      with per-lang chapter maps avoids the silent collapse)
    - SiteHeaderV2 / SiteHeader / SiteFooter / HubLanding all read Astro.currentLocale
    - Em-dash cleanup: reader-facing copy now uses commas/colons/middle-dots;
      em-dashes reserved for quote starters per editorial rule
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  4. fbb2d6b

    feat(x92): vital-only evidence cinema with frame model + 2 new sources

    Visa detaljer
    EvidenceStream pivoted from card-per-paragraph flow to a single sticky
    cinema element that surfaces only the 5-7 hardhitting evidences listed
    in site/src/data/vital-evidence-x92.json. Non-vital [bild] cites still
    emit .evidence-float spans (lightbox + source-link plumbing intact) but
    stay display:none in the 3-col aside.
    
    Cinema choreography: each vital binds to its anchor paragraph. Signed
    distance d to viewport mid drives four phases — A (entering, scale
    0.86→1, blur 4→0), B (hold), C (zoom to focal/frame), D (exit). Earliest
    phase wins between vitals so the next vital takes over from the previous
    one's D tail at chapter boundaries.
    
    Two zoom modes per JSON entry:
    - focal {x, y} + zoom: legacy single-point pivot. The focal lands at
      (focal.x×100%, focal.y×100%) of the wrapper — NOT viewport centre —
      so asymmetric rectangles clip on one side. Kept for back-compat.
    - frame {x1, y1, x2, y2}: rectangle in normalized natural-image coords.
      Component computes scale + translate so the rectangle is centered in
      the wrapper. This is the only way to frame an off-center daring
      detail without clipping. Codex flagged the transform-origin
      limitation in the focal model; the frame model is the recommended
      fix.
    
    Picker mode at ?focal=1 — clicking the visible image logs+clipboards
    {"id","focal":{"x","y"}} for direct paste into the JSON. Image stays at
    scale 1 in focal mode so click coords map 1:1 to natural-image coords;
    for rectangles, click the four corners and paste back.
    
    Other:
    - Aside column bumped 14rem → 18rem on both 2-col and 3-col grids
    - artikel.md: ev03 swapped to _3 variant (cleaner page-13 layout);
      ev22 replaced with law_verklighuvudman on line 52; new källa+bild
      pair for bergstaten-x92-storvaflon.pdf at line 80; law bild removed
      from line 48 so law-vh anchors its own paragraph
    - Two new evidence images + one new source PDF wired in
    - onMount kept sync (Codex P2: async wraps cleanup in a Promise that
      Svelte never sees, causing ClientRouter remount listener leaks)
    - prefers-reduced-motion now gates JS scale updates (Codex P2: CSS
      transition:none alone leaves per-frame size jumps)
    - Em-dashes stripped from cinema descriptors
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  5. 39dfb11

    feat(x92): evidence flow with collision push-down + scroll-zoom + lightbox source link

    Visa detaljer
    EvidenceStream cards now keep their per-paragraph anchoring but a
    collision pass enforces a 24px gap so adjacent citations no longer
    stack on top of each other. Scroll-driven scale (0.88→1.04) and
    opacity (0.4→1.0) follow each card's distance from viewport mid; the
    closest one gets the teal accent. Lightbox now renders a "Visa källa"
    link populated from the preceding [källa] citation's source slug, so
    zooming a screenshot offers a direct jump to the matching Källor row.
    artikel.md swapped to the _2.png higher-res variants for ev01/02/03/06/07
    and to ev26-cirio-report-other_2.png.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  6. 0d3fc11

    edit(x92): trim duplicate citations + tighten summary/handoff copy

    Visa detaljer
    Drop the lower-priority source where two stacked on a single fact
    (priority: government data → NHU prospectus/annual reports → other
    NHU data → media). Five places in artikel.md: the bitcoin-scrapping
    sentence, Svernlöv's credentials, the 25 000 kr aktiekapital fact,
    the dispens ärende title, and the closing bitcoin-writedown line.
    
    Also folds in Pär's copy edits to the article summary and the
    pengarna-handoff brief.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  7. f7120aa

    perf(landing): downscale lead-art map PNG 3047×2175 → 1200×856

    Visa detaljer
    12.1 MB → 2.5 MB (~5× smaller). Same crop — CSS still uses
    object-fit: cover with object-position: 55% 40%. Still sharp at
    2× DPI for the ~640 CSS-px lead-art card; hero background renders
    at 0.11 opacity so source resolution is moot there.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  8. fba78c2

    feat(site-v2): W4 polish — Tasmania→Sweden plane, citation pass, real polygons

    Visa detaljer
    Per-chapter map enrichment (pins, text-overlay card, duration/curve/speed,
    flyTo). Tasmania→Sweden cinematic transition: cubic-Bezier arc + paper-plane
    SVG marker, plane position locked to camera's getCenter() each frame so they
    never desync. ScrollyMap MapState extended with transition_arc + lifecycle.
    
    Permit data: backfilled the 9 missing polygons from the raw SGU GPKG
    (permits_full parquet is kommun-filtered — only 13/22 inside in-scope cluster).
    All 22 permits now render as real shapes; mini-map projects the actual
    MultiPolygon onto the Sweden silhouette; "POLYGONENS CENTROID" wording gone.
    
    Editorial polish:
    - Citation links invisible until hover (.cite-ref a + a[href*="source/"]
      inherit prose color; hover reveals accent underline). Lets Pär sprinkle
      more [[källa]] references without each one shouting at the reader.
    - Six citation additions in artikel.md anchored to cleared sources
      (NHU FY25, Svernlöv 1997, Bergsstaten 37 956 kr säkerhet, etc).
    - Pengarna upgraded to FY24+FY25 (hasFy25Report=true), bar chart viewBox
      widened to 880×500 to stop label clipping, SEK conversion alongside AUD
      via fx.sek_per_aud rate config in pengarna.json.
    - Source framing reframed: Bergsstatens öppna mineralrättigheter is primary,
      NHU prospectus Schedule A is secondary.
    - EvidenceStream rebuilt as paragraph-y-offset flow (not stacked deck);
      rehype-citations skipFloatsForIntroPrefixes lets the body re-cite intro
      images so they actually surface in the EvidenceStream column.
    - Timeline scrubber defaults to "Idag" instead of axis end; "Försenad
      Årsredovisning" rename; narrow span labels render outside the bar.
    - ChapterTopBar stays clickable when faded (pointer-events fix).
    - Chapter-subtitle filler removed from rehype output (Claude-added intros).
    - PermitMiniMap renders the actual polygon outline + caption "Plats i Sverige".
    
    Tasmania framing fixed: bolaget var aldrig baserat i Tasmanien — det var
    där den planerade bitcoin-gruvan låg. Annotation + pre_range_label updated.
    
    VPS cutover 2026-05-26: gruvor.arebladet.com gated preview now serves
    site-v2/ build, not site/ (v1). Same Basic Auth gate.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  9. 37093ae

    content(x92): backfill all 22 permits + integrate pengarna side-piece

    Visa detaljer
    - permits.json + x92-permits.geojson: backfilled from gruvor parquet
      (permits_full + permits_sweden_basic, 2026-05-21 snapshot). All 22
      permits now have full metadata; 13 retain polygon geometry, 9 emit
      centroid Points. Sum of area_ha = 111 215 ha = ca 1 112 km².
    - web-pengarna-handoff/: copied from gruvor publishing repo. Money-flow
      side-piece data + content scaffold + pre-rendered graph for the
      "A\$8 936 251 skrevs ner till noll" section in site-v2.
    - .gitignore: add .claude/, node_modules/, dist/, .astro/ tree-wide.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  10. 7e3c672

    feat(site): phase C — network graph rebuilt as a focused ownership chain

    Visa detaljer
    Per Pär's earlier feedback that the graph had drifted from "who owns
    this" into a kitchen-sink network including the permit count, advisors
    (Cirio, Canaccord, Baker McKenzie), partners (Uppsala universitet),
    and double-counted renamed-entity pairs (Goldcup/X92, TDI/NHU).
    
    graph.json rewritten down to seven nodes that actually answer the
    ownership question:
    
    - Neu Horizon Uranium Limited (with the former-name "Tasmania Data
      Infrastructure" folded into the subtitle, not a separate node)
    - Energy X92 AB (with former-name Goldcup 34824 AB in subtitle)
    - Aura Energy + Vanadis Battery Metals AB (kept with the ownership
      edge — Pär explicitly noted Aura's ownership of its Swedish sub
      belongs in the graph)
    - Martin Holland, Michael Addison (board)
    - Verklig huvudman (redacted — the >2-year registry error stays
      because the felaktig VH-registrering is central to the story)
    
    Dropped: goldcup, tdi, bolagsratt, baker-mckenzie, cirio, canaccord,
    uppsala, svernlov, "22 undersökningstillstånd". They belong in the
    article body, not in an ownership map.
    
    Layout switched from cose (force-directed, ended up with overlapping
    labels) to dagre hierarchical (cytoscape-dagre + dagre devDeps), so
    parents sit above subsidiaries and the chain reads top-to-bottom.
    Node spacing tuned to fill the canvas better; fit() called on
    layoutstop + after font load + on container resize so the chart
    re-centers when the page settles.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  11. 4ef0b02

    feat(site): render email quotes as evidence cards, drop into the body flow

    Visa detaljer
    Email correspondence was the one form of evidence that had no visual
    companion in the article — the [[källa]] superscript jumped to an .md
    transcript but the body had nothing alongside the prose. With ~12
    verbatim authority quotes in the X92 piece (Bolagsverket on VHL,
    dispens-prövning, sanctioner; SGU on olämplighet-prövning; Holland's
    non-answer), that's a lot of evidence missing from the flow.
    
    New build-time tool:
    - site/tools/render-email-cards.mjs walks every
      articles/<slug>/sources/arebladet-email-*.md, parses leading YAML
      frontmatter's `render_cards:` array, and renders each entry as a
      styled quote card via headless Chromium. Output:
      articles/<slug>/evidence/em-<id>.png at 2× density.
    - Cards use the article's own typography (Source Serif 4 / Inter,
      paper-deep background, accent-red sender header, colored quote bar,
      faint "E-post till Årebladet" footer). They look like quotes from
      the correspondence, not screenshots of an email client.
    - 12 cards generated for the X92 article. artikel.md updated to add
      [[bild]](evidence/em-<id>.png) markers next to each email [[källa]];
      the existing rehype-citations plugin floats them like any other
      evidence (with the global dedup making sure each card surfaces once).
    
    Source viewer (.md branch) now strips YAML frontmatter before
    markdown-rendering so the email transcript pages don't show the
    render_cards block above the prose.
    
    devDeps: playwright + js-yaml.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  12. 56e9ebc

    content(x92): split consolidated email evidence into one file per chain

    Visa detaljer
    The single sources/arebladet-email-evidence.md was being cited 14 times
    across the article with quite different provenance — Bolagsverket
    press exchange, Holland/NHU's right-of-reply, Bergsstaten's afternoon
    follow-up, plus a Regeringskansliet thread that got no substantive
    answer. Splitting per email chain so each citation in the article body
    points at the actual correspondent.
    
    - sources/arebladet-email-bolagsverket.md   (12 article refs)
    - sources/arebladet-email-holland-nhu.md    (2 article refs)
    - sources/arebladet-email-bergsstaten.md    (1 article ref; complements
                                                  the existing morning-response file)
    - sources/arebladet-email-regeringskansliet.md (no current body ref,
                                                  kept for completeness — the
                                                  non-response is itself evidence)
    
    artikel.md, graph.json, sources.json updated.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  13. 99a39af

    feat(site): phase 6 — transparency layer (public changelog)

    Visa detaljer
    - /gruvor/x92/changelog/ rendered at build time from
      `git log --follow -- articles/01-…/`. Each commit shows date,
      time (Stockholm tz), short hash, subject; full body lives behind
      a "Visa detaljer" disclosure. Total count + first/last dates
      shown in the page header. Resilient: if git isn't available
      (e.g. extracted tarball deploy), the section reports "Inga
      commits hittades" rather than crashing.
    - CHANGES.md template lives in the article folder; if present and
      non-empty, its body renders as "Mänskligt kuraterade ändringar"
      above the machine commit history. Curator-edited summaries are
      the right altitude for what readers care about; the raw commits
      are the audit trail underneath.
    - Article byline: "Uppdaterad" pill is now clickable and routes to
      the changelog. The `updated` value is auto-derived from the
      most-recent git commit touching the article folder when it's
      later than the frontmatter `published` date — only shown after
      publication date is in the past, so it doesn't appear pre-launch.
    - Källruta footer rewrites the static "kommer att redovisas i en
      publik ändringslogg" line into a live link.
    - New src/lib/git-history.ts utility: gitLog + lastTouchedAt
      helpers. Pure Node execFileSync, no extra deps.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  14. 908371e

    feat(site): phase 5 — ownership network graph (Cytoscape island)

    Visa detaljer
    - Hand-curated graph.json (16 nodes, 20 edges) constrained to what
      the article body names. Excludes the masked VH person — the
      article explicitly chose not to name him; the graph renders an
      anonymised dashed-border "Verklig huvudman" node instead, which
      makes the firewall decision visible to the reader.
    - Node typology: subject (X92), au-parent (NHU), au-historical
      (TDI), historical (Goldcup 34824), seller (Bolagsrätt Sundsvall),
      redacted (anonymised VH), person, advisor, partner, neighbour,
      outcome (22 permits). Each type maps to a palette entry that
      mirrors the holder palette already in global.css.
    - Edge typology with distinct colour + line-style per relation:
      ownership (solid dark teal), board (solid black), service
      (dashed gray), partnership (green double-arrow), vh-registry
      (dotted accent), rename (dashed brown), outcome (solid accent).
      Inline legend in the sidebar.
    - NetworkGraph.svelte: client:visible lazy-hydrated Cytoscape with
      cose layout, tap-to-select with neighbour highlight + non-neighbour
      fade, sidebar card showing node label/sub/fact + per-node source
      links that route through the phase-4 source detail pages.
    - New "Vem styr bolaget" section between the static maps and the
      permit grid; intro paragraph carries the editorial note about
      the anonymisation choice.
    - cytoscape 3.33.4 added.
    - Verified in headed Chrome: graph renders with all 16 nodes,
      click → fade + sidebar update working, source links navigate
      to the right /source/<slug>/ pages.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  15. 56de793

    feat(site): phase 3 — interactive MapLibre map + body→card anchors

    Visa detaljer
    Body anchors:
    - Permit mentions in artikel.md (Gillberget, Ravenberget, Stor-Stensjön,
      Hamborg, "Vilhelmina", the count "22") now link to their permit-card
      IDs / sections lower on the page.
    - New .permit-anchor style in Article.astro: subtle teal underline +
      ↓ glyph signalling in-page navigation, distinct from the dotted
      citation chips used for sources/evidence.
    
    Interactive map:
    - Extracted 13 X92 permit polygons from gruvor parquet snapshot
      2026-05-21 (ut-metaller-industrimineral-beviljade collection),
      reprojected EPSG:3006 → 4326 via shapely + pyproj, written to
      articles/01-…/x92-permits.geojson (17 KB, 13/22 permits — the
      remaining 9 are in the prospectus only). Symlinked into public/x92.
    - New PermitMap.svelte: MapLibre island with OSM raster basemap,
      permits-fill + permits-line + permits-label layers in the X92 teal,
      hover state, click → popup (name/dnr/area/dec_date/validto +
      "Visa kort →" link to the card anchor), scale + nav controls.
    - maplibre-gl 5.24.0 added as dependency.
    - Lazy-hydrated via client:visible in x92.astro — JS bundle only
      loads when the map scrolls into view. Static parmaps spread above
      remains the no-JS / no-WebGL fallback; in-component error overlay
      surfaces explicitly if WebGL init fails.
    - Verified: build clean, polygons + labels render in real Chromium,
      popup → anchor flow lands on the right card, no console errors.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  16. c6d7dd5

    feat(site): phase 2 — static maps, permit grid, holder palette

    Visa detaljer
    - Port PERMIT_OWNER_PALETTE from parmaps renderer verbatim so web
      colours match print exactly (6 holders + tier2 + norway tokens).
    - Cross editorial firewall: 4 parmaps PNGs (spread, wide, cluster,
      legend) copied from renderers/illustrated/ into articles/01-…/parmaps/;
      symlinked into site/public/x92/parmaps for Vite static serving.
    - permits.json (22 X92 permits: 7 in-scope + 15 national) derived from
      gruvor dossier CSV; stable slug IDs match in-page anchor targets.
    - New components: StaticMap.astro (figure + caption + credit),
      PermitGrid.astro (card grid + compact national rows, JSON-driven),
      PermitLegend.astro (holder swatches).
    - Article.astro gains named slot "after-body" for injecting sections
      between prose and källruta footer.
    - x92.astro wires "Granskningens karta" section: legend strip, two
      parmaps embeds (overview + cluster), card grid, legend PNG.
    - Verified: build clean, 0 console errors, desktop + mobile.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  17. 32ecb6c

    feat(site): phase 1 — X92 article page + hub card grid

    Visa detaljer
    Renders the Energy X92 long-form at /gruvor/x92/ and flips the hub from
    the phase-0 holding page to a card grid. First publishable web build of
    the piece.
    
    - Article.astro layout: typographic hero (placeholder fallback when
      hero:"placeholder"), lead paragraph styled from first <p>, body prose
      with citation-chip styling on links to sources/ and evidence/, källruta
      footer explaining the citation system, grouped source list, permalink.
      Swedish hyphenation via prose-sv (hyphens:auto + lang="sv").
    - ReadingProgress.astro: 2px accent bar at top, scaleX transform on
      scroll, passive listeners.
    - SiteHeader.astro: Årebladet / Gruvor brand bar linking back to hub.
    - SourceList.astro: groups + items from sources.json, PDF/MD format
      badges, mono filenames; collapses to title-only under 30rem.
    - x92.astro page: pulls the entry by frontmatter slug, imports
      sources.json directly, renders <Content />.
    - index.astro hub: card grid (filters status:stub), Kommande block,
      footer.
    - sources.json: 28 source documents grouped into 6 sections with
      redaction notes.
    - public/x92/{sources,evidence} symlinks → ../../../articles/01-…/{…} —
      Vite/Astro follow them at build, so markdown's relative paths
      resolve at /gruvor/x92/sources/ and /gruvor/x92/evidence/.
    - .gitignore: ignore .gstack/ tooling cache.
    
    Verified locally with pnpm dev at desktop (1280) and mobile (390)
    viewports — no console errors, source list groups render, citation
    chips legible, hub card displays correctly.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  18. cbbe7b5

    content(x92): use print headline as placeholder web title

    Visa detaljer
    Frontmatter title + subtitle now match the printed edition's twoliner
    ("Felaktig huvudman, försenad redovisning" / "men bolaget får ändå
    leta metall i Jämtland"). Hero image stays as a "placeholder" sentinel
    — phase 1 layout can either render a typographic fallback when
    hero == "placeholder" or Pär can drop in the final asset before
    launch.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman

  19. cce7502

    content: migrate Energy X92 cleared bundle from gruvor

    Visa detaljer
    Final published copy of the printed Årebladet investigation (issue
    2026-05-28, printed 2026-05-22), now owned by this publishing repo.
    Migrated 2026-05-23 from gruvor's
    articles/01-2026-05-28-arebladet-energy-x92/ research workspace.
    
    Bundle:
    - artikel.md — 97 paragraphs, every sourced claim carries [källa] +
      [bild] markers pointing into sources/ and evidence/ respectively.
      Title + subtitle frontmatter still TODO (Pär writes copy).
    - sources/ — 28 source documents (26 PDFs + 2 markdown email evidence
      files): Bolagsverket extracts, ASIC forms, NHU prospectus +
      announcements, ABC News, SGU/Bergsstaten responses, the Cirio
      report header, lag 2017:631, the Svernlöv chambers reference.
    - evidence/ — 29 tight-cropped PNG snippets (ev01-ev29) showing the
      exact passage in each source that supports the cited claim.
    
    PII / redaction (verified post-migration with a pnr-shape scan; only
    hits were ärendenummer and X92's orgnr 559472-4576):
    - bolagsverket-x92-verkliga-huvudman-extract.pdf — Sundsvall jurist's
      name + pnr blacked out; he is not named in the article
    - bolagsverket-x92-registreringsbevis.pdf — Carl Svernlöv's pnr
      blacked out; his name + role remain public
    - Evidence images ev07 + ev08 carry the same redactions
    - Australian directors' partial DOBs (820503, 570510) are 6-digit
      birth dates from the Swedish corporate register, NOT Swedish pnr
    
    Folder layout flattened: webversion/* moved up one level since the
    arebladet-articles repo *is* the publishing target — no need for a
    nested webversion/ subdir.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    — Par Boman