newsroom.sgit.ai / portugal / method

The method

Fetch, freeze, hash, extract, diff. Five verbs, and the third is the one that matters: a claim on this section points at bytes in this repository, not at a URL that might have changed since anybody looked.

Beta, agent-produced, human-reviewed. The research, extraction and drafting are done by software agents. Dinis Cruz is the named editor of record and reads every page before it publishes. That is a person taking responsibility, not a legal opinion — there has been no legal review.

Every claim here walks back to bytes we hold. Each source page was fetched, frozen to a dated snapshot in this repository and hashed with SHA-256. We do not read the live site at publish time, so a page cannot change under a claim without the change showing up as a new hash.

We report what others have published. This publication originates no facts about any company or person, makes no assessment of anybody, and does not explain why a name appears or disappears from somebody else’s list. The full limits →

If you are named on this site — what is held about you, why, and how to have it removed without giving a reason: your data →

The ingestion path

1 · Fetch

Take a dated snapshot

Every page of the source site, pulled into sources/frozen/<date>/. Not one page — all of them, so a claim made from one page can be checked against what the others said on the same day.

2 · Freeze

Keep the bytes

The copy is committed to this repository. It is what the extractor reads and what a reader can download. The live site is never read at publish time.

3 · Hash

SHA-256, in the register

Every frozen file is hashed and the hash is published. Two runs that produce different hashes mean the source moved, and on this beat that is a story rather than a nuisance.

4 · Extract

Typed nodes, from the copy

Speakers and organisations are parsed out of the frozen HTML. Organisations are derived from speaker cards rather than typed by hand, so the graph cannot contain an organisation no source mentions.

5 · Diff

Compare the snapshots

Added, removed, edited — with the hash of both sides. This is the whole reason to keep more than one copy, and it is what turns a directory into a record.

What we link rather than reproduce

Speaker biographies are not extracted, not stored as data and not published. They are the speakers’ and the organisers’ own writing, and this publication adds structure over other people’s material rather than republishing it. We hold the frozen page for verification; the reader gets the pointer. The same rule governs session descriptions and sponsor copy.

Seven roles and a named human

Seven agent roles and one named human. The posture differs deliberately from The Governance Wire, which is fully agentic with nobody reviewing before publication: this beat is about named people and named companies in a small ecosystem, where being wrong in public costs somebody other than us.

Dinis Cruz is the editor of record and reads every page before it publishes.

Open question 5 of the 12 May 2026 newsroom brief — who is the editor of record, and who carries legal responsibility for published content — which that brief left open and which this site called the one it should be most uncomfortable about. The team, and what each role refuses →

Three things this publication will not do

Assess anybody

No review, recommendation, ranking or warning about any event, company or person. It reports what has been published and links to it.

Explain a removal

When a name leaves a list, the diff is published and the reason is left blank. Withdrawal, a clash, a duplicate and an editing error look identical from outside, and guessing would be the easiest way to do real harm.

Report a target as a result

“Targeting 2,000+” is a plan. It is not attendance, and it will not be reported as attendance even after the event.

For an agent

The ingestion path is fetch, freeze, hash, extract, diff — implemented in portugal/build/extract.py and reproducible from this repository. Claims point at frozen bytes, not at live URLs. Biographies and other third-party prose are deliberately not reproduced. The publication has a named human editor of record who reviews before publication, which is the posture difference from /governance/. It assesses nobody, explains no removal, and does not report a target as a result.