K9X Newswatch Analysis by Qwen 3.8 (27B), run locally · How it works
Architecture

How Newswatch works, end to end

Newswatch is an application built on the K9-AIF framework. It runs unattended: every hour it collects from primary sources, screens and classifies what it finds, analyses each item with a model, verifies every claim against the source, and publishes only what passes.

New to K9-AIF? ▶ Watch the 3-minute introduction

How an item gets here

  1. Collect30 primary sources, every hour: vendor release feeds (GitHub, PyPI), docs changelogs, official blogs, OWASP and NIST. Conditional GET, robots.txt respected.
  2. Screenk9x Shield and Granite Guardian read every collected text. Suspicious text is labelled and analysed, never obeyed.
  3. Keep what mattersDuplicates, marketing, customer stories, events and fix-only releases are dropped before any analysis.
  4. Analyse and verifyAn Analyst scores the item on the rubric; a Verifier re-reads the source and names any unsupported claim; one revision.
  5. Publish or holdVerified items go on Today's page at once. Anything not fully confirmed is held back and never shown.

Layers

Router → orchestrators → squads → agents, the K9-AIF execution model. Each layer knows only the one below it: orchestrators load squads by file and id and never name an agent (K9-DEC-002); the squad layer is built once at start-up (SquadLoader.from_agents); every model call goes through the framework's llm_invoke.

Router
NewswatchRouterBaseRouter · in-process · k9x Shield
→
newswatch.collecthourly
newswatch.analyzeone item per flow
newswatch.issuemidnight US Eastern
newswatch.digestFridays
Orchestrators
Collect
Analyzerecords failures, retries 3×; model outages don't count
Issue
Digest
Squads (YAML)
CollectSquad
AnalyzeSquadsteps run only if the classifier keeps the item
EditorSquad
DigestSquad
Agents
SourceCollectorfeeds · sitemaps · docs pages
→
ReadShield + Granite Guardian
→
Classifierduplicates · materiality
→
Analysiscritic-actor: Analyst ⇄ Verifier
→
PublishGateverified → published
Publishing
Editor · Publisherdaily issue: page, PDF, email-ready HTML, items.json
Scorecard · Outline · DigestPublisherweekly digest and scorecard

What keeps it trustworthy without a review step

Fetched safely

Only configured https sources. Every redirect hop is checked against private and loopback addresses, responses are size-capped, and robots.txt is honoured (PublicWebAdapter, a K9-AIF BaseApiAdapter).

Untrusted text, contained

Collected text travels by reference, never in agent payloads. The model that reads it has no tools and must answer one JSON object, which is checked against the rubric before use.

Rules in code

Claim status can never exceed what the source proves. Headline ≤ 14 words, brief ≤ 60. Every number and version must appear in the source. At most 4 OWASP tags, each tied to the item.

Verified or not published

The Verifier re-reads the source; the Analyst gets one revision. Anything still unconfirmed is held back. The opening line of each issue and the scorecard are computed from facts, not written by a model.

The rubric

Claim status (from the source kind)

SHIPPED a versioned release with a changelog entry · DOCUMENTED official documentation · ANNOUNCED blog or keynote only.

OWASP Top 10 for Agentic Applications 2026

ASI01 Agent Goal Hijack · ASI02 Tool Misuse and Exploitation · ASI03 Identity and Privilege Abuse · ASI04 Agentic Supply Chain Vulnerabilities · ASI05 Unexpected Code Execution (RCE) · ASI06 Memory & Context Poisoning · ASI07 Insecure Inter-Agent Communication · ASI08 Cascading Failures · ASI09 Human-Agent Trust Exploitation · ASI10 Rogue Agents

Six governance areas, 0 / 1 / 2 / N/A

Tool / action control (allowlisting, permissions, sandboxing) · Human-in-the-loop support · Identity and zero trust (agent identity, auth, least privilege) · Observability and audit (tracing, logging, evals) · Data protection (PII, residency, retention) · Inter-agent communication security

Data, audit and schedule

Sources

Vendor stackSources
xAI (Grok)xAI SDK releases (atom) · xAI API release notes (docs page) (page)
Anthropic (Claude)Anthropic news (sitemap) (sitemap) · Anthropic Python SDK releases (atom) · Claude Agent SDK releases (atom) · Claude Code releases (atom)
OpenAIOpenAI news (rss) · OpenAI Python SDK releases (atom) · OpenAI Agents SDK releases (atom)
Microsoft (Azure AI / Copilot)Azure updates (rss) · Azure AI Foundry blog (rss) · Microsoft 365 blog (Copilot) (rss) · Semantic Kernel releases (atom) · AutoGen releases (atom)
Google (Gemini / Vertex)Google Cloud AI & ML blog (rss) · Google Gen AI SDK releases (atom) · Agent Development Kit releases (atom) · Gemini API changelog (docs page) (page)
AWS (Bedrock)AWS What's New (rss) · AWS Machine Learning blog (rss) · Bedrock AgentCore SDK releases (atom)
Meta (Llama)Meta newsroom (rss) · Llama Stack releases (atom) · Llama models releases (atom)
NVIDIA (NeMo / NIM / agent toolkits)NVIDIA developer blog (atom) · NeMo Guardrails releases (atom) · NeMo Agent Toolkit releases (atom)
IBM (watsonx)ibm-watsonx-ai SDK releases (PyPI) (rss)
Standards & GuidanceOWASP GenAI Security Project (rss) · NIST news (rss)

Block diagram

In each box, Newswatch's own classes (solution building blocks, SBB) sit above the K9-AIF framework contracts they extend (architecture building blocks, ABB). Sources sit outside the container; the infrastructure below it.

K9X Newswatch one container · port 8116
UI
Public site
LatestIssuesWeeklyScorecardArchitecture
Admin dashboard
RunsItemsSourcesSubscribers
Email
Your stack, daily or weekly6:00 AM your time
Issue files
PDFemail-readyitems.json
Newswatchon K9-AIFNewswatch (SBB)
K9-AIF (ABB)
Router
NewswatchRouterScheduler
extends
BaseRouter
Orchestrators
CollectAnalyzeIssueDigestDelivery
extends
BaseOrchestrator
Squads (YAML)
CollectAnalyzeEditorDigestDelivery
extends
BaseSquadSquadLoaderAgentLoader
Agents
SourceCollectorReadClassifierAnalyst ⇄ VerifierPublishGateEditorPublisherScorecardOutlineDelivery
extends
BaseAgentBaseCriticActorAgent
Adapters
PublicWebAdapterSmtpMailAdapter
extends
BaseApiAdapterBaseMessagingAdapterAdapterFactory
Trust · models
VerifierRules in codeAudit trail
extends
ShieldGovernanceGuardianGovernancellm_invokeK9ModelRouter
←
Sources30 primary sourcesvendor releases, docs, blogsOWASP · NISTread hourly
Infrastructure
Ollama · local GPU
qwen3.8:27bgranite4.1-guardian:8b
PostgreSQL
k9newswatchappend-only audit
Cloudflare Email Sending
K9X Sentinel
security watchread-only