sgit newsroom v0.1.29 · snapshot 2026-09-24

Reading room · newsroom.sgit.ai · llms-full

On this page

Reading room / newsroom.sgit.ai / llms-full.txt · section 19 of 20

13 — Research brief for Perplexity: what pt.newsroom.sgit.ai needs, how to find it, how to hand it back

Paste this whole document into Perplexity (Pro Search or Deep Research; set the focus to Web). Written 14 September 2026 for newsroom.sgit.ai v0.3.10, revised for v0.3.11 (sgit vaults); the contract it references is briefs/pt-newsroom-pack/08__research-briefs/research-schema.json. CC BY 4.0.


Who is asking, and what you are for

You are doing research for pt.newsroom.sgit.ai, a natively Portuguese newsroom that maps Portugal's AI landscape as a graph. Agents run it; a named human editor of record reads everything before it publishes; and one rule shapes what you will do: nothing is cited until the newsroom has fetched the page itself, frozen the bytes, hashed them and re-found the claim in them. You are therefore asked for leads with provenance — the exact page, the exact words, and what it says in your own words — as JSON the newsroom's agent ingests and checks one claim at a time.

You cite by default, which is why you are being asked. Three things turn a citation into a lead the newsroom can use:

  1. The cited URL is the exact page, not a homepage, not a search result, not a URL you did not open. Put it in sources[].url; put the words you are relying on in excerpt, verbatim, ≤ 25 words, in the page's language. The newsroom will search the frozen bytes for that string.
  2. One claim, one source. If two pages support a claim, make two claims. If a claim rests on a page you could not open (paywall, login, JavaScript-only body), say so in access and give the excerpt you actually saw, or none.
  3. Your own words are European Portuguese; names, titles and excerpts are verbatim with accents. Nothing you write is for publication.

A. What the site needs

Eight sections, from its commissioning brief, in priority order. For each, the standing questions the newsroom cannot answer from what it already holds.

1. Políticas — first

2. Instituições

3. Empresas

4. Eventos — time-critical this week

5. Casos de uso

6. Código aberto

7. Diáspora

8. Protagonistas — last for you, most careful

Already held (do not resend)

Every page of startupsummit.io as of 8 and 13 September, seven press pages about the summit from July–September, and the summit's speaker pages are frozen and hashed. Newer or different is wanted.

C. Rules that are not negotiable

D. How to package it

JSON only, validating against https://newsroom.sgit.ai/briefs/pt-newsroom-pack/08__research-briefs/research-schema.json↗ (worked example beside it: example-delivery.json). In short:

{
  "delivery": { "id", "tool": "perplexity", "model", "date", "brief": "13__research-brief-for-perplexity.md v2",
                "language": "pt-PT", "sections_covered": [...], "queries": [...], "part": "1/N", "notes",
                "vault": { "vault_id", "commit", "read_key" | null, "share_token" | null, "remote" } },
  "sources":  [ { "id": "src-…", "url", "publisher", "publisher_kind", "title", "language",
                  "published" | null, "retrieved", "access", "locator", "excerpt", "archived_copy" } ],
  "items":    [ { "id": "item-…", "section", "kind", "headline", "what_the_sources_say", "dates",
                  "claims": [ { "text", "source", "locator", "excerpt", "confidence", "status": "por_verificar" } ],
                  "entities": [ { "id": "org:…", "type", "name", "source", "attributes" } ],
                  "edges":    [ { "subject", "verb", "inverse", "object", "source", "excerpt", "attributes" } ],
                  "why_it_matters", "suggested_story",
                  "personal_data_check": { "contains_contact_details": false, "contains_characterisation": false, "persons_named": [] } } ],
  "vocabulary_proposals": [ { "verb", "inverse", "domain", "range", "reads" } ]
}

Edges are Portuguese verbs with a distinct inverse: sediada_em / sede_de, financiada_por / financia (with montante, moeda, data, programa), participa_em / tem_participante, desenvolve / desenvolvido_por, publica / publicado_por, regulada_por / regula, designado_por / designa, instituida_por / institui, implementa / implementado_por, adquire / adquirida_por, parte_de / contém, decorre_em / é_local_de, organizado_por / organiza, coberto_por / cobre, atua_em / praticado_por, usa / usado_por, fala_em / recebe, listado_em / lista. Never relacionado_com, associado_a, menciona, trabalha_em. Propose a missing verb in vocabulary_proposals with a sentence that reads aloud.

One section per delivery, each a complete valid document with part: "n/N", in a single

parts (`src-pol-01`, `item-pol-01`). Your inline citation markers must not appear inside the
JSON — the `sources` array is the citation.

## E. What the newsroom does with it

Validate (invalid → the part is set aside); fetch and freeze every URL; search the frozen bytes
for every excerpt (not found → claim dropped, noted); reject any item failing the personal-data
check; turn the rest into issues on the desk for the research department to re-derive from the
frozen page. `queries`, `notes` and `why_it_matters` go to the editor as written.

## F. Package and distribute the delivery as an sgit vault

The newsroom keeps its record in git; its deliveries travel in **sgit vaults**. sgit is "git for
encrypted folders": a vault is a versioned folder, encrypted end to end on your machine before
anything leaves it (AES-256-GCM), pushed to a server that never sees plaintext, and shareable
with a read key or a one-shot token. Every part you deliver becomes a commit with a stable id,
which is what lets the newsroom cite *which* delivery a lead came from.

Read, in this order: [sgit.ai](https://sgit.ai) (what it is) ·
[Working with AI agents](https://sgit.ai/docs/agents.html) (the commands an agent uses) ·
[Working on a vault: start here](https://sgit.ai/docs/guidance/index.html) (the practices) ·
[Publishing a vault: the method](https://sgit.ai/demos/vaults/publishing.html) (the two rules:
**read keys yes, vault keys never**; audit before the key, not after) ·
[Reading one file out of a vault](https://sgit.ai/docs/vault/reading-a-vault-file.html) (how the
newsroom will read what you push). The machine-readable index is https://sgit.ai/llms.txt.

### The vault layout the newsroom expects

entrega/ README.md delivery id, tool, model, dates, brief version, parts delivered manifest.json every file below with its SHA-256 and byte count schema/research-schema.json a copy of the schema, so the vault validates itself partes/01-politicas.json one file per part, each a complete valid delivery document partes/02-instituicoes.json … consultas/<seccao>.md every query run, verbatim, dated notas.md what could not be found; what was paywalled or script-rendered


Put in the vault only what you wrote: the JSON, your notes, your queries. **Do not put copies of
third-party pages in it** — the newsroom freezes its own, and a copy of someone's page in a
vault you hand over is a copy you were not asked to make. Excerpts of ≤ 25 words inside the JSON
are the whole of what travels. No personal data beyond the three listed fields, as in section C.

### If you can run a shell with network access

pip3 install sgit-ai sgit init entrega-<tool>-<date> # prints the VAULT KEY: keep it; it is write access cd entrega-<tool>-<date>