Automated research and publication architecture
The deterministic GitHub workflow from approved-source discovery and public submission through a human-approved, reproducible publication.
Read the page as a transparent path: establish context, inspect the evidence, then test the published stance.
GitHub Actions is the deterministic orchestration layer. Agents may classify, compare sources, extract candidate claims, and draft editable Markdown, but cannot approve, merge, enable auto-merge, dismiss review, or push to protected main.
End-to-end flow
Approved feeds and public submission issues enter separate read-only intake jobs. Normalization emits a schema-validated candidate with source snapshots and a durable ID. Deduplication checks URL redirects, normalized title, fingerprints, DOI or release identity, and entity-event similarity. Evaluation treats all external text as untrusted. Successful candidates become a draft branch and pull request; unsuccessful evaluation leaves the candidate queued with an audit reason.
A pull request contains the Markdown, graph changes, citations, source and license record, claim-to-source table, duplicate findings, preview, agent confidence, unresolved questions, and one accept-or-remove checklist row per batch item. Validation checks schema, IDs, internal links, HTTPS sources, dates, unsafe Markdown, licensing declarations, build output, accessibility assertions, and secret exposure. Only a positive editorial-owner approval and merge publishes.
Required workflows
| Workflow | Trigger | Durable output | Must never do |
|---|---|---|---|
| News ingestion | 17 * * * * UTC and parameterized manual run | Candidate records or reviewable draft PR | Assume invocation time is publication time; create an empty PR |
| Submission intake | New or labeled issue; manual replay | Labels, evaluation report, optional draft PR | Execute attachments or contributor code |
| Pull-request validation | Open, sync, reopen, ready-for-review | Required checks, comments, preview artifact | Expose write tokens to fork code |
| Source freshness | Schedule and manual | Issue or draft PR with changed/broken claims | Rewrite a claim without review |
| Site publication | Protected-main merge/push | Production build and immutable deployment record | Publish unmerged branches |
| Automation health | Schedule and repeated workflow failures | Maintainer alert or deduplicated issue | Hide a missed service threshold |
The hourly job stores a last-success cursor and processes (last_success, current_safe_window], so delayed schedules catch up. A concurrency group prevents overlap without discarding the next interval. Each adapter has bounded timeout, retry, backoff, caching metadata, and its own cursor. Replays use candidate IDs and branch/PR lookup to remain idempotent.
Trust boundaries
Collection prefers RSS, Atom, JSON Feed, official APIs, release feeds, and academic metadata. Allowlisted HTML extraction is permitted only after terms and robots review. It never bypasses login, paywalls, CAPTCHA, geography, rate limits, or technical controls. Source text cannot supply workflow instructions, destinations, shell commands, or tool permissions. Executable HTML and scripts are stripped; URLs are allowlisted; structured output is schema-validated.
Read-only ingestion and write-capable PR creation are separate jobs. Each receives minimum GITHUB_TOKEN permissions. Third-party actions are pinned to immutable reviewed commits. CODEOWNERS protects content, automations, registries, security-sensitive files, and deployment settings. Untrusted fork workflows receive no repository secrets or write token.
Audit and failure behavior
The audit chain connects source/submission ID, retrieval timestamp and hash, parser version, rule/model version, workflow run, branch, pull request, validation output, human decision, merge commit, and public URL. Generated paragraphs remain visibly editable and distinguishable from extracted metadata.
Agent or adapter failure leaves work queued. Repeated failures and missing hourly success cross an explicit service threshold and open one deduplicated health issue. A no-news hour succeeds without a PR. A rejected or deferred candidate retains a lightweight private or repository audit record without creating a public story.
Source record
Bibliography
No external sources are required for this administrative page.
Known limits
Unresolved unknowns
- Production source adapters and external agent provider remain deployment choices.
Public review
Discuss and correct
Comments are public. Proposed factual corrections must be incorporated into version-controlled research before they are treated as published.
Local preview does not have Giscus configured. Native comments and Giscus are never presented as competing primary systems on the same page.