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 18 of 20

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

Paste this whole document into ChatGPT as the first message. Use a mode that browses the web (web search or Deep Research). 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. It is run by agents with a named human editor of record, and it has one rule that shapes everything 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. So you are not being asked for facts. You are being asked for leads with provenance: the exact page, the exact words on it, and what it says in your own words — packaged as JSON the newsroom's agent can ingest, check and either keep or throw away, one claim at a time.

That changes three habits:

  1. Never give a URL you did not open in this session. A URL from memory is worthless here; a wrong one costs a fetch and a note to the editor. If the browsing tool only returned a snippet, say so in access and keep the excerpt to what you actually saw.
  2. Every claim carries a verbatim excerpt (≤ 25 words) copied from the page, in the page's language. The newsroom will search the frozen bytes for that exact string. Paraphrase kills the lead.
  3. Your own words are European Portuguese; names, titles and excerpts are verbatim, accents included. Nothing you write is for publication — it is for the editor and the agent.

A. What the site needs

The site has eight sections, from its commissioning brief. For each, the standing questions the newsroom cannot answer from what it already holds. Priority is the order below; the first four matter most this month.

1. Políticas (policies) — highest priority

2. Instituições (institutions)

3. Empresas (companies)

4. Eventos (events) — time-critical this week

5. Casos de uso (use cases)

6. Código aberto (open source)

7. Diáspora

8. Protagonistas (people) — lowest priority for you, highest care

What is already held (do not resend)

The newsroom holds, frozen and hashed, every page of startupsummit.io as of 8 and 13 September, seven press pages about the summit, and the summit's speaker pages. Anything newer or different is wanted; repeats are not.

C. Rules that are not negotiable

D. How to package it

Deliver JSON only, validating against the schema at https://newsroom.sgit.ai/briefs/pt-newsroom-pack/08__research-briefs/research-schema.json↗ (a worked example is beside it: example-delivery.json). The shape, in short:

{
  "delivery": { "id", "tool": "chatgpt", "model", "date", "brief": "12__research-brief-for-chatgpt.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. Use these where they fit: 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. If you need a verb that is not here, propose it in vocabulary_proposals with a sentence that reads aloud.

Deliver in parts, one section per part, each a complete valid document with part: "n/N", inside a single `json fence with no prose before or after it. Keep each part under ~40 items. Number source ids and item ids so they do not collide across parts (src-pol-01, item-pol-01).

E. What the newsroom will do with it, so you know what breaks

For each part: validate the JSON (invalid → the whole part is set aside); fetch every URL and freeze it; search the frozen bytes for every excerpt (not found → that claim is dropped and noted); reject any item whose personal-data check is false or whose person carries a forbidden field; turn what survives into issues on the desk for the research department to re-derive from the frozen page. Your queries, notes and why_it_matters go to the editor unchanged.

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↗ (what it is) · Working with AI agents↗ (the commands an agent uses) · Working on a vault: start here↗ (the practices) · Publishing a vault: the method↗ (the two rules: read keys yes, vault keys never; audit before the key, not after) · Reading one file out of a vault↗ (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>
# … write the files in the layout above …
sgit commit "entrega 1/8: políticas"
sgit push                                   # only changed objects go; the server sees ciphertext
sgit history log --json                     # the commit id goes in delivery.vault.commit

For each later part, either commit again, or write one file straight to HEAD without a working copy: sgit write partes/02-instituicoes.json --file 02.json --message "entrega 2/8" --push --json.

Handing it over. Give the newsroom one of two things, never the third:

Fill delivery.vault in every part: vault_id, commit, and the read key or token.

If you cannot run commands

Chat modes without a shell cannot push. Then produce the vault contents exactly in the layout above — every file, including manifest.json with the hashes you can compute and schema/research-schema.json copied from the URL in section D — and a PACKAGE.sh holding the commands above with the paths filled in. Say plainly in notas.md that the vault was not created by you. The operator runs the script, and the vault id and commit are added to delivery.vault then. Either way the delivery is the same set of files with the same provenance; only who typed sgit push differs.

Start

Begin with Políticas. Deliver part 1/8 as JSON only, then wait for "next". When all eight parts are done, package them as in section F and hand over the read key or the share token — never the vault key.


== briefs/13__research-brief-for-perplexity.md